我有个朋友毕业工作一年之后,有了转行的想法,偶然接触到程序员这方面,产生了浓厚且强烈的兴趣,自学一年Java,收割了大厂offer,开始了他的程序员生涯。
在自学过程中有过一些小厂的面试经历,也在一些小型的互联网公司实习过,这些都不是本文重点。本篇章主要分享一下这次蚂蚁金服、字节跳动、美团、头条等8个大厂的面试真题涉及到的知识点,以及我个分享给他的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于JAVA基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等。 详细大厂面试题答案、学习笔记、学习视频等资料领取
JVM:
- 内存模型以及分区,需要详细到每个区放什么。
- 堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。
- 对象创建方法,对象的内存分配,对象的访问定位。
- GC 的两种判定方法
- SafePoint 是什么
- GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
- GC 收集器有哪些?CMS 收集器与 G1 收集器的特点。
- Minor GC 与 Full GC 分别在什么时候发生?
- 几种常用的内存调试工具
- 类加载的过程
- JVM 内存分哪几个区,每个区的作用是什么?
- 如何判断一个对象是否存活?(GC 对象的判定方法)
- 简述 java 垃圾回收机制?
- java 中垃圾收集的方法有哪些?
- java 内存模型
- java 类加载过程
- 简述 java 类加载机制
- 类加载器双亲委派模型机制
- 什么是类加载器,类加载器有哪些?
- 简述 java 内存分配与回收策率以及 Minor GC 和 Major GC
[图片上传失败...(image-8012d7-1595916452285)]
Spring(常问部分): Spring全家桶完整版有单独整理,需要Spring全家桶面试真题点击(Spring全家桶)领取,内容包括SpringBoot、SpringMVC、SpringCloud、Spring源码深度解析等
- 什么是 Spring 框架?Spring 框架有哪些主要模块?
- 使用 Spring 框架能带来哪些好处?
- 什么是控制反转(IOC)?什么是依赖注入?
- 请解释下 Spring 框架中的 IoC?
- BeanFactory 和 ApplicationContext 有什么区别?
- Spring 有几种配置方式?
- 如何用基于 XML 配置的方式配置 Spring
- 如何用基于 Java 配置的方式配置 Spring?
- 怎样用注解的方式配置 Spring?
- 请解释 Spring Bean 的生命周期?
- Spring Bean 的作用域之间有什么区别?
- 什么是 Spring inner beans?
- Spring 框架中的单例 Beans 是线程安全的么?
- 请举例说明如何在 Spring 中注入一个 Java Collection?
- 如何向 Spring Bean 中注入一个 Java.util.Properties?
- 请解释 Spring Bean 的自动装配?
- 请解释自动装配模式的区别?
- ......
[图片上传失败...(image-14eebf-1595916452284)]
MySQL:
- 数据库三范式是什么?
- 有哪些数据库优化方面的经验?
- 请简述常用的索引有哪些种类?
- 以及在 mysql 数据库中索引的工作机制是什么?
- MySQL 的基础操作命令
- mysql 的复制原理以及流程
- mysql 支持的复制类型
- mysql 中 myisam 与 innodb 的区别
- ......
[图片上传失败...(image-253528-1595916452284)]
Dubbo:
- Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
- Dubbo 超时时间怎样设置?
- Dubbo 有些哪些注册中心?
- Dubbo 是什么?
- Dubbo 的主要应用场景?
- Dubbo 的核心功能
- Dubbo 服务注册与发现的流程
- Dubbo 的架构设计
- ......
[图片上传失败...(image-c85665-1595916452283)]
Java基础:
- 面向对象和面向过程的区别
- Java 语言有哪些特点
- Java 和 C++的区别
- 什么是 Java 程序的主类?应用程序和小程序的主类有何不同?
- 字符型常量和字符串常量的区别
- 构造器 Constructor 是否可被 override
- 重载和重写的区别
- Java 面向对象编程三大特性: 封装 继承 多态
- String StringBuffer 和 StringBuilder 的区别是什么?String 为什么是不可变的?
- 自动装箱与拆箱
- 在一个静态方法内调用一个非静态成员为什么是非法的?
- import java 和 javax 有什么区别 ?
- 接口和抽象类的区别是什么?
- 一个类的构造方法的作用是什么 若一个类没有声明构造方法,该程序能正确执行吗 ?为什么?
- == 与 equals(重要)
- hashCode 与 equals(重要)
- 为什么 Java 中只有值传递?
- 线程有哪些基本状态?
- 关于 final 关键字的一些总结
- Java 中的异常处理
- ......
[图片上传失败...(image-9320d2-1595916452282)]
更多专题整理:
[图片上传失败...(image-a7c351-1595916452282)]
我的学习成长路线
学习方法:视频快速入门——>书籍慢慢深入——>动手实操
建议:关于学习方法,是因人而异的,每个人的学习方法都不同,甲的学习方法不适合乙,乙的学习方法不适合丙,所以找到属于自己的学习方法才是最正确的,有的适合自己看视频看书学习,有的人在培训班里更容易成长,所以无论选择何种学习方式,适合自己,且坚持到底才是最重要的
网友评论