Java面试题大全(一)

Java面试题大全(一),第1张

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

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/919721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存