`

Thinking In Java Chapter2小记

阅读更多

一直没整理 今天一并发上来

 

第二章中间有一些以前忽略的东西,做个简单的记录。

 

操作的标示符其实是一个引用,所以安全的做法是在创建引用的同时进行初始化

 

存储的位置

寄存器是最快的存储区,位于处理器内部,但数量有限,不能直接控制

堆栈,位于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

*/

 

一些标签示例(具体不列出了)

 

编码风格

类名首字母大写,不用下划线分割名称

方法 字段 对象引用一样 但首字母小写

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics