Java基础常见面试题(上)
1.JDK?JRE?JVM?
JDK包含JRE,JRE包含JVM
JDK是提供给开发者的工具,包含创建和编译Java程序、调试、注释工具等等...
JRE是Java运行时环境,仅包含Java应用程序的运行时的环境和必要的类库。
JVM是运行Java字节码的虚拟机,做到使用相同的结果,字节码(.class文件)和不同系统的JVM实现是Java语言‘一次编译,多处运行’的关键所在。
2.为什么说Java语言是“编译与解释并存”?
编译型:将源代码一次性翻译成机器码。
解释型:将源代码一句一句的解释为机器代码后执行。
Java程序要先编译后解释,先经过编译生成字节码,然后字节码由Java解释器来解释执行。
3.Java基本数据类型
整数型:byte(1)、short(2)、int(4)、long(8)
浮点型:float(4)、doule(8)
字符类型:char(2)
布尔类型:boolean
4.基本类型和包装类型的区别
用途:基本类型定义常量或局部变量。包装类型做方法参数、对象属性。并且包装类型可用于泛型,基本类型不可以。
存储方式:
占用空间:
默认值:
比较方式:
5.包装类型的缓存机制
重点看代码示例,创建后判断相等(因为缓存可能用的是一个常量)
6.自动装箱与拆箱了解吗?原理是什么?
装箱:将基本类型用它们对应的引用类型包装起来;
拆箱:将包装类型转换为基本数据类型;
7.为什么浮点数运算的时候会有精度丢失的风险?
8.如何解决浮点数运算的精度丢失问题?
BigDecimal
9.超过 long 整型的数据应该如何表示?
BigInteger 内部使用 int[] 数组来存储任意大小的整形数据。