类:抽象的,概念的,代表一类事物。
类定义语法:class 类名{属性/成员变量/字段,成员方法,构造方法,}
对象:具体的,实际的,代表一个具体事物,也叫实例。
JVM内存分析:栈:一般存放基本数据类型(局部变量)。堆:存放对象。方法区:常量池,类加载信息。
方法重载overload:同一个类中,多个同名方法的存在,但要求形参列表不一致!
可变参数:同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。就可以通过可变参数实现。语法:访问修饰符返回类型方法名(数据类型...形参名){ }
对象创建的流程分析
this:当前对象。this关键字可以用来访问本类的属性、方法、构造器;this用于区分当前类的属性和局部变量;访问成员方法的语法:this.方法名(参数列表);访问构造器语法:this(参数列表)。
访问修饰符
面向对象的三大特征:封装、继承、多态
封装:
super:代表父类的引用。
方法重写/覆盖override:
Java的动态绑定机制
Object类
==
和
equals()
的对比
==:可以判断基本类型,也可以判断引用类型,基本类型判断的是值是否相等,引用类型判断的是地址是否相等。
equals():Object类中方法,实现原理还是==,但其他类可以重写该方法从而修改判断逻辑。
hashCode()
toString()
finalize():
当对象被回收时,系统自动调用该对象的finalize方法。子类可以重写该方法,做一些释放资源的操作。什么时候被回收:当某个对象没有任何引用时,则
jvm就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁该对象,在销毁该对象前,会先调用
finalize方法。垃圾回收机制的调用,是由系统来决定
(
即有自己的
GC
算法
),
也可以通过
System.gc()
主动触发垃圾回收机制。
类变量/静态变量:
main方法:
代码块:
单例模式:
饿汉式和懒汉式的区别:
模板设计模式:
内部类:局部内部类、匿名内部类、成员内部类、静态内部类。
类的五大成员:属性、方法、构造器、代码块、内部类。