面试了N家公司,积累的一部分面试点,用的取走留下印记就好

闲来无事整理的一些面试点,如果说能都掌握了,面个美美的公司应该是可以的,答案自行寻找吧,如果有完美答案,可以留在评论区,我到时候整理下,分享给正在找工作的程序猿们!

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

 

常用的分布式事务解决方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值