欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java常见面试题(1)

程序员文章站 2022-06-09 20:05:56
...

1.数据类型

包装类型

8大基本数据类型

  • boolean 1 字节
  • byte 8
  • char 16
  • short 16
  • int 32
  • float 32
  • long 64
  • double 64
    基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值
    使用自动装箱和拆箱完成

2.缓存池

new Integer(123)和Integer.valueOf(123)的区别在于:
  • new Integer(123)每次都会新建对象
  • Integer.valueOf()会将创建的对象放在缓存池中,多次调用时会取同一个对象的引用
      Integer b=new Integer(123);
      a==b  //false
      Integer a=Integer.valueOf(123);
      Integer b=Integer.valueOf(123);
      a==b // true

valueOf()的方法实现比较简单

  1. 判断是否在缓冲池中
  2. 若存在则会返回存在缓冲池中的内容

在Java8中,Integer缓存池的默认大小为:(-128-127);
编译器会在自动装箱过程调用valueOf()方法,因此多个Integer实例使用自动装箱来创建并且值相同,那么就会引用相同的对象
基本类型对应的缓冲池如下:

  1. boolean values true and false
  2. all byte values
  3. short values between -128-127
  4. int values between -128-127
  5. char in the range \u0000 to \u007f
    使用基本类型对应的包装类型时,就可以直接使用缓冲池中的对象
相关标签: Java常见面试题