zoukankan      html  css  js  c++  java
  • java基础总结

    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

  • 相关阅读:
    Ddr2,ddr3,ddr4内存条的读写速率
    Ddr2,ddr3,ddr4内存条的读写速率
    【VS开发】获取CPU tick tick 周期
    【VS开发】获取CPU tick tick 周期
    【VS开发】malloc申请内存错误分析
    【VS开发】malloc申请内存错误分析
    【VS开发】Return与Exit的区别
    【VS开发】Return与Exit的区别
    【VS开发】C/C++预编译命令
    【VS开发】C/C++预编译命令
  • 原文地址:https://www.cnblogs.com/mingyao123/p/13687592.html
Copyright © 2011-2022 走看看