提几个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中的指针一样进行++的操作。
以上是我“不负责任”的理解