一直没整理 今天一并发上来
第二章中间有一些以前忽略的东西,做个简单的记录。
操作的标示符其实是一个引用,所以安全的做法是在创建引用的同时进行初始化
存储的位置
寄存器是最快的存储区,位于处理器内部,但数量有限,不能直接控制
堆栈,位于RAM随机访问存储器中,通过堆栈指针从处理器获得直接支持。指针向下移动则分配内存,向上则释放。仅比寄存器慢,是高效快速的。Java系统必须知道所有项的生命周期以控制对战指针,所以限制了灵活性
堆,一种内存池,位于RAM。所有Java对象存储在这里,不需要知道生命周期。相对的,灵活性需要牺牲存储分配和清理时所需要的时间。
常量存储,直接存放在程序代码内部,安全,永远不会被改变。在嵌入式系统中,可以选择存放在ROM只读存储器中。
非RAM存储,存活于程序之外,流对象和持久化对象。流对象转化为字节流发送通信;持久化对象存放在磁盘。
基本类型
int boolean char float等等 存放在堆栈内
new Integer等 存放在堆中
Java所有连基本类型占固定大小,而不随硬件架构改变,从而使程序的移植性加强。
所有数值类型都有正负号
每个基本类型都有对应的包装类(int-Integer;char-Character等等)
高精度数字BigInteger,BigDecimal
必须以方法调用方式取代运算符方式,运算速度比较慢,但精度高,不会丢失任何信息
Java不允许因为作用域不同而定义同名变量
对于类的某个成员是基本数据类型的,Java会确保默认值,但是对于类中“局部变量”(不是类的字段,比如方法中定义的int i),不会自动初始化。
static关键字
当声明为static时,意味着这个域或方法不会与包含它的类中任何对象实例相关联,因此不管是否创建了对象,都可以调用方法。
对于一个类中声明为static的某变量,即使实例化多个对象,该变量也只有一份存储空间,他们共享同一个值。(比如i为static的,sta1.i和sta2.i共享一个i)
建议通过类名直接引用变量StaticTest.i
静态方法一样可以通过类直接调用StaticTest.staticMethod()
static作用域某字段时会改变数据创建方式(static的只有一份存储空间,非static的则每个对象都有一个存储空间)
对于static方法,主要是为了在不创建任何对象的前提下调用它。
注释
C风格的单行// 多行/* */注释
javadoc
/** */
嵌入html的和用@独立文档标签的
/**
* <pre>
* abc
* </pre>
*/
/**
* @version 1.0
*/
一些标签示例(具体不列出了)
编码风格
类名首字母大写,不用下划线分割名称
方法 字段 对象引用一样 但首字母小写