Java面试题大全(一)

可能会有重复(就当复习了)

纯手打可能会出现错别字之类的。。。

JDK 和 JRE 有什么区别?

JDK:Java Development Kit 的简称,Java开发工具包,提供了Java的开发环境和运行环境

JRE:Java Runtime Enviroment的简称,Java运行环境,为Java的运行提供了所需环境。具体来说JDK其实包含了JRE,同样还包含了很多Java程序调试和分析的工具。简单来说:如果需要运行Java程序,只需要安装JRE就行了,如果你需要编写Java程序,则需要安装JDK

Java中的基本数据类型有哪些?

Java中有八大基本数据类型

byte short int float long double char boolean

基本数据类型转换关系:byte-》short(char)-》int-》long-》float》double

谈谈你对包装类的理解

所谓包装类,就是能够直接将简单类型的变量表示为一类类,在执行变量类型的相互转换时,我们会大量使用这些包装类。

包装类的用途:

  1. 作为基本数据类型对应的类类型,提供了一系列实用的对象操作,如类型转换,进制转换等
  2. 集合不允许存放基本数据类型,所以需要使用包装类
  3. 包装类包含了其对应类型的相关属性,如最大值,最小值,所占位数

包装类都是final修饰的,不可被继承

包装类都继承了Number抽象类

new Integer(123)和Integer.valueOf(123)的区别在于

new Integer(123)每次都会新建一个对象

Integer.valueOf(123)会使用缓存池中的对象,多次调用会取得同一个对象的引用

对于valueOf()方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容

什么是缓存池?

以Integer为例,Integer 使用 private static class IntegerCache声明一个内部使用的缓存池、

  • Integer中有个静态内部类IntegerCache,里面有个cache[],也就是Integer常量池,常量池的大小为一个字节(-128~127)
  • 为啥把缓存设置为[-128,127]区间?性能和资源之间的权衡。 在 jdk 1.8 所有的数值类缓冲池中,Integer 的缓冲池 IntegerCache 很特殊,这个缓冲池的下界是 - 128,上界默认是 127,但是这个上界是可调的,在启动 jvm 的时候,通过 -XX:AutoBoxCacheMax= 来指定这个缓冲池的大小。

为什么使用BigDecimal

BigDecimal 主要用于处理解决精度丢失问题

float和double类型主要是为了科学计算和工程计算而设计的。执行二进制浮点运算,这是为了在广泛的数字范围上提供较为精确的快速近似计算而精心设计的。然而,它们并没有提供完全精确的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值