Java是一门纯的面向对象的编程语言,在java中一切‘东西’都是基于对象。
1、对象的存在
尽管在Java中一切都是基于对象,但是操纵的是对象的引用。对象和对象的引用是一对非常重要的概念。而且,就算对象不存在,对象的引用也可以存在。
例如:String s;
在这里,s只是一个String类型的对象的引用,真正的对象并未创建,但是这并不妨碍s(引用)的存在。但是如果操纵s,编译器就会发声错误,因为s只是一个引用,并没有真实的对象与之关联。
对象的存储:
- 堆栈:堆栈存储了java对象的引用,实际的java对象并不存在于其中。通过堆栈指针的移动可以从处理器获得内存。
- 堆:所有的java对象都存储在堆中。
- 常量存储:所有的常量都存储在程序代码内部。
八大基本类型:
- boolean
- char
- byte
- short
- int
- long
- float
- double
为了提高效率,八大基本类型是存储在堆栈中的,也就是说,不需要new来创建。而这就需要保证这八大基本类型的大小是固定的。而且八大基本类型都有对应的默认值。但是只有当他们是成员变量时才会被初始化,当他们是局部变量时是不会被初始化的。
例如:
public Class Demo{
int x;
public void fn1(){
int y;
}
}
在上面的例子中,x的值是0,而y则是null,如果使用y则会报错,而使用x则不会报错。
基本类型都具有对应的包装类,可以在堆中创建一个非基本对象,用来表示基本类型。
2.static修饰
java中static修饰的变量独立于对象以外,即static修饰的变量在对象还未创建时就已经存在,而且多个类的对象对应的同一个static修饰的变量都是同一个。