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