一.欢聚时代(YY)秋招一面 Java后端9月20日
1.Java8的新特性?
答:lambda表达式和函数式接口 接口的默认方法和静态方法 方法引用 重复注解 更好的类型判断 Optional Streams
1.JAVA8十大新特性详解
Arrays.asList() :返回的list不可更改,不能使用add remove方法,如果要使用,还是返回java.util.ArrayList
2.抽象类和接口的区别?抽象类可以实例化吗?接口可以实例化吗?
答:抽象类有构造函数 接口有
接口用implements来实现接口 抽象类使用extend类继承
抽象类不仅可以提供抽象方法,也可以提供实现方法 接口只能有抽象方法 不过java8及之后可以用default来修饰实现方法
抽象类不可以实例化,接口不能实例化
3.线程通信的方式有哪些?
答:1:线程上下文
2:共享内存
3:IPC通信
4:套接字(Socket),不同的机器之间进行通信
4.K-V结构的集合用什么?HashMap线程不安全问题怎么解决?
答:hashmap;使用concurrentHashmap或者Collections 类的synchronizedMap
1.HashMap为什么线程不安全?(附源码)
5.知道LRU吗?如果要对HashMap实现LRU你觉得应该用什么集合实现?
我说要排序,面试官说不用排序,在头部维护最近最久未使用的时间就行,用链表。
答:
Java集合详解5:深入理解LinkedHashMap和LRU缓存
6.volatile有什么特性?什么叫可见性?
7.怎么让ArrayList线程安全?
答:arraylist然后自己重写它的方法,每个方法都要加上synchronized
使用Collections工具类进行操作:List objects = Collections.synchronizedList(new ArrayList<>());
使用JUC包,new CopyOnWriteArrayList<>();方法也是线程安全的。
1.如果需要保证线程安全,ArrayList应该怎么做,用几种方式?
8.说一下JVM垃圾回收的策略?
9.JVM的性能监控工具知道吗?要看GC的情况要用什么工具?
9.23日
算法
9.24日
算法
9月25日
9月27日
1.2020年Java最新面试题,2020年常见面试题及答案汇总 14:35分-15:00