写在前面
最近在带新人(真的会谢!),发现很多小伙伴连基础语法都记不全。这篇万字长文帮你把Java基础知识串成体系,看完保准你面试能多要2k工资(老板别打我)!建议边看边打开IDE敲代码,效果更佳~
一、Java基础语法(必会!)
1.1 数据类型分类
Java的数据类型分为两大类(划重点):
-
基本类型:8种原始类型
byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) double(8字节) char(2字节) boolean(1位)
注意:
long
类型赋值要加L后缀,float
要加F后缀!(新人杀手警告) -
引用类型:类、接口、数组、枚举等
1.2 流程控制三剑客
if-else 的隐藏坑点:
if(condition); // 这个分号会让你的逻辑全乱掉!
{
// 永远会执行的代码块
}
switch 在Java12后支持箭头表达式(真香):
switch(day) {
case MONDAY, FRIDAY -> System.out.println("不想上班");
case SATURDAY -> System.out.println("开黑!");
}
循环结构 的骚操作:
// 带标签的break(慎用!)
outer:
for(int i=0; i<10; i++){
for(int j=0; j<5; j++){
if(j == 3) break outer; // 直接跳出外层循环
}
}
二、面向对象编程(OOP核心)
2.1 类与对象的关系
举个栗子🌰:
public class Person { // 类就像设计图纸
String name; // 属性
public void sayHi() { // 方法
System.out.println("我是"+name);
}
}
Person p = new Person(); // 对象是具体存在的实例
p.name = "张三";
p.sayHi();
2.2 三大特性解析
封装的典型应用——JavaBean规范:
public class User {
private String username; // 私有化属性
// getter/setter方法(IDEA快捷键alt+insert秒生成)
public String getUsername() {
return username;
}
public void setUsername(String name) {
this.username = name;
}
}
继承的单继承限制(Java的倔强):
class Animal {} // 父类
class Dog extends Animal {} // 正确
// class Cat extends Animal, Pet {} // 报错!不能多继承
多态的运行时绑定(面试必考):
Animal a = new Dog(); // 编译看左边,运行看右边
a.eat(); // 实际调用Dog的eat方法
三、核心类库(常用API)
3.1 String的玄学
String s1 = "hello"; // 在常量池
String s2 = new String("hello"); // 在堆内存
System.out.println(s1 == s2); // false(地址不同)
System.out.println(s1.equals(s2));// true(内容相同)
3.2 集合框架
常用集合类对比(选择困难症看这里):
类型 | 特点 | 适用场景 |
---|---|---|
ArrayList | 查询快,增删慢 | 高频查询的数据列表 |
LinkedList | 增删快,查询慢 | 需要频繁修改的队列 |
HashMap | 键值对存储,线程不安全 | 快速查找的缓存 |
ConcurrentHashMap | 线程安全的HashMap | 高并发场景 |
四、异常处理(避坑指南)
4.1 异常体系

- Checked Exception:必须处理的异常(IOException等)
- Unchecked Exception:RuntimeException及其子类
4.2 异常处理正确姿势
try-with-resources(Java7后的神器):
try (FileInputStream fis = new FileInputStream("test.txt")) {
// 自动关闭资源
} catch (IOException e) {
e.printStackTrace();
}
五、Java新特性(2024版)
5.1 密封类(Sealed Classes)
public sealed class Shape
permits Circle, Square { // 明确指定子类
}
final class Circle extends Shape {} // 必须final或sealed
5.2 模式匹配
instanceof的进化:
if(obj instanceof String s) { // 直接类型转换
System.out.println(s.length());
}
六、总结与建议
Java基础就像建房子的地基(虽然很老套但确实是真理),很多小伙伴工作三年才发现自己连==和equals的区别都说不清楚(别问我怎么知道的)。建议大家:
- 至少手写一遍常用集合类的实现
- 理解JVM内存模型(下次专门写这个)
- 多参与开源项目,看看大神的代码风格
(看到这里的都是真爱!点个收藏防丢失吧~)