类,对象
1.存储的地方
寄存器
速度最快的存储区,位于处理器内部,java不能直接控制,c/c++可以向编译器建议寄存器的分配方式
栈
位于RAM(随机访问存储器),这是一种快速有效的分配存储的方式,仅次于寄存器,分配释放通过指针,所以在创建程序时,系统必须明确知道其生命周期,这一约束限制了程序的灵活性,所以java对象不存在这,但java对象的引用放在这。
堆
一种通用内存池,也位于RAM区,用于存放所有的java对象,堆中,编译器不需要知道存储的数据在堆里存活多长时间。所以在堆中可以灵活的进行存储分配。但是用堆进行存储分配和清理需要更多的时间。
常量
通常直接放在代码里,放在ROM(只读存储器)
非RAM存储
对象存储在磁盘上,持久化对象
2.基本的数据类型
boolean所占存储空间没有明确指定
高精度数据类型,BigInteger BigDecimal
3.对象的作用域
在c/c++中,对象的作用域是{}大括号以内。比如可以
{
int a = 0;
{
int a = 1;
}
}
但在java中就不行了,java的设计者认为这样会造成混乱。
java对象不具备和基本类型一样的生命周期。当new了个java对象时,它可以存活于作用域之外,比如
{
String s = new String("12");
}//作用域之外
引用s在作用域外消失,然而s指向的String对象仍然继续占据着内存空间。我们无法在作用域之外访问这个对象,因为对它唯一的引用已超出了作用域的范围。java的垃圾回收器会监视new创建的所有对象,并辨别那些不会再被引用的对象。然后释放这些对象。
4.类成员初始化
基本成员的默认值,如果某个成员是基本类型,即使没有对其初始化,java也会确保它有默认值。注意:必须是类中的成员,如果不是类中的成员变量,而是普通的局部变量,则不会对其初始化
5.static关键字
作用:
1.只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建任何对象。
2.希望某个方法不与包含它的类的任何对象关联在一起。也就是说,即使没有创建对象,也能够调用这个方法。
如
class A{
static int i = 5;
}
A a1 = new a1();
A a2 = new a2();
在这里,a1.i和a2.i指向同一存储空间。
6.javadoc的使用
在eclipse中右键点击项目->Export->java->javadoc…
- 在注释中可以嵌入HTML语法
- 会输出类前及方法前的位于/* /中或//中的语句