点击标签栏里的 「暖春 Offer 计划」 标签或点击头图,可以进入完整专栏
还记得咱们上期提到的面试技巧,大家有没有在面试中灵活的用起来了呢?
需要补课的同学可以点击 👉🏻 传送门: 迎「面」而上,「职」赢未来 | 面试技巧总结(1)
本期咱们来重点讲解面试前需要准备好的各类知识,以及教大家如何看懂别人发的 “面经”。
据学习君了解,现阶段,不少扣友的面试经验还为 0。这好比还没顺利走出新手村,就要和面试官大 Boss 极限 solo 了。听上去的确是一局胜算渺茫的 battle,但也未必全然没有逆风翻盘的机会。
今天,我们就重点来讲讲技术面试。技术面试是每一位 IT 人都必定经历的一关!


参考来源:https://leetcode.cn/circle/discuss/oKOqNk/
看到别人的一二三面经历,不知如何下手?
今天学习君教大家一个整理归纳的方法,可以把别人“宝贵的面经” 收为己用。
我们就拿案例一来举例吧~
| 知识点 | 知识点涉及内容 | 知识点 | 知识点涉及内容 |
|---|---|---|---|
| Java 基础知识 | 1.String 类型的存储方式,线程安全性以及字符串相加 2.StringBuffer 对象是否发生变化 3.Java 的值传递 4.final 类的概念 5.static 修饰符的用法 6.深拷贝和浅拷贝的区别 | Java 集合类 | 1.Map、Set、List 的概念和用途 2.HashMap 的存储结构 |
| 多线程编程 | 1. 线程的创建方式、run 和 start 的区别 2. 线程池设计模式 3. 用户态和内核态的区别 4. volatile 和 synchronized 的区别 | 数据库相关 | 1. MySQL 的 char 和 varchar 的区别 2. 行级锁和表级锁的概念,以及对项目的影响 3. 数据库索引的选取 |
| 网络通信 | 1. TCP/IP 握手过程、重传相关知识 2. TCP 与 UDP 的区别、TCP 的可靠性保证、拥塞控制和流量控 3. 哈希冲突解决方案,优缺点 | 算法和数据结构 | 1. 各种排序算法的方式和时间复杂度 2. 常用的数据结构,以及 Arraylist 和Linkedlist 的遍历效率 3. 大量文件里进行去重 |
| 软件工程 | 1. 介绍自己做的项目,其中的技术点和难点,以及开发历程 2. 设计模式,主要问单例模式、观察者模式、工厂模式及抽象工厂模式。 | 其他 | 1. 进程和线程的区别 2. 进程通信方式 3. Java 双亲委派机制和打破双亲委派。 4. 平时技术的学习方式,看什么书籍,接下来的学习方向 |
| ❔ String 类型的存储方式,线程安全性以及字符串相加 | ❔ static 修饰符的用法 |
|---|---|
| String 类型的存储方式: Java 中的 String 类型是不可变的,即一旦创建,其值就不能被修改。String 类型底层是通过 char 数组来存储字符串的每个字符,而且 Java 采用的是 Unicode 编码,所以每个字符占用两个字节。 线程安全性: String 类型是不可变的,因此在多线程环境下是线程安全的。这是因为多个线程同时读取 String 对象的值并不会对其造成影响,因为它的值是不可变的。 字符串相加: 在 Java 中,可以使用 + 运算符来将两个字符串拼接在一起。 | static 是一个关键字,它可以用来修饰变量、方法和代码块。 1、修饰变量当 static 用来修饰一个变量时,这个变量就成为了静态变量,也叫类变量。这意味着该变量属于类而不是对象,它会被所有该类的对象所共享,并且只会在类加载时初始化一次,不会随着对象的创建而重新初始化。 2、修饰方法当 static 用来修饰一个方法时,这个方法就成为了静态方法。静态方法可以通过类名直接调用,无需创建对象。这是因为静态方法不依赖于任何对象,它只能访问类的静态成员和方法。 3、修饰代码块当 static 用来修饰一个代码块时,这个代码块就成为了静态代码块。静态代码块只会在类加载时执行一次,用于初始化类的静态成员。 |
| ❔ final 类的概念 | ❔ StringBuffer 对象是否发生变化 |
| 在 Java 中,final 是一个关键字,它可以用来修饰类、方法和变量。 当 final 用来修饰一个类时,这个类就变成了一个不可继承的类,即不能再有子类继承这个类。这是因为 final 类被设计为具有完整性和不可变性,因此不能被修改或扩展。 | StringBuffer 对象可以被修改。 StringBuffer 是一个可变的字符串缓冲区,可以通过它的方法在已有字符串的基础上进行增删改操作。 |
| ❔ 深拷贝和浅拷贝的区别 | ❔ Java 的值传递 |
| 1、浅拷贝 浅拷贝是指在拷贝对象时,只拷贝对象本身及其内部存储的基本类型数据和对象引用,而不拷贝对象所引用的对象。也就是说,新旧对象中的引用变量指向的是同一个对象。 2、深拷贝 深拷贝是指在拷贝对象时,不仅拷贝对象本身及其内部存储的基本类型数据和对象引用,还要拷贝对象所引用的所有对象,即创建一个全新的对象。 | 在 Java 中,参数传递有两种方式:值传递和引用传递。 值传递是指传递的是实际值的副本,而不是实际值本身。当一个基本数据类型或一个对象引用作为参数传递给一个方法时,传递的是该变量的副本。在该方法内部对参数的任何改变都不会影响原来的变量。 |
知识点1:字符串相加
在 Java 中,可以使用 + 运算符来将两个字符串拼接在一起。例如:
javascriptCopy code
String str1 = "Hello";
String str2 = "World";
String result = str1 + " " + str2;当使用 + 运算符连接多个字符串时,Java 会在内部创建一个新的 String 对象来存储结果。因为 String 对象是不可变的,所以每个新的连接操作都会创建一个新的对象。这可能会导致性能问题,因为创建和销毁对象需要额外的时间和内存。为了解决这个问题,可以使用 StringBuilder 或 StringBuffer 类来动态构建字符串,而不是使用 + 运算符。这些类允许修改已经存在的字符串对象,从而避免了创建大量的中间对象。其中,StringBuilder 是非线程安全的,而 StringBuffer 是线程安全的。
知识点2:StringBuffer 对象是否发生变化
StringBuffer 是一个可变的字符串缓冲区,可以通过它的方法在已有字符串的基础上进行增删改操作。
例如:
javaCopy code
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");在这个例子中,使用 append() 方法将字符串 " World" 添加到了原有的字符串 "Hello" 的后面。这就改变了 StringBuffer 对象的值。
需要注意的是,StringBuffer 对象是线程安全的,因此其方法中大部分都使用了同步锁来保证线程安全。如果不需要线程安全的话,可以使用非线程安全的 StringBuilder 类来代替 StringBuffer。
知识点3:Java 的值传递
在 Java 中,参数传递有两种方式:值传递和引用传递。
值传递是指传递的是实际值的副本,而不是实际值本身。当一个基本数据类型或一个对象引用作为参数传递给一个方法时,传递的是该变量的副本。在该方法内部对参数的任何改变都不会影响原来的变量。
例如:
csharpCopy code
public class Example {
public static void main(String[] args) {
int x = 10;
changeValue(x);
System.out.println(x); // 输出结果是 10
}
public static void changeValue(int a) {
a = 20;
}
}在这个例子中,我们定义了一个名为 changeValue 的方法,该方法接受一个 int 类型的参数 a。当我们在 main 方法中调用 changeValue(x) 时,Java 会将变量 x 的值复制到 a 中,然后将 a 传递给 changeValue 方法。在 changeValue 方法内部,我们将 a 的值更改为 20,但这并不会影响 x 的值,因为我们只是在修改 a 的副本,而不是 x 本身。
需要注意的是,当传递一个对象引用作为参数时,虽然传递的是该引用的副本,但是该副本仍然指向原来的对象。因此,在该方法内部对对象的任何更改都将影响原来的对象。

| 推荐学习资源 | 推荐学习资源 | 推荐学习资源 | |
|---|---|---|---|
| 岗位八股推荐 | 七天八股速记:后端![]() | 七天八股速记:前端![]() | 七天八股速记:算法![]() |
| 岗位八股推荐 | 数据库面试速通![]() | 前端面试突破:Vue![]() | 算法面试小抄![]() |
| 岗位八股推荐 | C++面试突破![]() | Java 面试突破![]() | 从 BUG 入手:Java 基础修炼![]() |
💡 审题时需要注重清楚以下内容:
🎈 具体做法:
💡 思考时以下述内容为重点:
🔎 培养结构性思维,学会先分类方法,再选择方法:
眼下已是三月,正式进入面试高峰期。在此紧要关头,真题演练的目的必须明确。瞄准某一企业,或锚定某一岗位。清晰的题目归类将大幅提升你的刷题效率,达到事半功倍的效果。
学习君根据 企业 & 岗位 两大维度总结了以下刷题计划,大家可以按照自己的需求有针对性地进行训练喔 !
点击下方图片即可开始刷题 ~
1、8 大名企真题放送
2、 热门岗位真题集锦
| 综合提升 | 企业真题 | 企业真题 | 企业真题 | 企业真题 |
|---|---|---|---|---|
春招突围「数据库」![]() | 春招突围「后端岗」![]() | 兴业数金春招备战![]() | 大疆春招备战![]() | 字节春招备战![]() |
百度春招备战![]() | bilibili 春招备战![]() | 小红书春招备战![]() | 美团春招备战![]() | 拼多多春招备战![]() |
点击进入「求职」页,即可解锁海量企业真题 ~
14. 最长公共前缀 出现频率 96.09%
这些企业考过:字节跳动 百度 腾讯 Tencent 美团 阿里巴巴 华为 快手 Shopee
7. 整数反转 出现频率:94.69%
这些企业考过:字节跳动 华为 腾讯 Tencent 百度 京东
185. 部门工资前三高的所有员工 出现频率:75.30%
剑指 Offer 10- I. 斐波那契数列 出现频率 77.67%
这些企业考过:字节跳动 阿里巴巴
43. 字符串相乘 出现频率:80.98%
这些企业考过:字节跳动 腾讯 Tencent 美团 阿里巴巴 滴滴 腾讯
68. 文本左右对齐 出现频率:68.71%
春招如火如荼,力扣特为 PLUS 会员开启 『春招助力月』
PLUS 会员除尊享会员专属 LeetBook 外,还可享受其他学习资源的会员专属价。助力月已经开启,快快到力扣学习『学习板块』选取你最需的学习资源吧!
学习君已经为你准备好了众多内推渠道,点击心仪的公司进投递吧~