这是对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:这是为了方便管理程序,生成的注释文档;需本身配置;