《Java面试》系列
文章平均质量分 70
java面试
程序员鲲鹏
你的努力,终究成就你自己
展开
-
2022年java(集合HashMap)面试题
HashMap的底层结构变化:HashMap在jdk1.7版本的时候,底层是一个数组+链表的数据结构,在jdk1.8的时候,底层是一个数组+链表+红黑树的数据结构。关于链表和红黑树之间的转换,当链表上的数据个数大于8,且哈希桶容量大于等于64的时候,node数组所在的索引位置上的链表将会转换为红黑树存储,当红黑树的节点小于等于6的时候,红黑树将会转换为链表的形式存储,这是他底层结构的一个变化。满足大于8的时候,调用treeifyBin()方法转换为红黑树。HashMap的扩容机制:另一个是关于hash原创 2022-04-15 17:11:50 · 418 阅读 · 0 评论 -
2022年java(集合collection)面试题
ArrayList,LinkedList,Vector的异同:同:都实现了List接口,存储数据的特点相同:都是有序的,可重复的。异:ArrayList底层的数据结构为数组,当达到一定数量的时候,会进行resize,扩容为原来的1.5倍,线程不安全的,查询效率高,删除,插入效率低。LinkedList底层是一个双向链表的数据结构,插入和删除比ArrayList效率高,但查询效率低,线程不安全的。Vector底层的数据结构为数组,当达到一定数量的时候,会进行resize,扩容为原来的2倍是线程安全的原创 2022-04-15 17:04:12 · 912 阅读 · 0 评论 -
2022年java(多线程)面试题
创建线程有哪几种方式?1.继承Thread类2.实现Runnable接口3.实现Callable接口4.使用Exctors工具类创建线程池说一下runnable和callable有什么区别?1.Runnable 接口 run 方法无返回值;Callable 接口 call 方法有返回值,是个泛型,和Future、FutureTask配合可以用来获取异步执行的结果。2.Runnable 接口 run 方法只能抛出运行时异常,且无法捕获处理;Callable 接口 call 方法允许抛出异常,可以原创 2022-04-15 16:49:00 · 509 阅读 · 0 评论 -
2022年java(基础)面试题
面向对象的三大特性:封装,继承,多态(基础)1.封装:隐藏对象的属性和行为,不对外暴露内部的细节实现,提高信息的安全性,提供外部访问内部属性的方法,例如get()和set()方法。2.继承:子类继承父类非私有的属性和方法,子类可以进行扩展创建自己的属性和方法。3.多态:同一个行为的不同表现形式,同一个接口通过不同的实例实现不同的结果。实现多态的三个必要条件:继承,重写,向上转型(父类的引用指向子类的对象)==与equals的区别(基础)1.==:针对基本类型,比较的是数值是否相等,针对引用类型,比原创 2022-04-07 18:04:44 · 509 阅读 · 0 评论 -
2022年java(网络)面试题
3次握手和4次挥手的过程是什么样的1.三次握手:第一次握手:客户端发送同步请求报文,SYN=1,seq=x,客户端进入同步已发送(syn-sent)状态。第二次握手:服务器接收同步请求报文,响应确认报文,设置报文SYN=1,ACK=1,ack=x+1,seq=y,服务器由响应等待(listen)进入同步已接收(syns-rcvd)状态,客户端进入连接(established)状态。第三次握手:客户端收到服务器的确认报文后,响应服务器的确认报文,ACK=1,ack=y+1,seq=x+1,此时服原创 2022-04-08 18:16:47 · 545 阅读 · 0 评论