您的位置 首页 java

java面试中的“偏、难、怪”

下面这些问题的答案也许会出乎你的意料,看看能答对几道吧。

java中 boolean 类型变量占几个字节

绝大部分人的回答是一个字节,但实际上应该区分这个变量是被存放在堆上,还是栈上;

如果是堆上,那么是一个字节;如果是栈上,应该是4个字节;

如何证明:写一个main方法,定义一个boolean类型变量,然后编译为 字节码 ,再使用javap命令查看对应的字节码,发现是这个样子的:i_const_1;说明在字节码层面将boolean类型的处理成了int类型;

boolean占用几个字节

java中,0有几种表示方式

看到这个问题,估计很多人会一脸懵~;

那么换一种稍微简单点的问法,0x0000000和0x8000000 的区别是什么,前者表示+0.0 后者表示-0.0;

那么0x0000000 和 0x8000000相等吗?尽管内存中存储的值不同,但在语言层面,二者是相等的,比较会返回true;

那么java中的0到底有几种表示方式呢?

0、false、\u0000、0L、0F、0D;每一种基本类型数据都对应其一种表示方式。

关于 NAN 的含义以及数值比较问题

NAN的全称是Not an num;

NAN和任何数值比较,都是不相等的;也就是 NAN != a 无论a是什么值,都会返回true;

但其他比较,比如NAA>a 或者 NAN<=a都会返回flase

文章来源:智云一二三科技

文章标题:java面试中的“偏、难、怪”

文章地址:https://www.zhihuclub.com/201008.shtml

关于作者: 智云科技

热门文章

网站地图