true,false,null是java关键字吗?它们在内存中究竟是以什么值来存储?
4个回答
展开全部
楼上的请注意了,一个对象赋值成null再被调用会不出空指针异常么?请考虑清楚,别误导人家!
作为关键字true,false,null都分别代表不同的含义。
"位"是内存中作为存储数据的基本单位,而我们又通常说,一个字节是8位,也就是 1byte = 8bit。
因为内存中,"位"是使用0和1来表示的,所以作为关键字,true的值在内存中就表示1,false在内存中就是表示0。
但是这里不要和整数(int)中的0和1相比,他们占用的内存空间是不一样的。一个int型的变量,占用的内存空间是4个字节,也就是4 * 8 = 32位,与true和false占用的内存空间是不同的。
而作为关键字null,解释起来就更是麻烦了。
当一个对象被声明时(Object o;),这个对象会以一个整数的字节数,只在内存堆栈(stack)中开辟一个内存指针。例如,我们使用Object o = new Object();实例化一个对象,那么在内存中的运行则是:在内存堆栈(stack)中开辟一个4个字节的指针,然后在内存堆区(heap)开辟这个对象所要存储的数据并初始化,然后在将之前在stack中的内存指针中赋上在heap中开辟的空间的首地址。
而如果Object o;没有进行实例化,则不可能使用o的引用。这时为了方便使用,则出现了null关键字。null关键字的意义也就是一个用来初始化对象的空引用。
作为关键字true,false,null都分别代表不同的含义。
"位"是内存中作为存储数据的基本单位,而我们又通常说,一个字节是8位,也就是 1byte = 8bit。
因为内存中,"位"是使用0和1来表示的,所以作为关键字,true的值在内存中就表示1,false在内存中就是表示0。
但是这里不要和整数(int)中的0和1相比,他们占用的内存空间是不一样的。一个int型的变量,占用的内存空间是4个字节,也就是4 * 8 = 32位,与true和false占用的内存空间是不同的。
而作为关键字null,解释起来就更是麻烦了。
当一个对象被声明时(Object o;),这个对象会以一个整数的字节数,只在内存堆栈(stack)中开辟一个内存指针。例如,我们使用Object o = new Object();实例化一个对象,那么在内存中的运行则是:在内存堆栈(stack)中开辟一个4个字节的指针,然后在内存堆区(heap)开辟这个对象所要存储的数据并初始化,然后在将之前在stack中的内存指针中赋上在heap中开辟的空间的首地址。
而如果Object o;没有进行实例化,则不可能使用o的引用。这时为了方便使用,则出现了null关键字。null关键字的意义也就是一个用来初始化对象的空引用。
展开全部
对 这些都是JAVA的关键字
在内存中以二进制来存储的
true表示 真
false表示 假
null 表示 空的 没有的
在内存中以二进制来存储的
true表示 真
false表示 假
null 表示 空的 没有的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在java中TRUE和FALSE是布尔值,是基本数据类型,表示真和假
null可以看成是类类型的,当一个对象还没有赋以初值时可以先把它初始化成null,这样不会产生空指针异常
null可以看成是类类型的,当一个对象还没有赋以初值时可以先把它初始化成null,这样不会产生空指针异常
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么乱七八糟的。这三个都不是关键字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询