【Java】原始数据类型与其包装类

Primitive types


  Java语言中默认定义了8个原始数据类型,大致可以分为4类:

  • 整型:包含byte、short、int、long

  • 浮点型:float、double

  • 布尔型:boolean

  • 字符:char

  这8个基本的数据类型如果在声明的时候没有初始化,编译器会赋予默认值,引用类型的对象(如String)默认值为null。但如果是局部变量(Local Variables,方法体内申明),编译器不会自动赋予初始值,会报编译错误。

Data Type Default Value (for fields)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char ‘\u0000’
boolean false
String(or any object) null


Object wrapper classes


  虽然Java是面向对象语言,但是它在设计之初却保留了一些面向过程语言的特性,它的8个原始数据类型就是非面向对象的——没有属性、没有方法,它们不是类。使用它们确实能够进行简单、有效的常规数据处理,但是有时候我们需要像对象一样处理基本数据类型。因此Java为每种原始数据类型分别设计了对应的包装类(Wrapper Classes)。

Primitive type Wrapper class
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

  使用包装类有以下作用:

  • 提供了一些实用方法,比如:基本类型之间相互转换

  • 要求Object类型时无法使用基本数据类型,比如集合内不允许存放基本数据类型

Autoboxing&Unboxing


  自动装箱是指Java编译器将基本数据类型自动转换为相对应的包装类,比如int转换为Integer,反之是自动拆箱。JDK1.5之后才支持自动拆装箱,在此之前,都需要手动操作。

List li = new ArrayList<>();
for (int i = 1; i < 50; i += 2)
  li.add(i);
//i是int类型,编译器会自动装箱为Integer类,来完成li.add()

  自动拆装箱让开发人员代码书写更简洁,更容易阅读。

你可能感兴趣的:(☆,Basic,————,Java,Java,SE)