日期:2014-05-20  浏览次数:20801 次

提几个c++ 与 java 的概念区别问题
1、在c++   null是空指针的值   在java中null是指代什么呢(空对象的值吗?)

2、在c++中构造链表是通过对象引用   那么对象引用到底是对地址的引用呢  
还是其他的  

3、c++中有sizeof查看某个类型或结构或类的大小   java中有没有呢
比如   c++中
struct   node
{
int   data;
node   *next;
};
sizeof(node)=8

java
是这么样的
class   node
{
int   data;
node   next;
}
size   of(node)=?


------解决方案--------------------
1 null指的是对象没有实例化
2 不太明白什么意思
3 java没有sizeof,因为java用的是虚拟机,不能精确操纵内存,而且java是动态分配内存,因此这是不必要的
------解决方案--------------------
个人观点:null是java中的关键字,就是为空;可以代表很多类型的空值,也可以表示对象引用为空

sizeof()用来判断如int, float或者一个类的大小.在java中这些数据类型的大小是固定的,所以根本不需要sizeof()函数。
int和float型的大小都是32bits。
至于对象的大小你也不用关心,在java中,对象的内存分配是自动的。sizeof()在java中没有什么实际意义
------解决方案--------------------
1、当声明一个变量或者成员,且没有赋值的时候,C++ 会让其指向一个未知结果。Java 认为这样不安全,所以使用一个关键字 null 来表示这种情况。当试图对这样的变量做操作时,Java 便会抛出异常。

2、引用是一种逻辑上的说法,至于实现方式,各种语言可能都不一样。没有必要强求 Java 一定要把引用要指向内存地址,或是其他什么的。

3、Java 隐藏了内存操作,所以 sizeof 对 Java 来说毫无意义。
------解决方案--------------------
1,引用型变量没有引用任何实例
2,逻辑上可以这么理解,物里上不用理解。
3,没必要,因为JAVA中的引用不能象C中的指针一样进行++的操作。
以上是我“不负责任”的理解