JAVA语言对比C++语言的几个优点和自身的关键特性
之所以写这篇博客不是为了比较JAVA语言和C++语言到底孰优孰劣,而是从语言本身出发进行对比总结程序编码设计上的差别。因水平有限,某些内容可能太过片面,欢迎指正和讨论。
JAVA语言在设计上很好地借鉴了C++语言,是一种完全“面向对象”的编程语言。JAVA语言的语法与C++语言的结构语法非常相似,这使得C++程序猿学习JAVA变得非常容易。
JAVA语言的最大优点就是“Wirte Once,Run Everywhere”,就是“一次编写,到处运行”的意思。JAVA语言相对C++来说,增加了一些新的特性:1)提供了GC,对内存进行自动管理,程序猿无需再程序中进行分配、释放内存,一般来说不用再担心内存分配错误;2)不再使用指针,而是采用其他的方法来弥补;3)与C++相比,JAVA取消了多重继承这个类特性,使得类的继承变得简洁;4)避免了赋值语句和逻辑语句的混淆,同时取消了其他值与布尔值之间的自动转换,这一点有效地降低了某些运行时错误。
关于JAVA语言的关键特性方面,这也是面试过程中容易问到的题,它从宏观方面说明了你对这一门编程语言的理解。JAVA语言是一门非常优秀的编程语言,具有很多有效的特性,最主要的有以下几个。
简洁有效。JAVA语言是一门简洁的“面向对象”的语言,相比C++而言来说更加严谨简洁,它没有C++语言中所有的难以理解的、容易混淆的特性,例如指针、结构、运算符重载、虚拟基础类等。
面向对象。JAVA语言一门完全面向对象的语言,不支持类似C语言那样的面向过程的程序设计技术,这也是JAVA语言最重要的语言特性。JAVA语言将数据和对数据的操作都封装在一个类中,并提供类,接口和继承,JAVA类(class)仅支持单继承(C++支持多继承),接口(interface)支持多继承,类与接口之间有实现(implements)机制。JAVA在面向对象上类似于SmallTalk,但从其他方面来说优于SmallTalk。
可移植性。JAVA应用程序可以在配备了JAVA解析器和运行环境的任何计算机系统上运行,这使得JAVA应用有了便于移植的良好基础。
解释型。JAVA语言是一门解释型语言,相对C/C++来说,JAVA程序执行效率低,速度慢,但是正是因为JAVA通过在不同的平台上运行JAVA解释器,对JAVA代码进行解释,从而实现了“Wirte Once,Run Everywhere”的跨平台目标。有舍有得啊,另一面来说,随着机器性能的提高,解释技术的改进(像即时编译,just in time),用户或许不会在乎这种性能上的差异。
适合分布式计算。Java是一种适合于网络应用程序开发的语言,用Java语言编写Socket通信程序可以像访问本地文件系统那样通过URL访问远程对象,可以实现公共网关接口(CGI)脚本的开发,还可以应用Java小应用程序(Applet)、Java服务器页面(Java Server Page,JSP)、Servlet等方式进行网络应用开发。
JAVA语言对比C++语言的几个优点和自身的关键特性的更多相关文章
- java语言对比,jvm,垃圾回收
1.java/c++/ruby/python集中语言的对比 java和c++ 1,没有指针 2,没有多继承 3,没有const 4,在实现多态上的区别 tc++里面的虚函数,纯续函数和java里 ...
- Java语言与C++语言的差异总结
Java的设计者曾说过,设计这门语言的灵感主要来自于C++. 世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史.所以在Java语言学习过程中,将其与C++语言对比是 ...
- 关于Lisp和函数式编程 & 各种语言对比 & TIOBE
上一篇文章提到了,今天又读到Lisp的一些内容 <为什么Lisp如此先进>ruanyifeng(Link).关于Lisp的八卦,可以参考我前面两篇文章 http://www.cnblogs ...
- 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...
- java安全沙箱(三)之内置于Java虚拟机(及语言)的安全特性
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...
- [转]深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-l ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- Java编写的C语言词法分析器
Java编写的C语言词法分析器 这是java编写的C语言词法分析器,我也是参考很多代码,然后核心代码整理起来,放在QQ空间和博客上,目的是互相学习借鉴,希望可以得到高手改进.这个词法分析器实现的功能有 ...
- Java学习笔记--脚本语言支持API
Java语言的动态性之脚本语言支持API 随着Java平台的流行,很多的脚本语言(scripting language)都可以运行在Java虚拟机啊上,其中比较流行的有JavaScript.JRuby ...
随机推荐
- GO逆转字符串
package main import "fmt" func main(){ str:="foobar" a:=[]rune(str) ,len(a)-;i&l ...
- IOS中获取各种文件的目录路径的方法-备
iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory ...
- Unicode字符集下CString与char *相互转换
经常遇到CString转换char*时只返回第一个字符.原因是因为在Unicode字符集下CString会以Unicode的形式来保存数据,强制类型转换只会返回第一个字符.所以直接转换在基于MBCS的 ...
- 使用POI把Word Excel转为HTML
此方法是针对Office2003的,但是word中如果有图片,图片能够解析出来但是HTML文件中不显示.也不支持excel中的图片解析. 所需jar包如下如下: 1:PoiUtil.java pack ...
- Some General concepts in ISO C
[ISO C11 Clause 3]对象(object):执行环境中数据存储的一块区域,它的内容可以用来表示值.-注释:对象可以具有特定的类型.--值(value):确定类型的对象的内容的确切含义.- ...
- BOT、BT、PPP形式介绍(1)
BOT.BT.PPP形式介绍 BOT1.什么是BOT BOT是英文Build-Operate-Transfer的缩写,即“建设-经营-转让”.实质上是基础设施投资.建设和经营的一种方式,以政府 ...
- 【hihoCoder第十七周】最近公共祖先·三
之前就写的是离线算法.思路就是先序一遍树,记录层数,然后高效RMQ就好.ST和线段树都能过. 以后有时间将之前的在线算法补上. #include <bits/stdc++.h> using ...
- Entity framework - start
http://blogs.msdn.com/b/adonet/archive/2010/07/19/absolue-beginners-guide-to-entity-framework.aspx?R ...
- Spring 的优秀工具类盘点第 1 部分
文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来 ...
- python网络请求简洁之道--python requests简介
#requests中文文档:http://cn.python-requests.org/en/latest/#学习出处:http://mp.weixin.qq.com/s?__biz=MjM5NzU0 ...