面向对象三大特征:
封装:
继承:
多态:
数据类型与运算符
数据类型划分
基本类型
-数值型
-整形byte、short、int、long 0
-浮点型float、double 0.0
-字符型 char /u0000
-布尔型 boolean false
引用类型
数组、类、接口
方法重载与方法重写
-方法重载:在一个类中,定义了若干个方法名称相同,参数列表不同,与返回值无关的一组方法
-方法重写:发生在有继承关系的类之间,定义了若干个除了权限不一样其他都一致的一组方法,
子类重写方法不能拥有比父类更为严格的访问控制权限。private不能用于方法重写
-都属于方法多态
数组:定长,保存一组相同数据类型的集合
-初始化方式
-静态初始化:开辟空间,不赋值
int[] data = new int[10];
-动态初始化:开辟空间的同时赋值
int[] data = new int[]{1,3,5,7,9};
-引用传递:多个栈内存指向同一块堆内存空间
int[] temp = data;
-Java对数组的支持:
-数组排序:java.util.Arrays.sort()
-数组拷贝:
-部分拷贝:System.arraycopy()
-全拷贝:java.util.Arrays.copyOf()
类与对象
-面向对象与面向过程的区别
-三大特征
-private实现的封装处理
-构造方法
-无返回值
-为类中属性初始化
-重载(参数的个数不同)
this(参数)
-this
-修饰属性 this.age
-修饰方法
-构造方法
-普通方法 this.方法名称(参数)
-表示当前对象this
-static:与对象无关
-修饰属性 描述共享属性,所有对象共享此属性,牵一发而动全身,可以通过类名称直接调用
-修饰方法 描述工具方法,直接通过类名称调用,Arrays.sort()
-代码块
-非主类中的静态块:在类加载时调用,只调用一次
-主类中的静态块:优先于主方法执行
-内部类
-静态内部类
普通内部类能访问外部类的静态域,不能拥有静态域
静态内部类能拥有普通域,不能访问外部类的普通域
-代码块
-普通代码块
-构造块:优先于构造方法执行,与对象强相关
-静态块
-同步代码块
-内部类
-普通内部类(成员内部类)
-静态内部类
-方法内部类
-匿名内部类
-继承
-使用原则
-单继承局限,如何实现多继承?(多层继承、内部类、使用接口)
-初始化顺序(先调用父类构造初始化父类对象,而后调用子类构造初始化子类对象)
-super:表示父类的属性或方法
-修饰属性
-修饰方法
-构造方法
-普通方法
-final:终结器
-修饰属性:属性值不能更改,并且必须在声明时赋值
全局常量:final static
-修饰方法:无法被覆写 模板方法
-修饰类:无法被继承(extends) String、俩SB、包装类
-多态
-方法多态
-对象多态
-向上转型 天然发生,出现概率最高,参数统一化
Person per = new Student();
-向下转型 必须强转,先发生向上转型,父类需要调用子类方法时才需要向下转型
Student stu = (Student) per;
Object:所有类父类
Object obj = new Person();
Person per = (Person) obj;
per.test();
抽象类与接口:强制要求子类覆写方法
-抽象类:普通类的超集,比普通类多了一些抽象方法而已(0…N),abstract修饰
-使用原则
-不能直接产生对象
-依然遵循实例化流程,先调用抽象类的构造再调用子类构造
-模板模式:ocp原则:对扩展开放,修改关闭,解耦,找到第三方
举例+特点(组成:final核心算法+抽象方法)
SE三大设计模式:工厂、代理、单例
-接口
-组成:全局常量+抽象方法(JDK8之前)
-与抽象类的区别,接口优先原则
三大类
-final String
-直接赋值、通过构造方法
-内容不可变
-常用操作方法
-Object:所有类的父类
-equlas():比较两个对象的内容
面试:请比较==与equals的区别?
-toString:获取对象信息
-final 包装类 int-Integer
-装箱与拆箱,自动拆装箱
Integer i1 = 128;
-与String类的互相转换
String.valueOf
Integer.parseInt(str)
单例模式:
-懒汉式:用时再new
-饿汉式:上来就new
构造私有化
类内部提供静态对象
类内部提供静态方法返回唯一对象
异常:
请解释Error与Exception的区别?
-受查与非受查
-请举出常见的三个RuntimeException:NPE,ClassCastException、ArrayIndexOfBoundsException
-异常处理格式
try…catch…
try…finally…
try…catch…finally…
finally保证重点代码一定执行的一种机制
面试题:请解释final、finally、finalize的区别
-thorws、thorw