一.快手实习面经
(作者:offer能来否https://www.nowcoder.com/discuss/423235?type=2&channel=-1&source_id=-1)
1.==和equals()的区别
2.static修饰的成员变量运行时机
3.内部类和静态内部类的区别
4.序列化
5.violate怎么保证有序性和可见性的
有序性:禁止指令重排
可见性:一个线程在自己的工作区域修改完变量后,立即写入内存,让其他线程能及时获得最新的更改
6.线程池,常用的几个线程池还没总结
7.线程的5大状态以及哪些状态可以被中断
新建 就绪 运行 阻塞 中断
8.几种引用
强引用:宁愿抛出outofMemory错误,也不愿意回收塔
软引用:内存不足就会回收
弱引用:垃圾回收器在其所管理的区域中扫描到他就会回收
虚引用:随时回收(主要用来跟踪对象被垃圾回收的活动)
9.创建对象的几种方式
1.new
2.使用反射
反射的三方式:对象名.getclass() Class.forName("类名+包名") 类名.class
返回的额都是Class a=
类名 对象名=(类名)a.newInstance()
3.序列化
hello h=new hello();
ObjectOutputStream f=new ObjectOutputStream(new FileOutputStream(file));
f.writeObject(h);//写到指定的目录下
ObjectInputStream m=new ObjectInputStream(new FileInputStream(file));
hello l=(hello)m.readObject();
4.克隆
继承Clonable接口
Hello h1 = new Hello();
Hello h=(Hello)h1.clone();
7.AOP全称
aspect Oriented programming Oriented(面向)