闲来无事整理的一些面试点,如果说能都掌握了,面个美美的公司应该是可以的,答案自行寻找吧,如果有完美答案,可以留在评论区,我到时候整理下,分享给正在找工作的程序猿们!
1.CMS收集器有哪些特点?
2.什么是分而治之算法?
3.大促场景下你的系统可能会有哪些问题?
4.Mysql集群的可行方案有哪些?
5.常用的Mysql复制架构有哪些?
6.为什么HashMap中数组的容量为2的次幂?
7.当某个服务接口并发量抗不住时,你第一反应是什么方案,为什么?
1,每个设计模式用来解决什么问题
单例模式
1-> 静态初始化(饿汉式)
2-> 双重检查(加锁)
3->单例注册表
适配器模式跟代理模式的区别
工厂模式
Spring如何创建Bean
代理模式
Motan服务的动态代理
责任链模式
Netty消息初始
2,在什么样的场景下使用什么样的设计模式
3,tcp三次握手连接以及四次挥手连接
类的实现
HashMap
ConcurrentHashMap
ArrayLit&LinkedList
HashSer TreeMap
JUC 工具包
ConcurrentXXX
AtomicXXX
Executor
Caller&Future
Queue
Locks
动态代理与反射的使用场景
数据类型空间占用
对象引用的垃圾回收机制(强,弱,软,虚)
SPI机制
注解处理机制
链表解决hash冲突
通过按位于操作比取余更快头插法
cocurrenthashMap
并发锁与分段锁思想
1.8的CAS
网络协议四层模型
linux命令
==与equal的用法
面试岗位相关问题
在了解的前提下,尽量回答内容深度
那种框架使用了什么设计模式,自己在项目中使用了那些设计模式
大量的反射会影响性能。
进程与线程的区别与联系
进程切换过程
linux命令
dns解析,
深入浅出JVM
程序计数器 保存线层执行字节码位置
栈线程 独占
JVM与内存和可见性
JMM 原子性 可见性 有序性
synchronized
volatile
happens-before 原则
类加载机制
加载(文件到内存) - 验证(文件格式,元数据,字节码,符号引用) -准备(类变量内存)- 解析(引用替换。字段解析,接口解析,方法解析)- 初始化 - 使用 -
卸载(GC)
BooStrapClasLoader <JAVA_HOME>/lib
ExtClassloader <JAVA_HOME>/lib.ext
AppClassloader java-classPath
CustomClassLoader
年轻代 Eden Survivor1 Survivor2
老年代 Tenured
永久代 PermGen/MetaSpace
垃圾回收算法
引用计数法 (循环引用的问题)
CMS算法 1.7 并发收集 停顿小
深入理解jVM内存模型
了解类加载机制
了解内存可用性了解常用的回收算法
编译器优化
问题排查经验与思路
JVm调优经验调优思路
了解最新的技术趋势
什么情况下会触发fullGC
volatile可以解决什么问题,如何做到
多线程
死锁条件
互斥
请求并持有
非剥夺
循环等待
CAS理论 乐观锁实现 认为并发不是时常发生
并发问题并不是理解的很透彻
newFixedThreadPool 固定线程数,无界队列
适用于任务数量不均匀的场景,
对内存压力不敏感,但系统负载比较敏感
newCachedThreadPool 无限线程数,适用于要求低延迟饿短期任务场景
newSingleThreadexecutor 单个线程的固定线程池,适用于保证异步执行顺序的场景
newScheduledThreadPool 适用于定期执行任务场景,支持固定频率和固定延时
newWorkStealingPool 使用ForkJoinPool,多任务队列的固定并行度,
适用任务执行时长不均匀的场景
CountDownLatch :多线程任务汇总
CyclicBarrier: 多线程并发执行
Semaphore: 控制并发锁(共享锁)
ConcurrentHashMap
CopyOnWrireArrayList cow适合读多写少,小数量,高并发场景
理解线程的同步与互斥的原理
掌握线程安全相关机制
了解JUC工具使用场景
结合项目场景和实际案例介绍原理多线程问题排查思路
分享工具
jdk1.8对JUC增强
了解Reactive背景
JMC java
上调试神器 --btrace
方法调用信息
对象创建信息
内存统计
同步块执行
异常信息
jps 查看java进程信息
jmap 查看JVm中对象的统计信息
jstack 查看死锁
git 常用命令
git常用工作流
git-flow 工作流
github flow工作流
gitlab工作流
常用linux 分析工具
vmstat 进程 虚拟内存 页面交换 IO读写 CPU活动
iostat& iotop 系统 io状态信息
ifstat & iftop 实时网络流量监控
netstat 查看网络信息,各种网络协议
dstat 综合工具
linux
strace 测试,调试程序的系统调用
GDB 程序调控,coreDump分析
lsof 打开的文件信息
tcpdump 网络抓包工具
traceroute 网络路由工具
常用框架
Spring Structs ORM Netty RPC(dubbo,Motan,Grpc) 其他框架
(Core Context Beans Web 组件)
AOP 静态代理 动态代理
事务 隔离类型 传播类型
@ImportResource
@ComponetScan
@Aspect @Pointcut
配置方式 XML 注解 API
Spring 中的Bean生命周期
Netty
请求的粘包 与半包
零内存复制
SSH SSM
Spring conext 初始化流程
Bean 生命周期及作用域
Placeholder
Spring 解决循环依赖
redis MEmcache
缓存不一致
缓存更新 数据变更 增加重试,补偿任务 ,最终一致
缓存穿透 恶意攻击 空对象缓存 blommfilter 过滤器
缓存击穿 热点key失效 差异失效时间
缓存雪崩 缓存挂掉 主从 集群
缓存淘汰策略
FIFO
LRU
LFU
分布式CAP与BASE理论
Consistency
Avaliability
Paritiion tolerance
常用的分布式事务解决方案