java基础——数据类型

90 阅读2分钟

数据类型

java的数据类型可分为基本数据类型和引用数据类型

基本数据类型:

  1. byte:1字节
  2. short:2字节
  3. int:4字节
  4. long:8字节
  5. float:4字节
  6. double:8字节
  7. char:2字节
  8. boolean:1bit

8bit= 1字节

虽然boolean只占1bit,但没有指定具体的大小,在jvm中会将其转换为int,jvm支持boolean数组,但是是通过读写 byte 数组来实现的。

引用数据类型:

  1. 数组
  2. 接口

引用数据类型是基于基本数据类型来实现的,引用数据类型是由用户自定义,用来限制其他数据的类型。另外,Java 语言中不支持 C++ 中的指针类型、结构类型、联合类型和枚举类型。

包装类

在java中,一切皆为对象,只有基本数据类型不是,而且基本数据类型的使用还是有一些限制,所以java为他们提供了对应的包装类。

image.png

基本数据类型和其对应的包装类可以自动进行拆箱和装箱。

缓存池

以Integer为例。

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

  • new Integer(123) 每次都会新建一个对象;
  • Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。

new()会直接创建新对象,而使用valueOf() 方法,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。

缓冲池的大小有范围限制,所以使用valueOf方法在范围内就返回缓冲池的内容,没有就创建新类。

Integer x = new Integer(123);
Integer y = new Integer(123);
System.out.println(x == y);    // false
Integer z = Integer.valueOf(123);
Integer k = Integer.valueOf(123);
System.out.println(z == k);   // true

false
true