两年前,JVM会一些理论知识,比如垃圾回收算法的概念,优缺点,适用场景等都已经能达到及格水平。现在人多了,这个筛选难度也大了,现在都开始问,你有没有做过哪些JVM调优?
大家都知道,公司开发的人数比较多,就算有JVM问题,那么参与调优的人数也是有限的。公司不可能像大学一样,让每个人都能在实验室,然后每个同学都能在亲自做实验,然后老师再打分之类。
现实是,很多同学的公司,根本没有JVM调优场景,就算有,你也没有机会参与解决,现在的面试情况就是,你不会,很可能就被“误杀”。
当然,JVM只是个举例,比如高并发场景,很多同学公司根本没有这个场景,而且就算有,也是核心人员才参与解决,也正是这样,就导致了,优秀的人得到的机会就越来越多。人生虽然是一段很长的路,但是很多时候,某一段你落后了,可能以后都很难追上了。
每个人的情况都不一样,因此后续怎么努力,怎么规划,也是不一样的。但是就算目前没有实战的场景或者没有实战的机会,现在努力,也还来得及。
但是假如你完全一点都不知道,那就真的和高并发、JVM调优、Redis这些没什么关系了。
因此,这里提供一个思维导图,方便大家查漏补缺,先系统学习,把知识体系建立起来。
学习是靠自己的,但是可以借助前辈的经验,来提高学习效率!
针对以上思维导图上的知识点,我们特地准备了一份《Java面试总汇文档》,让你更有信心拿offer!
需要这份文档的朋友们,
更多文档资料,也可以免费获取~
部分资料
基础篇:
1、Java的四种引用,强弱软虚
2、有没有可能两个不相等的对象有相同的hashcode?
3、深拷贝和浅拷贝的区别是什么
4、OOM你遇到过哪些情况,SOF你遇到过哪些情况?
5、Java序列化中如果有些字段不想进行序列化,怎么办?
6、说说List,Set,Map三者的区别?
7、a=a+b与a+=b有什么区别吗
8、java反射的作用于原理
9、简述线程、程序、进程的基本概念。以及他们之间关系是什么
……
基础篇部分展示
JVM篇:
1、简述一下JVM的内存模型
2、什么时候会触发FullGC
3、描述一下JVM加载class文件的原理机制?
4、JVM的永久代中会发生垃圾回收么?
5、如何判断对象可以被回收?
6、调优命令有哪些?
7、MinorGC与FullGC分别在什么时候发生?
8、垃圾收集算法
9、你知道哪些JVM性能调优
JVM篇部分展示
多线程&并发篇:
1、Thread类中的start()和run()方法有什么区别?
2、为什么wait,notify和notifyAll这些方法不在thread类里面?
3、Java中interrupted和isInterruptedd方法的区别?
4、Java中synchronized和ReentrantLock有什么不同?
5、SynchronizedMap和ConcurrentHashMap有什么区别?
6、Java线程池中submit()和execute()方法有什么区别?
7、常用的线程池有哪些?
8、Java程序是如何执行的
9、说说自己是怎么使用synchronized关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式
多线程&并发篇部分展示
Spring篇:
1、Spring的IOC和AOP机制?
2、Spring中Autowired和Resource关键字的区别?
3、依赖注入的方式有几种,各是什么
4、SpringMVC怎么样设定重定向和转发的?
5、SpringMVC常用的注解有哪些?
6、解释一下springbean的生命周期
7、解释Spring支持的几种bean的作用域。
8、Spring基于xml注入bean的几种方式:
9、Spring框架中都用到了哪些设计模式?
Spring篇部分展示
SpringBoot篇:
1、SpringBoot的核心注解是哪个?它主要由哪几个注解组成的?
2、如何理解SpringBoot中的Starters?
3、SpringBoot中的监视器是什么?
4、如何使用SpringBoot实现异常处理?
5、springboot常用的starter有哪些
6、SpringBoot实现热部署有哪几种方式?
7、如何理解SpringBoot配置加载顺序?
8、SpringBoot的核心配置文件有哪几个?它们的区别是什么?
9、如何集成SpringBoot和ActiveMQ?
SpringBoot篇部分展示
SpringCloud篇:
1、说说RPC的实现原理
2、SpringCloud有什么优势
3、什么是服务熔断?什么是服务降级?
4、Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
5、SpringBoot和SpringCloud的区别?
6、负载平衡的意义什么?
7、什么是Hystrix?它如何实现容错?
8、什么是Hystrix断路器?我们需要它吗?
9、说说RPC的实现原理
SpringCloud篇部分展示
MySQL篇:
1、数据库的三范式是什么
2、InnoDB与MyISAM的区别
3、数据库的事务
4、索引问题
5、SQL优化
6、简单说一说drop、delete与truncate的区别
7、事务隔离级别有哪些MySQL的默认隔离级别是
8、大表如何优化?
9、分库分表之后,id主键如何处理?
MySQL篇部分展示
Redis篇:
1、Redis持久化机制
2、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
3、热点数据和冷数据是什么
4、Memcache与Redis的区别都有哪些?
5、单线程的redis为什么这么快
6、redis的数据类型,以及每种数据类型的使用场景
7、redis的过期策略以及内存淘汰机制
8、Redis为什么是单线程的
9、Redis常见性能问题和解决方案?
10、为什么Redis的操作是原子性的,怎么保证原子性的?
Redis篇部分展示
Nginx篇:
1、简述一下什么是Nginx,它有什么优势和功能?
2、Nginx是如何处理一个HTTP请求的呢?
3、列举一些Nginx的特性
4、请列举Nginx和Apache之间的不同点
5、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?
6、请解释Nginx服务器上的Master和Worker进程分别是什么
7、请解释代理中的正向代理和反向代理
8、解释Nginx用途
Nginx篇部分展示
MQ篇:
1、为什么使用MQ
2、MQ优缺点
3、Kafka、ActiveMQ、RabbitMQ、RocketMQ都有什么区别?
4、如何保证高可用的?
5、如何保证消息的可靠传输?如果消息丢了怎么办
6、如何保证消息的顺序性
7、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
8、设计MQ的思路
MQ篇部分展示
数据结构与算法篇:
1、常用的数据结构
2、数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组(请以代码实现)
3、写出代码判断一个整数是不是2的阶次方(请代码实现,谢绝调用API方法)
4、假设今日是2015年3月1日,星期日,请算出13个月零6天后是星期几,距离现在多少天(请用代码实现,谢绝调用API方法)
5、有两个篮子,分别为A和B,篮子A里装有鸡蛋,篮子B里装有苹果,请用面向对象的思想实现两个篮子里的物品交换(请用代码实现)
数据结构与算法篇部分展示
Linux篇:
1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示切换目录用什么命令?
2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?
3、查看文件有哪些命令
4、列举几个常用的Linux命令
5、你平时是怎么查看日志的?
Linux篇部分展示
简历篇:
为什么说简历很重要?
先从面试来说
再从面试说起
必知必会的几点
必须了解的两大法则
项目经历怎么写
专业技能怎么写
排版注意事项
其他一些小tips
简历篇部分展示
最后,希望正在找工作的,顺利拿下offer,找到一份好的工作;正在学习的,夯实自己的知识,不断学习新技术!