垃圾清理:
1.引用计数法:
优点:实现简单,效率高 缺点:那已解决对象循环引用
2.根搜索算法

新生代,年老代(Tenured),永久代(Perm):
1.所有新生对象放在Eden区,对应Minor GC,当“年轻代”区域存放满后,会将对象存入“年老代”区域,在年轻代经历了N(默认15)次
垃圾回收后任然存活的放入“年老代”区域中,“年老代”中的对象多了以后需要启动Major GC和Full GC(全量回收),同时清理两片区域。
2.“永久代”用于存放静态文件(类,方法等)。jdk8以后没有“永久代”,用metaspace元数据空间和堆替代。
3.永久代就是方法区

Eden(Minor GC 不用资源) Survivor1,2(Maor GC 用一点资源) Tenured(Full GC 成本高,对系统性能产生影响)
还未进行垃圾回收的新对象 存放垃圾回收15次以内仍有用的对象 存放超过进行15次垃圾回收仍有用的对象

内存泄露:
1.创建大量无用对象
大量拼接字符串,使用了String而不是StringBuilder
2.静态集合类的使用
Hashmap,Vector,List等的使用容易出现内存泄漏
3.连接对象(IO流对象,数据库连接对象,网络连接对象)未关闭以上连接对象属于物理连接,和硬盘或者网络连接,不使用一定需要关闭
4.监听器的使用
释放对象,没有删除对应的监听器

this(隐式参数 值为地址):
本质是“创建好的对象的地址”
过程:y
1.给对象分配空间,并将对象成员变量初始化为0或空
2.执行属性值的显示初始化

最常见的用法:
1.在程序产生两重意义时,用this指明当前对象;普通方法中,this总是指向调用该方法的对象;构造方法中,this总是指向正要初始化的对象
2.使用this关键必须用重载的狗崽方法,避免相同的舒适化代码,只能在构造方法中用,且必须在构造方法的第一句
3.不能用于static方法中

static:
1.对象可以调用static方法
2.static方法不能调用普通方法
3.非static方法不能调用static方法

包机制
package:
1.通常是类的第一句非注释性语句
2.包名:域名倒着写,再加上模块名
import:

继承:(单继承为只有一个父类)
1.java只有单继承,没有c++那样的多继承,会使继承引起混乱,系统难以维护
2.java中类也没有多继承,接口有多继承
3.父类也叫超类,基类;子类为派生类
4.子类继承父类,可以得到父类的全部属性和方法(除了构造方法),但有不能直接访问的情况(父类私有的属性和方法)
5.如果定义一个类,没有调用extends,父类默认为java.lang.Object
instanceof运算符:
instanceof为二元运算符,左边是对象,右边是类,当对象是类所常见的对象时,返回true,否则返回false