一旦创建了一个引用,就希望它能与一个新的对象想关联,通常使用new操作符来实现这一目的,new的关键字意思是“给我一个对象。”
String s =new String("hello word!");
上述代码不仅表示“给我一个新对象”,而且通过提供一个初始化的字符串(hello word!),给出了怎样产生这个String的信息。
2.2.1 存储位置
- 寄存器,与cpu最接近,最快的存储器,数量有限,java中不能直接控制。
- 栈,数据存储区。
- 堆,对象存储区
- 常量存储区(如ROM)。
- 非RAM存储。
2.2.2 基本类型
特点:非引用类型,直接存储“值”,并置于栈中。
基本类型 |
大 小 |
最小值 |
最大值 |
包装器类型 |
默认值 |
boolean |
- |
- |
- |
Boolean |
false |
char |
16 bits |
Unicode 0 |
Unicode 216-1 |
Character |
null |
byte |
8 bits |
-128 |
+127 |
Byte |
0 |
short |
16 bits |
-215
|
+215-1 |
Short |
0 |
int |
32 bits |
-2 31 |
+231-1 |
Integer |
0 |
long |
64 bits |
-263
|
+263-1 |
Long |
0L |
float |
32 bits |
IEEE754 |
IEEE754 |
Float |
0.0f |
double |
64 bits |
IEEE754 |
IEEE754 |
Double |
0.0d |
void |
- |
- |
- |
Void |
- |
注意:局部变量初始值可能是一个随机值,使用时应该对其赋值,否则会在编译时返回一个错误。
2.2.3 数组
创建一个数组对象实际上就是创建 了一个引用数组,并且每个引用(既数组元素)都会自动被初始化为一个null值,一旦java看到null,就知道这个引用还没有指向某个对象,在使用任何引用之前,必须为其指定一个对象,如果试图使用一个还是null的引用,在运行时将会报错。
基本数据类型的数组,会将该数组所占的内存全部置零。