在(1)中主要是对于背景的讲解和一些资料的补充,主要是第一章的内容,第一章的内容就跟读书差不多。第二章就是讲解了比较基础的java语言的知识,比如基础类型、垃圾回收机制、作用域、static关键字还有就是创建java程序。
对象存储
首先是java创建的对象被存储到了什么地方。有五个地方可以存储数据:(1)寄存器。寄存器是最快的存储区,因为它位于处理器内部,但是寄存器的数量极其有限,所以寄存器根据需求进行分配,这是不可控的也不能在程序中有体现(c和c++允许向编译器建议寄存器的分配方式)。(2)堆栈。位于通用RAM(随机访问存储器中),通过堆栈指针可以从处理器那里获得直接支持。堆栈指针向下移动,则分配新内存,堆栈指针向上移动则释放那些内存。堆栈是一种仅次于寄存器的快速有效的分配存储方法。创建程序时,Java必须知道存储在堆栈内部的所有项的确切生命周期,以便上下移动指针。(3)堆。一种通用的内存池(也位于RAM区),用于存放所有的java对象。堆不同于堆栈的好处是:不需要知道存储项的确切生命周期,因此其分配内存有很大的灵活性。当然这种灵活性也导致其需要更多的时间来进行存储分配。(4)常量存储。常量值通常直接放在程序内部,这样做是安全的,因为它们永远不会被改变。有时在选择放在ROM(只读存储器)中。(5)非RAM存储。如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也存在。基本例子就是流对象和持久化对象。
基本数据类型
java中的基本数据类型有8中int,short,long,float,double,char,byte,boolean,每个基本类型都有与之相对的包装类。基本类型不需要new关键字来创建对象,而是创建一个并非是引用的“自动”变量,这个变量直接存储“值”,并置于堆栈中,因此更加高效。基本数据类型成为其他对象的成员变量即使不被赋值也会有一个默认值。另外java提供了两个用于高精度计算的类:BigInteger和BigDecimal。BigInteger支持任意精度的整数,BigDecimal支持任何精度的定点数。
有关于变量的生命周期,java有其独有的自动清理功能也就是垃圾回收。垃圾回收跟作用域有关,垃圾回收的判断是变量不再被使用,其就会被回收,这也就是说当变量变量所在的作用域结束之后就可以进行垃圾回收了。垃圾回收器监视用new所创建的所有的对象,并辨别那些不会再引用的对象,随后就释放这些对象的内存空间,以便供其他对象使用。
static关键字
在创建类时,就是在描述那个类的对象的外观和行为。在使用new的时候才分配数据存储空间,其内部方法才能被调用。当我们想为某特定域分配单一的存储空间,这时就用到了static。当声明一个事物是static的时候,就意味着这个域或者方法不会与包含它的那个类的任何对象实例关联在一起。所以,即使从未创建某个类的任何对象,也可以调用其static方法或者访问其static域。通常,你必须创建一个对象,并用它来访问数据或方法。因为非static域和方法必须知道它们一起运作的特定对象。
代码风格
类名的首字母要大写;如果类名由几个单词构成,那么把它们并在一起(也就是说,不要用下划线来分隔名字),其中每个内部单词的首字母都采用大写形式。这种风格有时称作“驼峰”风格。几乎其他所有内容——方法。字段(成员变量)以及对象引用名称等,公认的风格与类的风格一样,只是标识符的第一个字母采用小写。