一切皆是对象!

最近从新开始读《Java编程思想》,系统的复习一下Java基础知识,只有打好了坚实的基础,才能有进一步的提升。程序员

在读的过程当中发现好多东西又有了更深的理解,还有些东西已经遗忘,为了不再次遗忘,在这里简单的作一些记录,以备之后查阅。编程

1.       在Java里一切都被视为对象,但操纵的标识符其实是一个引用,能够将这一情绪想象成遥控器和电视机,只要握住这个遥控器,就能保持与电视机的链接。当有人想改变频道或者减少音量时,实际操纵的知识遥控器(引用),再由遥控器来调控电视机(对象)。session

2.       对象存储在什么地方?hibernate

1)  寄存器,这是最快的存储区,处在处理器内部。对象

2)  堆栈,位于通用RAM(随机访问存储器)中。内存

3)  堆,一种通用的内存池,也位于RAM区,堆不一样于堆栈的地方是编译器不须要知道存储的数据在堆里存活多长时间。编译器

4)  常量存储,常量一般直接存储在程序代码内部。hash

5)  非RAM存储,例如流对象和持久化对象。io

3.       全部数值类型都有正负号,因此不要试图去寻找无符号的数值类型。编译

4.       Java有一个垃圾回收器,用来监视new建立的全部对象,并辨别哪些对象不会再被使用,随后就会释放这些对象的内存空间,以便供其余新的对象使用。也就 是说你根本不须要担忧内存回收问题。你只须要建立对象,一旦再也不使用,他们就会被自行回收,这样作就消除了内存泄露的问题(是因为程序员忘记释放内存引发 的)。

在项目中遇到hibernate报错,提示内存中已存在一个与当前提交的对象主键相同的对象,发生冲突,这就是因为没有清楚内存中存在的对象引发,能够用session.clear()来清除内存中的对象(以hashmap的方式存放在内存中)。

5.       在Java中你所作的所有工做就是定义类,建立这些类的对象,以及发送消息给这些对象。

6.       若是类的某个成员变量是基本类型,即便没有进行初始化,Java也会在对象实例化的时候为这些变量赋一个默认值。默认值只是针对全局变量的,局部变量必须手动进行初始化。

7.       方法名和参数合起来惟一的标识某一个方法,Java的方法只能做为类的一部分来建立,且方法只能经过类对象来调用。

8.       在Java中向方法传递参数是,若是参数是基本类型,传递的就是参数里面的值,当参数是对象的时候,其实传递的是对象的引用,而不是对象的值。

9.       Return包括两方面的意思:首先它表明“已经作完,离开此方法”。其次,若是此方法产生了一个值,这个值要放在return以后返回。当方法的返回类 型是void时,return的做用只是用来退出方法。也就是说是用return能够在方法的任何地方返回,而不须要非要等到方法结束。

10.       当建立类的时候,就是在表述那个累的对象的外观行为。除非用new来建立这个对象的实例,不然,实际上并未得到任何对象。执行new来建立对象的时候,数据存储空间才被分配,其方法才供外界调用。

11.       Static关键字可使它修饰的方法不用经过建立类对象就能够直接使用类名来调用。Static修饰的变量只占用一分内存空间,不管建立几个对象,他们 都共用一个static变量。由于一个static字段对每一个类来讲都只有一份存储空间,而非static字段则是每一个对象都有一份存储空间。可是若是 static用于某个方法,差异没那么大,static方法的一个重要用法就是在不建立任何对象的前提下就能够调用它。

相关文章
相关标签/搜索