发表于: 2019-12-13 22:54:29
3 1121
今天做了什么
复盘做的差不多了
看看面试题
收获:
String和StringBuilder、StringBuffer的区别?
String,只读字符串,引用的内容不能改变
而后两者可以
StringBuilder单线程 不同步 效率高
重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
都是实现多态的方式
重载指 同名方法参数列表不同,是编译时多态
重写发生在子类和父类间, 里氏:相同返回类型;比父类更好访问;比父类更稳定
JVM加载class文件的原理机制?
加载:.class读入内存.产生class对象
连接:验证,准备(静态变量分配内存,设置初始值),解析(符号引用换成直接引用)
初始化:1.优先初始化父类 2.类中若有初始化语句则执行
抽象类(abstract class)和接口(interface)有什么异同?
相同点:都不能实例化,类若继承抽象类或实现接口,需要实现其全部抽象方法
接口比抽象类更抽象.抽象类中可存在构造器和具体方法, 接口中全是抽象方法
抽象类成员权限任意,接口全public
5.静态嵌套类Static Nested Class和内部类Inner Class
区别在于其实例化是否依赖于外部类,前者不依赖于外部类
6.Java内存泄露
可能发生场景 1Hibernate一级缓存对象属于持久态,GC不回收
2pop方法弹出栈中对象后,因为栈内部维护着过期引用,不会被GC回收
核心是无意识的对象保持
7.abstract,static,native,synchronized关键字:
abstrace方法需要被子类重写
static方法无法被重写
native方法由本地代码(如C代码)实现
对象的synchronized方法无法同时被多个线程访问
8.对象克隆:
1.实现Cloneable接口并重写clone(方法)
2.实现Serializable接口,通过对象的序列化和反序列化实现克隆
2优于1. 因为可通过泛型限定检查出要克隆的对象是否支持序列化,可让编译器检查异常而不是运行时再抛出异常
9.Error与Exception:
Error:系统级错误 严重 程序不必处理
Exception:需要捕捉 需要程序处理 是设计或实现问题
10.实现多线程方式:
继承Thread类
实现Runnable接口
实现Callable接口
11.线程基本状态:
runnable:就绪
running:运行
blocked:阻塞. 原因是:调用了wait() 或sleep() 或join()方法
12.过滤器的作用和用法
可截取客户端和服务端之间的请求与响应信息, 并进行过滤
问题
明天的计划
后台-角色管理
评论