读书人

提几个c++ 与 java 的概念区别有关问题

发布时间: 2012-02-15 12:09:44 作者: rapoo

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

读书人网 >J2SE开发

热点推荐