基本数据类型和对应的包装类
字节 | 短 | 整型 | 长 | 单精度浮点 | 双精度浮点 | 字符 | 布尔值 |
---|---|---|---|---|---|---|---|
byte | short | int | long | float | double | char | boolean |
Byte | Short | Integer | Long | Float | Double | Character | Boolean |
注意:引用类型是一种对象类型。它的值是指向内存空间的引用,就是地址
内存分配
基本数据类型的变量是存储在栈内存中,而引用类型变量存储在栈内存中,保存的是实际对象在堆内存中的地址,实际对象中保存这内容。
自动装箱、自动拆箱
Java从jdk1.5开始引入自动装箱和拆箱,使得基本数据类型与引用类型之间相互转换变得简单。
自动装箱: java自动将原始类型转化为引用类型的过程,自动装箱时编译器会调用valueOf方法,将原始类型转化为对象类型。
自动拆箱: java自动将引用类型转化为原始类型的过程,自动拆箱时编译器会调用intValue(),doubleValue()这类的方法将对象转换成原始类型值。
自动装箱主要发生在两种情况:一种是赋值时,一种是方法调用时。
1.赋值
Integer a = 3; //自动装箱
int b = a; //自动拆箱
方法调用
public Integer query(Integer a) {
return a;
}
query(3); //自动装箱
int result = query(3);
字符串具有不可变性,当频繁操作字符串时候,会在常量池中产生很多无用的数据。 StringBuilder 与 String 不同,它具有可变性。相较 String 类不会产生大量无用数据,性能上会大大提高。
因此对于需要频繁操作字符串的场景,建议使用 Stringbuilder 类来代替 String 类。
网友评论