明耀

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、List和Set的区别

1)List中允许重复数据,Set中不允许重复数据

2)List中允许存储多个null值,Set只允许存储一个null值

3)List是有序的容器,保证了每一个容器的插入顺序,Set是无序的容器。

4)ArrayList底层实现是数组,获取指定位置的元素速度快,LinkedList底层实现是链表,插入和删除操作时速度快

5)HashSet中的元素是无序的,TreeSet中的元素是有序的,使用二叉树实现的

2、HashSet 是如何保证不重复的

当hashCode值相同,且Equal方法为true,则认为两个元素相同,则不存,hashCode不同,则存,hashCode相同,equal为false,则存

3、HashMap是线程安全的吗?

不是线程安全的,jdk1.7 并发情况下存在死循环,jdk1.8并发情况存在数据覆盖的情况

4、HashMap的扩容过程

非初始化扩容,容量变为原来的二倍,重新计算hash值,jdk1.7采用头插法将插入。

jdk1.8采用尾插法,当链表长度超过八时,将链表转化成红黑树

5、final finally finalize

final 用来修饰类,方法和变量,修饰类表示该类不能被继承,修饰方法表示该方法不能被重写,修饰变量表示该变量不能被重新赋值

finally用于try-catch代码块,表示无论是否发生异常,finally里的代码一定会被执行

finalize 是Object类的一个方法,该方法一般由垃圾回收器调用,当我们调用system.gc()时,垃圾回收器调用finalize()方法进行垃圾回收

6、强引用,软引用,弱引用,虚引用

https://blog.csdn.net/qq_39192827/article/details/85611873

7、Java反射

https://blog.csdn.net/weixin_42724467/article/details/84311385

8、Array.sort()和Collection.sort()的实现原理

 https://blog.csdn.net/zhupanlinch/article/details/104832542?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

9、Collection.sort()内部调用的Array.sort()方法

10、LinkedHashMap的原理及应用

https://segmentfault.com/a/1190000012964859

11、cloneable接口实现原理

cloneable接口使一个类的实例能够将自身拷贝到另一个新的实例中,需要重写clone()实现拷贝功能

深拷贝:不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。

浅拷贝:仅仅拷贝对象本身

12、异常分类以及处理机制

https://blog.csdn.net/qq_42022528/article/details/80537120 

13、wait和sleep的区别

sleep方法属于Thread类,wait方法数据Object类。

调用sleep方法,会使线程暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持,当指定时间到了又会自动恢复运行状态,线程不会释放对象锁

调用wait方法,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify方法后本线程才进入对象锁定池准备。

sleep方法可以在任何地方使用,而wait只能在同步方法或者同步方法块中使用

14 synchronized 的实现原理以及锁优化?

https://www.cnblogs.com/xdyixia/p/9364247.html

https://www.jianshu.com/p/36eedeb3f912

 

15 Spring IOC 的理解,其初始化过程?

https://www.cnblogs.com/chenjunjie12321/p/6124649.html

------------恢复内容开始------------

1、List和Set的区别

1)List中允许重复数据,Set中不允许重复数据

2)List中允许存储多个null值,Set只允许存储一个null值

3)List是有序的容器,保证了每一个容器的插入顺序,Set是无序的容器。

4)ArrayList底层实现是数组,获取指定位置的元素速度快,LinkedList底层实现是链表,插入和删除操作时速度快

5)HashSet中的元素是无序的,TreeSet中的元素是有序的,使用二叉树实现的

2、HashSet 是如何保证不重复的

当hashCode值相同,且Equal方法为true,则认为两个元素相同,则不存,hashCode不同,则存,hashCode相同,equal为false,则存

3、HashMap是线程安全的吗?

不是线程安全的,jdk1.7 并发情况下存在死循环,jdk1.8并发情况存在数据覆盖的情况

4、HashMap的扩容过程

非初始化扩容,容量变为原来的二倍,重新计算hash值,jdk1.7采用头插法将插入。

jdk1.8采用尾插法,当链表长度超过八时,将链表转化成红黑树

5、final finally finalize

final 用来修饰类,方法和变量,修饰类表示该类不能被继承,修饰方法表示该方法不能被重写,修饰变量表示该变量不能被重新赋值

finally用于try-catch代码块,表示无论是否发生异常,finally里的代码一定会被执行

finalize 是Object类的一个方法,该方法一般由垃圾回收器调用,当我们调用system.gc()时,垃圾回收器调用finalize()方法进行垃圾回收

6、强引用,软引用,弱引用,虚引用

https://blog.csdn.net/qq_39192827/article/details/85611873

7、Java反射

https://blog.csdn.net/weixin_42724467/article/details/84311385

8、Array.sort()和Collection.sort()的实现原理

 https://blog.csdn.net/zhupanlinch/article/details/104832542?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

9、Collection.sort()内部调用的Array.sort()方法

10、LinkedHashMap的原理及应用

https://segmentfault.com/a/1190000012964859

11、cloneable接口实现原理

cloneable接口使一个类的实例能够将自身拷贝到另一个新的实例中,需要重写clone()实现拷贝功能

深拷贝:不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。

浅拷贝:仅仅拷贝对象本身

12、异常分类以及处理机制

https://blog.csdn.net/qq_42022528/article/details/80537120 

13、wait和sleep的区别

sleep方法属于Thread类,wait方法数据Object类。

调用sleep方法,会使线程暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持,当指定时间到了又会自动恢复运行状态,线程不会释放对象锁

调用wait方法,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify方法后本线程才进入对象锁定池准备。

sleep方法可以在任何地方使用,而wait只能在同步方法或者同步方法块中使用

14 synchronized 的实现原理以及锁优化?

https://www.cnblogs.com/xdyixia/p/9364247.html

https://www.jianshu.com/p/36eedeb3f912

 

15 Spring IOC 的理解,其初始化过程?

https://www.cnblogs.com/chenjunjie12321/p/6124649.html

16 BeanFactory 和 FactoryBean?

https://www.cnblogs.com/cg961107/p/11261767.html

17 BeanFactory 和 ApplicationContext?

https://blog.csdn.net/pythias_/article/details/82752881

18 Spring Bean 的生命周期,如何被管理的?

https://www.cnblogs.com/Yanss/p/11725316.html

19 Spring Bean 的加载过程是怎样的?

https://www.jianshu.com/p/9ea61d204559

20如果要你实现Spring AOP,请问怎么实现?

https://blog.csdn.net/eson_15/article/details/91701582

21 代理模式和装饰器模式的区别

https://www.cnblogs.com/yanggb/p/10952843.html

22 Spring 是如何管理事务的,事务管理机制?

https://blog.csdn.net/jie_liang/article/details/77600742

23 Spring 的不同事务传播行为有哪些,干什么用的?

https://zhuanlan.zhihu.com/p/88921438

24 MQ中间件之如何保证消息的可靠性传输

https://blog.csdn.net/liuerchong/article/details/107778529

posted on 2020-09-17 20:54  明耀  阅读(85)  评论(0编辑  收藏  举报