Java底层总结(未完善)

Java相关

1. concurrentHashMap原理是什么?怎么保证的并发安全?

2. synchronized的实现是怎样的?synchronized

synchronized有几种状态?

synchronized怎么保证不会造成死锁?

synchronized和lock的区别?

3. 自动拆箱与装箱

4. HashMap和HashTable的区别

5. List、Set、Map在存取元素的时候有什么区别?

6. int和Integer的区别,int a=1,Integer b=1; a==b是true还是false

7. String s = “abc” 和 String s = new String(“abc”)区别?

8. ArrayList和LinkedList的区别

9. String长度有没有限制?

10. 零拷贝和深拷贝

11. java设计模式,挑两个讲讲具体

12. java内存管理怎么实现的

13. 乐观锁和悲观锁?抢购场景用什么锁,为什么?

14. JVM内存区域?

15. AQS实现原理

16. volatile了解吗,有什么作用?

volatile怎么保证的可见性?

volatile变量声明的变量可以保证每次读取的数据都是最新数据

17. java的各种锁

18. Java集合,常见实现类

19. Set底层? Set怎么遍历?

20. 多线程操作Set,线程安全怎么实现

21. set和list区别,使用场景

22. arraylist动态扩容

23. arraylist的addAll方法,如果容量为1,addAll一个容量为100000的数组,怎么扩容?(addAll底层)

24. Hash因子和Hash冲突

25. 常见的哈希函数

26. HashMap存储原理、转红黑树原因(为什么不全部用红黑树、尾插头插的区别、尾插的优势)

27. HashMap扩容

28. Java的特性

29. Default修饰符和Proteted修饰符区别

30. 怎么设计一个哈希函数来处理诸如字符串这样的输入把他们转化为哈希值呢

31. JVM 双亲委派机制?如何打破双亲委派机制?

32. Java垃圾回收算法?cms为什么要两次标记呢?

33. LinkedHashMap和HashMap有什么区别?

34. 线程安全了解吗,(线程安全的容器原理),创建线程的方式?

35. 线程池参数以及作用

36. 怎么样能使线程进入阻塞状态

37. wait()和sleep()的区别

38. 类的加载的过程?

39. int占多少字节,最大为多少?

40. 来11个任务,核心线程数只有10,怎么办,再来几个任务怎么办 ?

41.

Spring相关

1. spring事务失效的几种场景

2. spring事务的传播机制

3. A依赖B,B依赖C,C依赖A,Spring怎么解决这种情况?

4. AOP原理?jdk和cglib实现的区别?

5. IOC原理

6. Spring 动态代理的实现方式

7. 谈一下对注解的理解?注解起到了什么作用?在Spring中Component注解,容器怎么知道这是应该Component?怎么定位到这个类而不是其他的类?

8. Spring怎么样解决循环依赖

9. Spring的bean初始化原理

你可能感兴趣的:(java,开发语言)