之所以写这篇博客不是为了比较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++语言的几个优点和自身的关键特性的更多相关文章

  1. java语言对比,jvm,垃圾回收

    1.java/c++/ruby/python集中语言的对比 java和c++ 1,没有指针 2,没有多继承 3,没有const 4,在实现多态上的区别    tc++里面的虚函数,纯续函数和java里 ...

  2. Java语言与C++语言的差异总结

    Java的设计者曾说过,设计这门语言的灵感主要来自于C++. 世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史.所以在Java语言学习过程中,将其与C++语言对比是 ...

  3. 关于Lisp和函数式编程 & 各种语言对比 & TIOBE

    上一篇文章提到了,今天又读到Lisp的一些内容 <为什么Lisp如此先进>ruanyifeng(Link).关于Lisp的八卦,可以参考我前面两篇文章 http://www.cnblogs ...

  4. 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...

  5. java安全沙箱(三)之内置于Java虚拟机(及语言)的安全特性

    java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...

  6. [转]深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)

    以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-l ...

  7. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  8. Java编写的C语言词法分析器

    Java编写的C语言词法分析器 这是java编写的C语言词法分析器,我也是参考很多代码,然后核心代码整理起来,放在QQ空间和博客上,目的是互相学习借鉴,希望可以得到高手改进.这个词法分析器实现的功能有 ...

  9. Java学习笔记--脚本语言支持API

    Java语言的动态性之脚本语言支持API 随着Java平台的流行,很多的脚本语言(scripting language)都可以运行在Java虚拟机啊上,其中比较流行的有JavaScript.JRuby ...

随机推荐

  1. Visual Studio express

    之前一直没用过Visual Studio的express版本.在最近一段时间,使用VS2010和2012的破解版都有点问题.vs2010突然不能使用,需要重新安装,家里和单位两台电脑都如此.家里一台电 ...

  2. JAVA_build_ant_mapper

    ant里面mapper的详细用法   ant里面mapper标签是和fileset配合使用的,目的就是把fileset取出的文件名转成指定的样式.其实看懂官方文档后,感觉真心没啥好写的.但是还是写一下 ...

  3. MySQL扩展

    一.使用MySQL特有的函数!        1>到年底还有几天            select datediff('2014-12-31','2014-6-21');//此函数用于计算日期 ...

  4. android开发3:四大基本组件的介绍与生命周期

    android开发3:四大基本组件的介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver ...

  5. 智能卡安全机制比较系列(二)DS SmartCard

    DS Smart Card是飞利浦公司自己开发的一款CPU卡产品,在早期芯片厂商开发自己的COS并进行推广很普遍,现在像英飞凌(前西门子半导体)以及恩智普(前飞利浦半导体)几乎很少推广自己的COS,大 ...

  6. webservice的几个简单概念

    1.什么是JAX-WS? http://baike.baidu.com/view/1865210.htm?fr=aladdin 2.什么是JAX-RPC? http://baike.baidu.com ...

  7. bzoj1149

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1149 水题..... 直接BFS. #include<cstdio> #inclu ...

  8. Fiddler 的几个用法

    原文地址:http://wenku.baidu.com/link?url=VGYtzCpGdWzyvGFAIgCVS_KbSh5Oemd4rRYqyJORDchy4jxtEiRNWbp0tqPtlBR ...

  9. 线性时间构造普吕弗(Prüfer)序列

    tree -> sequence 首先预处理数组 deg[N], deg[i]表示编号为i的节点的度数,我们每次要删除的节点肯定是 满足deg[i]=1 的编号最小节点, 首先找到所有叶子并选出 ...

  10. mac复制粘贴剪切

    win下复制粘贴剪切: Ctrl+C,Ctrl+V,Ctrl+X; mac下lion之后已经有了一直让win用户吐槽的剪切功能: 复制粘贴剪切:Command+C,Command+V,Command+ ...