java 进阶相关知识

1. java 自动拆箱和装箱的缺点

在这里插入图片描述

从上面可以得出的结论,是“==”运算在晕倒算术的情况下不会自动拆箱,以及他们的equals()方法不处理,数据转换的关系,因此在实际代码中尽量避免使用自动拆箱和装箱。

  • 性能开销:自动装箱和拆箱会增加一些性能开销。将基本类型的值转换为包装类型的对象需要额外的时间和空间。

  • 非线程安全:自动拆箱和装箱是非线程安全的,因为它们涉及到了对象的创建和销毁。如果在多线程环境下使用,可能会出现并发问题。

  • -可能会出现 NullPointerException 异常:如果一个自动装箱的操作产生一个 null 值,那么它将会抛出 NullPointerException 异常。这可能会导致难以调试的问题。

  • 可能影响内存和垃圾回收:由于自动装箱和拆箱会在堆上创建对象,这可能会导致内存占用过高,从而导致垃圾回收的性能下降。

  • 可能会导致不必要的装箱和拆箱:在自动拆箱和装箱的过程中,可能会发生不必要的装箱和拆箱,这会导致额外的开销。

2.类型擦除

类型擦除 ,java 直接把已有的类型泛型化。比如:ArrayList,原地泛型化后变成了ArrayList,而且保保证之前用的ArrayList的代码,在泛型版本里必须继续用这同一个容器。这就必须让所有房型实例类型,如,ArrayList,ArrayList这些全部成为ArrayList的子类型才能可以,否则类型转换不安全的。由此引出了裸类型,裸类型被视为所有该类型泛型化实例的共同父类型(Super Type)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

利剑 -~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值