![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java面试题系列
文章平均质量分 93
QQsilhonette
这个作者很懒,什么都没留下…
展开
-
Java面试题一:Java基础
一、Java基础 集合类: 1、HashMap的put方法的具体流程? 答:判断空间是否足够->不够则扩容->判断key是否存在->存在则插入链表->链表数如果超过8->转为红黑树。 2、HashMap的扩容操作是怎么实现的? 答:当kv达到扩容的阈值,以2倍扩容,将原表中的对象重新计算位置,并拷贝到新的表。 3、HashMap是怎么解决哈希冲突的? 答:...原创 2021-01-20 16:20:43 · 163 阅读 · 0 评论 -
Java面试题二:JVM
二、JVM 其它 1、JVM内存模型。 答:1)栈:用来存储局部变量、操作栈、动态链接、方法出口等,调用方法时执行入栈,方法返回时执行出栈; 2)本地方法栈:保存native方法信息; 3)程序计数器:保存当前线程执行的字节码位置,执行native方法时为空; 4)堆:被线程共享,存放所有的对象实例; 5)方法区(非堆区):用来存放已被虚拟机加载的类信息,常量,静态变量,即时编译优化后...原创 2021-01-20 16:20:03 · 175 阅读 · 0 评论 -
Java面试题三:并发与多线程
三、并发与多线程 锁 1、Java内存模型。 答:内存模型用于保证时间片导致原子性问题、多核多线程缓存一致性问题、处理器优化有序性问题。Java内存模型规定所有变量都存储在主内存中,每条线程有自己的工作内存,其中保存了主内存中变量的副本拷贝,工作线程对变量的操作必须在工作内存中进行。synchronized提供了monitorenter和monitorexit来保证原子性;使用volatile...原创 2021-01-20 16:19:56 · 243 阅读 · 0 评论 -
Java面试题四:Spring全家桶
四、Spring 基本概念 1、IOC/DI。 答:1)对象的属性由自己创建,为正向流程,而由Spring创建,为控制反转; 2)依赖注入为实现IOC的一种方式,通过配置文件或注解包含的依赖关系创建和注入对象; 3)正向流程导致了对象和对象之间的高耦合,IOC可以解决对象耦合的问题。 2、Context&Bean。 答:1)所有由Spring创建,管理,用于依赖注入的对象,称为...原创 2021-01-20 16:20:56 · 147 阅读 · 0 评论 -
Java面试题五:缓存
六、缓存 1、Memcached。 答:特点是多线程、异步IO、KV存储、内存存储没有持久化、采用LRU(Least Recent Used)淘汰算法。 内存管理(Slab结构):内存按照1MB的大小分页,页中的内存分割为具有相同大小的内存块。一个新的记录到来时,Memcached根据记录的大小选择存储的Slab类型,如果没有该类型空闲的Slab块,会创建一个新的页。当记录大小发生变化时,存...原创 2021-01-20 16:19:16 · 316 阅读 · 0 评论 -
Java面试题六:消息队列与数据库
七、消息队列 1、消息队列的使用场景。 答:应用解耦、服务通信、异步任务、削峰填谷、消息广播。 2、Kafka架构。 答:Kafka集群由多个server组成,每个server成为一个Broker,为消息代理;Kafka中的消息是按topic进行划分的,一个topic就是一个queue;为了提高并行能力,Kafka为每个topic维护了分布式的Partition日志文件。 3、Kafka...原创 2021-01-20 16:18:46 · 655 阅读 · 1 评论