2024版Java基础知识总结(超详细整理)

写在前面

最近在带新人(真的会谢!),发现很多小伙伴连基础语法都记不全。这篇万字长文帮你把Java基础知识串成体系,看完保准你面试能多要2k工资(老板别打我)!建议边看边打开IDE敲代码,效果更佳~

一、Java基础语法(必会!)

1.1 数据类型分类

Java的数据类型分为两大类(划重点):

  • 基本类型:8种原始类型

    byte1字节)   short2字节)    int4字节)    long8字节)
    float4字节)  double8字节)   char2字节)   boolean1位)
    

    注意: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的区别都说不清楚(别问我怎么知道的)。建议大家:

  1. 至少手写一遍常用集合类的实现
  2. 理解JVM内存模型(下次专门写这个)
  3. 多参与开源项目,看看大神的代码风格

(看到这里的都是真爱!点个收藏防丢失吧~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值