0
点赞
收藏
分享

微信扫一扫

Java开发工程师面试总结

沈芏 2022-03-30 阅读 44

Java开发工程师面试总结

1. Java基础

1.1 接口与抽象类的区别

  1. 接口里必须是抽象方法,抽象类可以没有抽象方法;
  2. 接口可以继承多个父接口,抽象类只能被单继承;
  3. 接口里的变量必须被static,final修饰并初始化,抽象类里可以普通的成员变量;

1.2 重写与重载的区别

  1. 重载是表示一个类中可以有多个方法名相同,参数不同(参数个数,参数类型,参数顺序不同);
  2. 重写是子类对父类方法的一种重写, 访问权限不能是private的;

1.3 集合

Map和collection是所有集合的父接口;

  • Collection-set/List
  1. List-Vector,ArrayList,LinkedList 有序的,可以重复
  2. set-HashSet,TreeSet,LinkedHashSet 无序的,不可以重复
  • Map
  1. HashMap线程不同步,线程不安全,允许null作为key;
  2. HashTable使用了syschonized,线程安全,每次需要锁住整个结构,不允许null作为key;
  3. ConcurrentHashMap锁的粒度很细,分为16个桶,只锁当前用到的桶;

HashMap的底层原理:Java8之前是数组+链表,Java8之后是数组+链表+红黑树
ConcurrentHashMap的实现原理:hashEntry用来封装表的键值对和segment可重入锁,每个segment保护一个HashEntry数组的元素;

1.4 线程

2. Spring框架

3. Spring Cloud微服务

举报

相关推荐

Java工程师面试题

0 条评论