每日一道Java 基础面试题 — 八种基本数据类型

基本类型大小(字节)默认值封装类
byte1(byte)0Byte
short2(short)0Short
int40Integer
long80LLong
float40.0fFloat
double80.0dDouble
boolean-falseBoolean
char2\u0000(null)Character

1.int是基本数据类型,Integer是int的封装类,是引用类型。

int默认值是0,而Integer默认值是null,所以Integer能区分出0和null的情况。
一旦java看到null,就知道这个引用还没有指向某个对象,再任何引用使用前,必须为其指定一个对象,否则会报错。

2.基本数据类型在声明时系统会自动给它分配空间,而引用类型声明时只是分配了引用空间,必须通过实例化开辟数据空间之后才可以赋值。

数组对象也是一个引用对象,将一个数组赋值给另一个数组时只是复制了一个引用,所以通过某一个数组所做的修改在另一个数组中也看的见。

注意:

虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替

而boolean数组将会被编码成Java虚拟机的byte数组,每个boolean元素占8位(1 byte = 8 bits)。
这样我们可以得出boolean类型占了单独使用是4个字节(int类型是四个字节),在数组中又是1个字节

使用int的原因是,对于当下32位的处理器(CPU)来说,一次处理数据是32位(这里不是指的是32/64位系统,而是指CPU硬件层面),具有高效存取的特点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是几个与Java八种基本数据类型和对应的包装类型相关的面试题: 1. Java中有哪八种基本数据类型?它们分别是什么? Java中有8种基本数据类型,分别是:byte、short、int、long、float、double、char和boolean。 2. Java中的基本数据类型和包装类型有什么区别? 基本数据类型直接存储数据的值,而包装类型是基于基本数据类型的对象类型,它们提供了一些额外的功能,如自动装箱和自动拆箱、null值、equals方法等。 3. 什么是自动装箱和自动拆箱? 自动装箱是指将基本数据类型转换为对应的包装类型,自动拆箱是指将包装类型转换为对应的基本数据类型Java 5引入了自动装箱和自动拆箱的特性,使得开发者无需手动转换,而是由编译器自动完成转换的工作。 4. 如何将基本数据类型转换为对应的包装类型? 可以使用对应的包装类型的valueOf方法进行转换。例如,将int类型的值转换为Integer类型可以使用Integer.valueOf(int)方法。 5. 如何将包装类型转换为对应的基本数据类型? 可以使用包装类型的xxxValue方法进行转换,其中xxx是对应的基本数据类型的名称。例如,将Integer类型的对象转换为int类型可以使用intValue()方法。 6. Integer i = 10 和 Integer i = new Integer(10) 有什么区别? 前者使用自动装箱将int类型的值10转换为Integer类型,而后者是通过显式地创建一个Integer对象来实现的。 7. 为什么应该使用包装类型而不是基本数据类型? 使用包装类型可以提供更多的功能,如自动装箱和自动拆箱、null值、equals方法等。此外,某些框架和库要求使用包装类型,例如Hibernate中的映射。 8. 为什么应该避免使用包装类型? 使用包装类型会带来一些额外的开销,如对象创建、内存分配和垃圾回收等,对性能有一定的影响。因此,在性能要求较高的场景下,应该尽量使用基本数据类型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值