Java和C++对比

首先java的语法是继承自C和C++的,但是java摒弃或者优化了很多C、C++上面对程序员造成困扰的地方,也就是说java设计者的初衷是想让程序员编程更轻松,更快捷高效,更少出错,当然,某种程度上这需要牺牲程序的效率。
(1)比如C、C++上面的指针,在java编程里面不复存在了,在java里面,指针已经被封装在底层虚拟机了,而java程序员因为不能够使用指针,也就避免了很多指针所带来的问题和困扰,比如空指针的问题,还有指针未删除所带来的内存泄露问题,等等。
(2)另外,相比C、C++的绝大对数东西都需要程序员自行去考虑,java则事先帮程序员考虑到了很多东西,例如数组越界的问题,内存泄露等问题在虚拟机都会进行检查进而提醒程序员避免犯错,也就是说同等编程水平的程序员在java中出错的概率比C++更低。从而说java编程是更安全了,它让程序员不必经常小心翼翼地担心出错,可以更专注于解决问题本身。
(3)另外,java对C++的很多特性进行了优化,例如在类的继承上,java放弃了经常令C++头痛并且其实也是很少用到的多重继承,当然java里面的jnterface接口是多个来进行使用的。并且在java是单根继承的,所有类都继承自Object这个类,这就带来了诸如参数传递、异常处理、代码复用等好处。

(4)另外,还有很重要的一点就是,java提供了强大的API库,特别是在网络编程、网站开发这块,java的API库还是相当强大,很方便程序员的

(5)Java为解释性语言,其运行过程为为:程程序源代码经过Jawa编译器编译成字节码,然后由JVM解释执行。而C/C++为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此, Java的执行速度比C/C++慢,但是Java能够跨平台执行,而C/C++不能。

(6)Java为纯面向对象语言,所有代码(包括函数、变量等)必须在类中实现,除基本数据类型(包括int、float等)外,所有类型都是类。此外,Java语言中不存在全局变量或全局函数,而C++兼具面向过程和面向过程编程的特点,可以定义全局变量和全局函数。

(7)Java比C,C++简单,学起来比C\C++容易 
(8)Java中有完善的内存管理机制,能自动垃圾回收,最大可能降低内存溢 出的可能,同时提高编程效率。 
(9)Java中有完善的异常机制(标准C++中不够完善)。 
(10)java中保持数据时对象本身是在堆里,同时靠一在栈里的句柄与之连接 。这个设计更合理。 
由以上几点可见Java更安全。 
(11) Java原生支持多线程(C++仅靠标准库办不到),原生的UI,如AWT Swing 


劣势: 
1.Java比C\C++慢。Java 1.0 比C慢20倍 现在的Java 1.6运行速度也只是C 的一半。 
2. C++在继承和派生上比Java更灵活 
3. C++ 中可以直接插入汇编 能直接操控底层硬件 所以操作系统还是得用 c写 
4. Java办的到C++一定办得到,C++办得到的Java则不一定。 
5. Sun被甲骨文收购了之后,Java的发展很受影响。 
6. C++编译的程序可以直接运行,Java需要安装JRE有几十MB,影响产品发 布的用户体验。

你可能感兴趣的:(Java基础)