扫码关注公众号
JAVA 中的几种基本数据类型是什么,各自占用多少字节
先了解2个单词先:1、bit--位:位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为“0”或“1”。2、byte--字节:字节
JAVA是不是完全的面向对象语言?
Java不是纯面向对象语言,原因如下:1基本数据类型:Java中有8种基本数据类型,即int、long、float、double、char、boolean、byte和short,它们不是对象,而是原始数据类型,无法使用面向对象的特性。在Java中,这些基本数据类型是通过在类中定义的包装类(WrapperClass)实现面向对象特性的。2静态方法和变量:Java中的静态方法和变量属于类,而不是对象,可以在不创建对象的情况下直接调用。这违反了面向对象编程的原则,即所有操作都应该在对象上执行。3多重继承:Java不支持多重继承,这与面向对象编程的思想相悖。在纯面向对象编程语言中,一个类可以从多个类继承,但是Java中只能通过实现接口(Interface)来实现多继承的效果。
java中3*0.1 == 0.3 将会返回什么?true 还是 false?
正确答案是B答案是B:false,因为浮点数不能完全精确的表示出来,一般都会损失精度。但是思路是一个比较复杂的浮点实现问题,具体可能参考(待录文章16),既跟浮点数的表示有关,也跟Java的设计机制有关。需要了解浮点数是如何表示的。对于0.1来说,其本质是1/10,那么若你用二进制表示它们,然后除的话,是这样的:1/1010,然而这一个是除不尽的,是无穷循环。
对于Integer的执行,下列两个输出的结果是什么?
正确答案是A答案是A这里要理解装箱类的new和直接赋值的区别,直接赋值是调用了valueOf方法,从valueOf方法的源码可以看到,当传入的值在缓存区的范围内,就会直接在缓存区取值,只有当传入的数值不在缓存区范围内,才会去new一个新的对象缓存区的范围是-128到127之间,100在缓存区内,所以直接在缓存区中取值,两个对象的引用是同一个,所以结果为true100是基本数据类型,赋值给包装类型,所以执行了自动装箱操作,自动装箱的操作就是调用的valueOf方法,而且数值在缓存区范围内,所以在缓存区内取数据,和上面的题一样,结果为true200是基本数据类型,赋值给包装类型,所以执行了自动装箱操作,自动装箱的操作就是调用的valueOf方法,但是200不在缓存区范围内,所以需要去new一个对象,两者的引用自然不同,结果为false
相关基本数据类型,以下表达式正确的是
正确答案是D需要对基本数据类型的长度范围有简单快速计算方法,比如D选项中的2147483648是整数最大值+1;byte型的最大正数为127,A错误;Boolean型是基本数据类型,不能赋值为null;0.9239默认为double类型,double赋值给float属于下行,需要加转化,一般加0.9239f;数字后面加L表明为long类型,float到long属于上行,自动变化。如果去掉L,则表明为整数,溢出。