前面几题还好,问的是有关JVM的一些问题,比如说JVM主要组成部分及其作用?运行时数据区包含哪些?这里基本都还能hold住,但越到后面,他问到jvm中一次完整的GC流程(从ygc到fgc)是怎样的,重点讲讲对象如何晋升到老年代等?g1和cms区别,吞吐量优先和响应优先的垃圾收集器选择?说一说你对环境变量classpath的理解?如果一个类不在classpath下,为什么会抛出ClassNotFoundException异常,如果在不改变这个类路径的前期下,怎样才能正确加载这个类?......他说一瞬间脑子里只剩下嗡嗡声
而不论是微服务、大数据还是云服务,核心本质都在基础范围内,做技术最重要的是对基础原理的研究。大家都要能从面试中找到学会如何找到自己的问题学习解决问题,然后就是深入底层、打牢基础。
在忙碌的工作中,可能会有人疏忽于自己的技术成长,也缺乏在架构设计、系统性能调优、开源项目等方面有丰富经验的人的技术指导。
今年行情不好是众所周知,招一个人估计得面18个,感觉都绝望了,可能也是自己抗压能力比较弱,因为遇到的都比较坑,还好当时没有一冲动裸辞,生活还在继续,找工作还在继续,如果你和我一样奔波于各个面试中,祝愿你能找到一个满意的工作。
常见问题
1.1Hashmap与concurrentHashMap(重点)
1.3Java泛型的理解
1.5java字节流字符流
1.8包装类型和基本类型比较问题
1.9为什么重写equals和hashcode1.10stringBuilder和stringBuffer的区别
1.11Java序列化的原理
1.11Java8、9、10、11的一些新特性介绍
1.12java中四种修饰符的限制范围。
1.13Object类中的方法。
1.14浅拷贝深拷贝
1.15接口和抽象类的区别,注意JDK8的接口可以有实现。
1.16动态代理的两种方式,以及区别。
1.16传值和传引用的区别,Java是怎么样的,有没有传值引用。
1.17一个ArrayList在循环过程中删除,会不会出问题,为什么。
1.18Exception和Error区别
1.19new关键字和newinstance()方法
1.20Map、List、Set分别说下你知道的线程安全类和线程不安全的类
1.21Java防止SQL注入
1.22反射原理及使用场景
1.23staticVsFinal?如何让类不能被继承
1.24内存泄露?内存溢出?
1.25重写Vs重载
1.26Lambda表达式实现
1.27ClassNotFoundException和NoClassDefFoundError的区别
2.1volatile关键字原理
2.2对java中锁的理解
2.3悲观锁乐观锁
2.4对CAS的理解,java中的CAS,如何不用unsafe实现CAS2.5java线程创建方式线程run和start的区别?两次start同一个线程会怎么样?
2.6Java线程池的原理?线程池有哪些?线程池参数是什么?
2.7ThreadLocal及其应用场景
2.8对线程安全的理解
2.9get需要加锁么,为什么?
2.10Lock的底层原理。synchronized、Lock、ReentrantLock、ReadWriteLock。
2.11AtomicInteger怎么实现原子修改的?
2.11分布式环境下,怎么保证线程安全。
2.12产生死锁的四个必要条件?
2.13如何中断线程
2.14线程的状态都有哪些。
2.15wait、notify、notifyAll、await、signal、sleep、yield
2.16Callable和Future的了解。
2.17synchronized关键字的用法,优缺点。
2.18可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁
2.19ABC三个线程如何保证顺序执行。
2.20双线程交替打印奇偶(阿里)
3.1常见GC算法、CMS收集器、G1
3.2jvm内存模型&&Java内存模型
3.3怎么判断对象可被回收?GC可达性分析中哪些算是GCROOT?
3.4edensurvivor区的比例,为什么是这个比例,edensurvivor的工作过程。
3.4fullgc是否可以回收方法区
3.5什么对象会进老年代?为什么新生代使用复制算法?
3.6被GC判断为"垃圾"的对象一定会回收吗
3.7强制younggc会有什么问题?
3.8类加载的过程Java为什么要设计双亲委派模型?
3.9什么时候会触发minorgc,什么时候会触发fullgc?
3.10G1和ZGC的区别
3.12你知道强引用、弱引用和软引用吗GC对他们执行怎样的操作。
3.13JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。
3.14JVM的栈中引用如何和堆中的对象产生关联。
3.15逃逸分析技术。
3.16Java是否可以GC直接内存。
3.17常用的JVM调优参数。
3.6具体的性能调优步骤吗?fullgc的时候会导致接口的响应速度特别慢,该如何排查和解决。
3.18dump文件的分析。
3.19Java有没有主动触发GC的方式
3.20假如现在在同一台机器上开两个java项目,有几个java虚拟机?
3.21javac编译期工作流程
4.1springIOC过程
4.2循环依赖怎么解决的
4.3springAOP,动态代理是怎么实现的
4.4springBeanDefinition作用
4.5spring@Autowired(@Resource,类似)实现原理
4.6bean的生命周期4.7Bean的默认作用范围是什么?其他的作用范围?
4.8Spring的单例是怎么实现的?
4.12Spring用了哪些设计模式。
4.13Spring注入bean的方式。
4.14什么是IOC,什么是依赖注入。
4.15Spring具有什么特点(IOC和AOP)
4.16几种scope区别,aop实现有哪几种实现,
4.17spring的事务及实现模式
4.19对Spring、SpringMVC、springBoot理解
4.20@transactional注解在什么情况下会失效,为什么。4.21SpringMVC的Controller是如何将参数和前端传来的数据一一对应的。
4.23Spring如何维护它拥有的bean。
4.24自定义注解的实现。
4.25如何自己设计IOC框架
4.26Quartz是如何完成定时任务的。
4.18servlet的生命周期,怎么判断是get请求还是post请求,后台实现session共享的方法。Javaweb过滤器的生命周期?过滤器和拦截器的区别。
4.19BeanFactory和FactoryBean的区别
4.20Spring中配置id或name相同的Bean可能引发的问题及解决方案
4.21防止Web表单重复提交的方法
5.1kafka有哪些组件,kafkacontroller选举过程,kafkaleader重选举过程
5.2kafka最早是为了解决什么问题设计的
5.3为什么kafka用zookeeper来存储metadata,而不是用db来存储
5.4kafka只有一次生产只有一次消费怎么做
5.5kafka的消费模式?kafka怎么做有序消费?kafka重消费解决?消息丢失怎么解决?
5.6Kafka的Replicas的作用?
6.算法
6.1B+树6.2hash和B+树的区别?分别应用于什么场景?哪个比较好?
6.5快速排序,堆排序,插入排序
6.6一致性Hash算法,一致性Hash算法的应用
限于篇幅,我没有给出答案,感兴趣的可以下方扫码免费领取!!!