Java是比较纯粹的面向对象语言。
Java中一切都是对象,通过操纵对象的引用来使用对象,引用可以单独存在,但是如果向引用发送消息将抛出异常,必须通过new操作符创建一个对象并把它和引用联系起来才可以通过引用使用对象。
Java对象存储的位置:
寄存器:速度最快,但是我们不能直接控制。
堆栈:位于RAM中,速度仅次于寄存器,但Java必须知道对象的生命周期,限制了灵活性,Java中引用存于这里,但是对象不存在这里。
堆:位于RAM中,存放Java对象,比较灵活,但是代价是降低速度。
常量存储:存放在代码内部。
非RAM存储:持久化和序列化
基本类型不用new创建,存放于堆栈中,比较高效。Java基本类型所占存储空间大小不变。详见书23页表
所有数值类型都有符号,boolean类型所占空间不确定,仅能取值true或false。
Java SE5吐过ibgk自动包装功能。Java提供了两个高精度数字BigInteger和BigDecimal。
Java确保数组的初始化,并且会对范围进行检查。Java不会对对象数组初始化,全部为null,会对基本类型数组按照其默认值初始化。
Java不允许在一个作用域定义两个同名变量,也不能将较大作用域变量隐藏起来。
在作用域外,引用会销毁,但是对象需要通过垃圾回收器销毁,所以并不一定是在出作用域就销毁。
class定义类,new创建类的对象。
类中包含两种元素:字段和方法。字段是对象必须要初始化才能使用,基本类型Java会按其默认值自动初始化。基本类型默认值详见书26页。
方法名和参数列表唯一地标识出某个方法。接收返回值的变量必须要和返回值类型兼容。
return关键字表示离开方法并且返回一个值。
Java通过名字空间防止同名类的冲突,通过import来引用其他类,通配符*表示一次导入某个包中的所有类。
使用了static关键字的类数据只会在存储空间创建一份,多个对象的该数据会指向同样的存储空间,使用了static关键字的方法不需要创建对象就可以使用。
编译和运行:Javac编译,Java运行。
注释类型:/**/用于多行注释;//用于单行注释,Java只能为public和protected成员产生文档。
在Java注释中可以使用HTML风格。标签示例:@see、@link package.class#member label、@docRoot、
@inheritDoc、@version、@author、@since、@param、@return、@throws、@deprecated(Java SE5中被@Deprecated替代)
Java编码风格采用驼峰风格。