栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-10-18面试题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-18面试题

基础问题
linux和⽹络基础
(1)linux系统内核态和⽤户态是什么,有什么区别?
(2)BIO、NIO、AIO都是什么,有什么区别?
(3)TCP和UDP的区别?
(4)详细叙述TCP3次握⼿,TCP和HTTP的区别,其中字节⾯试官问的最细,他会具体问TCP底层的3
次握⼿的具体实现逻辑,第三次握⼿如果失败会怎样。
建议把TCP关闭时的4次挥⼿也看看,敖丙的⽂章就有,看了⾄少表⾯的东⻄难不倒你们,由于这个是
最基础的问题,如果回答不好,⾯试官的印象分就你懂得。
(5)rpc和http的区别,你知道有什么rpc框架。
(6)https相对http都实现了什么加密⽅式,是对称加密还是⾮对称加密?
(7)⽤linux命令怎么做分组求和,怎么把字符串根据分隔符变成数组(这⾥建议⼤家读读敖丙的linux
命令篇)
JVM基础
(1)简要介绍⼀下JVM虚拟机(这个问题不是把JVM分成JMM,类加载和GC来问,⼀定要想好怎么描
述JVM) (2)简述⼀次GC的过程(Minor gc和Major gc过程还记得么)
(3)JMM是什么?
(4)JVM共享内存都有什么,什么是堆外内存?
(5)GC区域,垃圾回收算法,垃圾回收器,G1、CMS、ParNew等垃圾回收器的简介和之间的区别。
(6)类加载过程(5个过程最好能研究明⽩,因为还涉及到栈帧、局部表量表、操作数栈、动态链接和
⽅法出⼝等知识,去看⼀下敖丙的⽂章就明⽩了)
(7)⼀个ArrayList的两个对象的getClass()得到的结果相同么(理解类加载和Class类类型)
(8)死锁怎么查问题(-XX:+PrintGCDetails) (9)Gc⽇志得会看,尤其问到怎么查OOM问题的时候,你应该知道使⽤jconsole,jstat,jmap,
jvisualvm等的⼯具来查看gc状态,看看是不是年轻代设置太⼩了导致major gc频繁或者内存泄露了。
JAVA基础和多线程基础
(1)synchronized在JDK6做了哪些优化,synchronized和lock的区别
(2)懒汉单例⽤duble check是线程安全的么,为什么要加volatile
(3)Volatile有什么⽤,什么是CAS
(4)什么是happens before原则
(5)什么是AQS
(6)线程sleep和wait的区别,线程join是什么意思
(7)Java都有哪⼏种锁(敖丙的⽂章)
(8)线程池分⼏种类型,其中的coreSize、maxSize、存活时间、等待队列、拒绝策略要清楚
(9)Java乐观锁的实现(CAS+⾃旋)
(10)阻塞队列的实现,⾄少⾃⼰会实现2种阻塞队列的⽅法(单锁,多锁, ReentrantLock,
Condition) (11)CountDownLatch、CyclicBarrier、Semaphore区别,使⽤场景
(12)HashMap是线程安全的么,底层怎么实现的(get,set,resize),JDK1.8之前和之后做了哪些
修改,如果要使得插⼊kv有序需要使⽤哪种HashMap(linkedHashMap,TreeMap),
ConcurrentHashMap线程安全是怎么实现的(JDK1.8前后实现不同)
(13)ArrayList和linkedList的区别,栈和队列的区别。Queue和Deque区别
(14)Netty,Jetty实现原理。
(15)Java 静态代理、动态代理
(16)Forkjoin模型
(17)Java回调
(18)协程和线程的区别
(19)JDK1.8有什么新特性,了解函数式编程么(不了解的看看guava)
数据结构算法和设计模式
(1)设计模式⼀般引申⾃项⽬或者⼯具底层实现,所以需要懂⼀些⽐较常⻅的设计模式,⼯⼚、单
例、观察者、命令、适配器、代理等等
(2)算法主要是查找和排序,所以⾄少要会⼿写主流的排序算法和查找算法
(3)LSM树是怎么实现的。和mysql的B+树有什么区别(LSM树是hbase和levelDB的底层存储的结
构,不懂不应该)
(4)⼆叉树,平衡查找⼆叉树,红⿊树等
(5)栈,数组,链表,队列,双端队列,跳跃表(redis zset)等
spring系列
(1)AOP,IOC概念
(2)Spring cloud组件介绍,具体问的⽐较多的是hytrix和eureka,hytrix主要问怎么实现限流和降级
(线程池和信号量),两种实现⽅式有什么区别,具体熔断时的配置;eureka主要介绍和zookeeper的
区别,以及注册流程
(3)Spring boot配置很多都注解化了,所以常⽤的注解要知道
(4)过滤器和Spring拦截器的区别
消息中间件AMQP
看敖丙的⽂章就够了
redis缓存相关
看敖丙的⽂章就够了
(这两段没笑死我)
其他类型
(1)单点登录系统怎么做(SSO系统)
(2)为什么选择cassandra⽽不是hbase,两者有什么区别

2 ,基础知识 1 )多线程( ThreadLocal (问了⽗⼦线程怎么共享数据 interitableThreadLocals )、 lock 和 sync 区别 (问 HashMap1.7 、 1.8 区别时带出)、 AQS 原理(执⾏过程源码,⼊队出队的细节,源码细节)、 CountDownLatch 和 CyclicBarrier 的区别是什么源码级别、 volatile 从指令重排序,内存屏障,聊到总线 ⻛暴)所占⽐重较⼤ 2 )数据库( mysql 索引(聚集索引、⾮聚集索引、索引结构(顺带会问各种树的特性)、执⾏计划、 count1* 区别、举例优化 sql 、 MVCC 和事务隔离级别的关系、间隙锁、⾏锁(和多线程混合问的,乐观 锁悲观锁等)、唯⼀索引和普通索引的区别聊到了 changeBuffer ,聊了⻚分裂合⻚合并)⽐重较⼤ 3 ) jvm 调优(可达性分析算法中根节点有哪些、 cms 和 G1 区别、怎样 GC 调优、怎样排查 CPU 彪⾼、内 存彪⾼、逃逸分析) 4 ) redis 数据结构、跳跃表、 redis qps 能上多少,怎么知道的、 sentinel 和 cluster 区别和各⾃适⽤场景、 redis cluster 集群同步过程、 redis 单线程为什么快、多⼤叫⼤ key 、热 key 产⽣原因和后果以及怎么解 决、本地缓存需要⾼时效性怎么办 ..... 5 ) spring 的作⽤、 spring 循环依赖怎么解决(说出三级缓存源码细节)、 spring aop 原理(动态代 理)、 spring bean ⽣命周期(源码细节,以及各个位置的设计思路,有什么可扩展的) 6 ) dubbo 服务暴露和引⽤过程,负载均衡策略,容错机制在哪⾥实现的源码 7 )项⽬中碰到的问题。 8 )为什么换⼯作,如果通过会直接说有笔试题,和你确认笔试时间。 2 ,说到缓存穿透,让我设计⼀个防⽌缓存穿透的解决⽅案,简单的就是存 null 值,但肯定会深究,可以 结合布隆过滤器,设计分布式系统,⾥⾯⼜会问到流量分发到具体过滤器服务的⽅式,⽐如⼀致性 hash 算法,怎么调⽤?⽐如 dubbo 直连、等等细节会边说边问。 3 ,有没有做限流,设计⼀个侵⼊性最⼩的限流服务。 4 ,项⽬中碰到的问题,最好说框架本身问题,能提现个⼈能⼒,也避免问题太低级被⾯试官看 low ,刚 好之前有发现⼀个 dubbo 的 bug ,所以这问题应该回答的还可以。 5 ,为什么换⼯作,每轮都会问,这个得想好。 1 ,介绍最熟悉的项⽬,业务上有没有什么优化点;和同⾏业其他公司的差距和优势(估计是 P7 的标准 问题吧。。。我是没咋说好) 2 , dubbo 服务调⽤过程(说着说着说到服务暴露和引⽤上⾯,他直接说这个之前问过了。。不⽤重复 说,所以⾯试应该有记录⾯试问题) 3 , NIO 、 BIO 区别, NIO 解决了什么问题, Netty 线程模型(源码拷问)。 4 , MQ 相关( RocketMQ 、 kafaka 奇怪的是你写啥⾯试官问啥,⾯试官啥都会,技术⼴度深度令⼈发 指) 1 ,项⽬介绍 2 ,听到说做了限流,限流标准(并发数? qps ?并发数和 qps 关系?说出了 5 种限流⽅案和对应算法原 理) 3 , dubbo 调⽤端怎么在 jvm 中⽣成对应服务? dubbo 服务端和调⽤端超时时间设置和区别、 dubbo ⻓连 接。 3 , mysql ⾏锁最⼤并发数?(秒杀项⽬指出) 4 ,设计秒杀系统,我说的异步的⽅式,会问怎么优化?改为了同步的⽅式,异步和同步区别? 然后我 也问了阿⾥那边 5 ,碰到哪些技术难点?怎么解决?有没有参考其他⼤⼚?其他⼤⼚⽅案什么样的?有没有关注阿⾥这 边最新的技术? 6 ,刚刚的秒杀系统,会涉及到多个库表的更新,分布式事务怎么解决,我说的消息最终⼀致性,异 步?有没有更好的⽅案?同步 TCC ⽅式, TCC ⽅式原理?(三个阶段的具体实现)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号