平时也许我们没有过多的注意到这些面试题对程序员工作的影响,但是确实是面试官经常要问的问题,以此来考核你是否使用过或者是否理解其原理。不可否认的是,如果面试前不做复习,大部分人是无法通过面试的,这就造成了面试题成了一种鸡肋,食之无味,弃之可惜。希望应聘者能遇到善解人意的面试官,也希望面试官能艺高人胆大的抛橄榄枝。
这个问题也许所有应聘者都能回答上来,但是有几个人知道这个是如何算出来的吗?详细阐述给你的面试官,你会被另眼相看的。
在JAVA中一共有八种基本数据类型,它们分别是 byte、short、int、long、float、double、char、boolean。
其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样。
而取值范围又是如何定义的呢?
我们先来看byte,即字节类型,jvm中规定一个字节等于8位(bit),这和计算机字长8位有关,就是00000000。
而bit是二进制,只能用0和1表示,且第一位表示 (0),-(1),后七位表示数值,所以一个字节最大的二进制为01111111( 127),最小的为11111111(-127),由于会出现00000000( 0)和10000000(-0),两者数学意义上是一样的,但是计算机并无法和人脑一样识别,所以印度人便规定10000000(-0为-128),这就是byte取值范围的由来了。
知道了Byte,我们便可推算出int的取值范围了。
那为什么int是占用4个字节呢?因为java定义好的,这个无需纠结。
byte的取值范围为-128 ~ 127,占用1个字节(-2的7次方到2的7次方-1);
short的取值范围为-32768 ~ 32767,占用2个字节(-2的15次方到2的15次方-1) ;
int的取值范围为(-2147483648 ~ 2147483647),占用4个字节(-2的31次方到2的31次方-1) ;
long的取值范围为(-9223372036854774808 ~ 9223372036854774807),占用8个字节(-2的63次方到2的63次方-1);
祝大家面试顺利!
特别声明:文章来源用户上传并发布,本站只提供信息存储服务,不拥有所有权,内容仅供参考。