之所以写这篇博客不是为了比较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. ios开发之常用宏的定义

    有些时候,我们需要将代码简洁化,这样便于读代码.我们可以将一些不变的东东抽取出来,将变化的东西作为参数.定义为宏,这样在写的时候就简单多了. 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操 ...

  2. AES CBC 128的实现

    原由 AES已经变成目前对称加密中最流行算法之一,AES可以使用128.192.和256位密钥,并且用128位分组加密和解密数据. 项目中需要使用AES对密码信息进行加密,由嵌入式设备使用C语言进行加 ...

  3. DataTables列过滤器

    var table = $('#example').DataTable(); table.columns().flatten().each( function ( colIdx ) { // Crea ...

  4. Request对象 --web浏览器向web服务端的请求

    一]Request对象常用方法        1)StringBuffer getRequestURL()            url表示访问web应用的完整路径            2)Stri ...

  5. Katana 还是Owin ? 本地自承载

    使用Owin 将Web项目脱离 IIS确实很特别..... 由此 ,可以衍生出,一个新的通信渠道,本地Server的自承载. 1 Node.js 2 Python 3 Ruby 4 Owin (C#- ...

  6. Android 获取文件大小

    android 获取文件夹.文件的大小 以B.KB.MB.GB 为单位 FileSizeUtil public class FileSizeUtil { ;//获取文件大小单位为B的double值 ; ...

  7. java属性文件读取,属性修改

    /** * 属性文件读取 * @author bestmata * */ public class CommUtil { private static Logger logger=Logger.get ...

  8. testNg官方文档

    官方文档:http://testng.org/doc/documentation-main.html

  9. java内存模型和线程

    概述 多任务的处理在现在的计算机中可以说是"标配"了,在许多的情况下,让计算机同时做几件事情,不仅是因为计算机的运算能力的强大,还有一个重要的原因是:cpu的运算速度和计算机的存储 ...

  10. backbone教程

    http://blog.csdn.net/column/details/backbone-js-tutorial.html