java基础(一)--一切都是对象
这是对java的再一次整合学习,在看《JAVA编程思想》后的一些记录;理解不当欢迎指正;
1.用引用操作对象,你拥有一个引用,并不需要有一个对象与之关联:
eg:String s;
这里创建的只是引用,并不是对象;这里其实相当于只是创建一个指针(有些不太恰当,但便于理解),但并没有一个明确指向;
安全的创建:String s = "abc"; 或者String s = new String("abc");
2.存储:
a.寄存器:这是最快的存储区;寄存器根据需求分配,不能直接控制
b.堆栈:位于通用RAM中,可以通过堆栈指针从处理器获得支持;一般对对象的引用的存储;需要知道确切的生命周期;
c.堆:一种通用的内存池,用于存放所有的JAVA对象;不需要知道生命周期;
d.常量存储:常量值
e.非RAM存储:流对象和持久化对象(在其他地方存储,数据库)
3.数组:
java确保数据组会被初始化,而且不能在它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销及运行时的下表检查为代价;
a:默认没有初始化为null;一旦java看到null,就知道这个引用还没有指向某个对象。
b:创建用来存放基本数据类型的数组;为了确保初始化,置为0;
4.作用域:作用域的位置有花括号决定
在C和C++中将一个较大的作用域的变量“隐藏”起来,java中不行:
eg:java中报错,编译器将报告x已经定义过;
{
int x = 12;
{
int x = 96;
}
}
a.对象的作用域:java对象不具备和基本类型一样的生命周期;当new一个对象时,它可以存活在作用域之外
{
String s = new String("abc");
}
引用s在作用域终点就消失了。而,s指向的对象仍然占据内存;
为了避免“内存泄漏”,java自带垃圾回收机制。
5.static关键字:
两种情况:第一种,只想为某特定域分配单一存储空间,不用考虑创建多少对象,或者不创建对象;
第二种,希望某个方法不包含与它的类的任何对象关联在一起,即没创建对象可以调用方法;
就是一个类定义了一个static数据成员,不管创建几个该类对象,都不会再对该成员分配空间;所有对象共享一块这一个数据成员;
6.javadoc:这是为了方便管理程序,生成的注释文档;需自己配置;