【Java基础面试题024】Java中包装类型和基本类型的区别是什么?

回答重点

基本类型:

  • Java中有8种基本数据类型(byte、short、int、long、float、double、char、boolean)
  • 他们是直接存储数值的变量,位于栈上(局部变量在栈上、成员变量在堆上,静态字段/类在方法区),性能较高
  • 且不支持null值

包装类型:

  • 每个基本类型都有一个对应的包装类型(Byte、Short、Integer、Long、Float、Double、Character、Boolean)
  • 包装类型是类,存储在堆中,可以用于面向对象编程
  • 支持null值

区别:

1)性能区别:

  • 基本类型:占用内存小,效率高,适合频繁使用的简单操作
  • 包装类型:本质是对象,涉及内存分配和垃圾回收,性能相对较低

2)比较方式不同:

  • 基本类型:比较用==,直接比较数值
  • 包装类型:比较对象的内容用equals(),比较对象的内存地址用==

3)默认值不同:

  • 基本类型:默认值是0,false等
  • 包装类型:默认值为null

4)初始化的方式不同:

  • 基本类型:直接赋值
  • 包装类型:用new

5)存储方式不同:

  • 基本类型:如果是局部变量则保存在栈上,如果是成员变量保存在堆中
  • 包装类型:保存在堆上(成员变量,在不考虑JIT优化的栈上分配时,都是随着对象一起保存在堆上的)<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值