Java 面试题基础(五)

本文详细解答了Java面试中的基础问题,涉及类型转换、线程安全、运算符区别、内存模型、字符串不可变性、构造器链、垃圾回收、JVM组件及内存区域等关键知识点,帮助读者巩固Java基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等,持续更新中。

如果对老铁有帮助,帮忙免费点个赞,谢谢你的发财手!

1、将 int 强制转换为 byte 类型,将会出现什么现象?

Java 中 int 是4个字节 32 位的,而 byte 是1个字节 8 位的,所以,如果强制转化,int 类型的高 24 位将会被丢弃,byte 类型的范围是从 -128 到 127。

2、Java 中 ++ 操作符是线程安全的吗?

不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存储回内存,这个过程可能会出现多个线程交差。

3、a = a + b 与 a += b 的区别?

如果a和b是 byte或short,编译器都会报错。但是 a += b 没问题。

4、能在不进行强制转换的情况下将一个 double 值赋值给long 类型的变量吗?

不行,你不能在没有强制类型转换的前提下将一个double 值赋值给 long 类型的变量,因为double 类型的范围比long 类型更广,所以必须要进行强制转换。

5、3*0.1 == 0.3 将会返回什么?true 还是 false?

false,因为有些浮点数不能完全精确的表示出来。

6、int 和 Integer 哪个会占用更多的内存?

Integer 对象会占用更多的内存。Integer 是一个对象,对象头需要存储对象的元数据。
但是int 是一个原始类型的数据,所以占用的空间更少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值