尽管Java是基于C++的,但是相比之下,Java是一种更纯粹的面向对象程序设计语言。——《Think in Java》
因此Java和C和C++肯定存在着区别,而且是较大的区别。
1.C/C++直接操作元素或者用指针间接操作,Java将所有元素看作对象,采用单一固定的语法操作元素。
2.存储
C/C++:①全局/静态存储区域;②栈;③堆;④字符/文字常量区;⑤程序代码区。
Java:①寄存器;②栈;③堆;④常量存储;⑤非RAM存储。
3.Java所有数值类型都有正负号。有两个用于高精度计算的类:BigInteger和BigDecimal。
4.Java会确保数组初始化,并且不能在它的范围之外被访问(相比C和C++安全许多)。
5.Java不能多次定义一个变量
int i = 5;
{
int i = 94;//这在C/C++中合法,在Java中违法。
}
6.Java中由new创建的对象,可以存活于作用域之外,由垃圾回收器来监视用new创建的所有对象,辨别那些不会再被引用的的对象并将其释放(boolean,char,byte,short,int,long,float,double是例外,不需要用new)。
7.Java中由new创建的对象,传递对象时,实际上传递的是对象的引用。
8.许多C++编译器会对未初始化变量给予警告,而Java则视为是错误。
本文章大量从《Think in Java》、实践和网络中总结。