之前换工作把自己学的内容总结了一下,虽然Java部分我写过十几篇读书笔记,详细的记录了Java8的内容,但是作为面试这样一个短暂的考试,详细的内容并没有很大的帮助,更重要的是精简与重点,所以最近打算把总结的内容全部写成博客,慢慢来吧!
这里参考的是网上流传的很火的几个PDF,以及书籍,名称如下(如果有需要资源的可以私信我):
Android核心知识点笔记V2020.03.30.pdf
技术面试必备基础知识 CyC2018.pdf
Java核心技术 卷1
这里如果说我是把资料抄了一边,也差不多吧,不过也有精简,也有加入自己的见解。内容较多,接下来慢慢写了。
访问权限(4个)
类、类成员
抽象类和接口区别?何时使用?
根据区别,可以得出使用的地方。
super 、this、构造函数
重载和重写(实现多态)
重写–>重新编写同一个方法的功能
重载–>参数类型、个数、顺序
重写三个限制条件?
重写的访问顺序?(4个)–> 注意参数的父类
hashCode()、equals()、clone()、toString()、getClass()、finalize()
锁相关的:
notify()、notifyAll()、wait()、wait(timeout)、wait(timeout,nanos)
哪几个是 native 方法?
hashcode、clone、getClass、notify、notifyAll、wait(一个)
少了 equals、toString、finalize、其他 wait
等价和相等以及hash值相等的区别?
如何判断对象等价?
是否相等–>是否为空–>是否同类–>转换之后是否数据域相等
clone() 和 Cloneable接口?接口为空?深拷贝、浅拷贝?
finalize()方法?只标记一次,执行不可知
final --> 类、方法、私有数据、临时变量、修饰基本类型、修饰引用类型
static --> 静态变量、静态方法、静态语句块、静态内部类、静态导包
带static的初始化顺序:
父类(静态变量、静态语句块)–> 子类(静态变量、静态语句块)–>
父类(实例变量、普通语句块)–> 父类(构造函数)
子类(实例变量、普通语句块)–> 子类(构造函数)
先静态再实例,先父类再子类,先实例再构造,先前面再后面
volatile、synchronized 锁部分再说
transient 数组部分再说
class 对象、
类加载(反射运行时加载)
获得 class 对象的方法?
反射的三个类:Filed、Method、Constructor
反射优缺点:扩展性、便于调试、性能开销、安全问题
Throwable --> Error、Exception
Error 两个? OutOfMemeoryError、StackOverflowError
非受查异常(you fault)、受查异常(IO、socket)
说五个常见异常?
泛型类、泛型方法
类型变量的限定:extend、super
类型擦除:强制类型转换为限定的类型(没有则是 Object)
桥方法?
泛型类型的继承规则(通配符 、子类限定、超类限定)?