一切都是对象
用句柄操纵对象
JVM是怎么通过句柄访问对象的(或者说句柄究竟是个什么东西),给我的感觉就像指针或者引用。也有人说句柄就是“受到了严格限制和防范的指针”。在给方法传参数的时候需要注意。
所有的对象必须创建
程序运行时可以保存数据的六个地方:寄存器、堆栈(对象句柄)、堆(对象)、静态存储(JAVA对象永远不会置于静态存储空间)、常熟存储、非RAM存储。
8种不用new初始化的变量:boolean、byte、short、char、int、float、long、double。从小到大排序。java里面是没有unsigned类型的,曾今写加密程序的时候在这个问题上的纠结,好菜。另外还有两种高精度:BigInteger、BigDecimal。
Java中new一个数组的时候得到的也是一个“数组句柄”,初始化之后所有对象句柄都为“null”。Java比C++多做了很多的检查。
绝对不要清除对象
Java和C++的作用域有些不同的地方,比如:
public class test { public static void main(String[] args){ { int x = 0; { int x = 1;//报错 } } } }
Java中有“垃圾回收器”,在对象不用的时候它会负责去释放这些内存,所有释放对象这种事情就不用我们操心了。如果每次对象我们知道不用了就释放掉内存,下次需要的时候再重新申请内存,这样会影响效率吧。后面再详细说明。
新建数据类型:类
如果类的成员是主类型,那么即使不明确地进行初始化,也可以保证它们获得唯一的默认值。
方法、自变量和类
是不是新的语言总是不喜欢用旧的语言的说法所有才有了“Method”而不是“Function”?
构建Java程序
文件的可见性,C++中用“命名空间”搞定,而Java中则用一个一个的包来做。在需要其他模块的时候就用“import”引入。这里提了一下“static”这个关键字。具体的特别的地方还是在“初始化”那块详细说明吧。
--------------------------------------霸气的分割线--------------------------------------
昨天晚上通宵了今天也没睡。。。
如有错误,欢迎拍砖。