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

写在前面

“Java还值得学吗?”(灵魂拷问)作为连续12年霸榜TIOBE编程语言前三的选手,我可以负责任地告诉你:值!(拍胸脯)从企业级应用到安卓开发,从大数据到物联网,Java的身影无处不在。不过别急着下IDE!今天咱们就用最接地气的方式,盘一盘Java基础那些事儿~


一、HelloWorld的哲学

1.1 第一个程序(仪式感要有)

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello Java 2024!"); 
    }
}

敲黑板!这里藏着三个Java铁律

  1. 类名必须和文件名一致(否则编译器掀桌警告)
  2. main方法是程序入口(程序界的旋转门)
  3. 分号不能少(程序员最熟悉的陌生人)

1.2 编译与执行

  1. javac HelloWorld.java → 生成.class字节码
  2. java HelloWorld → JVM启动!
    (注意!第二步不要带.class后缀,这个坑我当年掉过三次!)

二、变量世界的生存法则

2.1 八大基本数据类型(原始居民)

类型内存空间默认值举个栗子
byte1字节0byte age = 25;
short2字节0short price=999;
int4字节0int distance=384400;(地月距离)
long8字节0Llong stars=10000000000L;(别漏L!)
float4字节0.0ffloat pi=3.14f;
double8字节0.0double atom=1e-10;
char2字节‘\u0000’char c=‘汉’;
boolean1位falseboolean isJavaFun=true;

(重点预警!)类型转换两大原则:

  • 小转大 → 自动转换(int转long美滋滋)
  • 大转小 → 强制转换(double转int会砍小数,血泪教训!)

2.2 引用类型(对象大佬)

String name = "Java酱";  // String是特殊引用类型
Date today = new Date(); // new操作符召唤对象

重要区别:基本类型存,引用类型存地址!(内存结构图在脑中浮现)


三、程序控制流的骚操作

3.1 选择结构

if-else 三连击:

if(score >= 90) {
    System.out.println("SSR!");
} else if(score >= 60) {
    System.out.println("保底成功"); 
} else {
    System.out.println("非酋附体");
}

switch 新特性(JDK14+):

String day = "Monday";
switch(day) {
    case "Monday" -> System.out.println("摸鱼启动");
    case "Friday" -> System.out.println("狂喜");
    default -> System.out.println("日常搬砖");
}

(看到->符号了吗?这是switch表达式的新姿势!)

3.2 循环结构

for循环 魔鬼细节:

for(int i=0; i<10; i++) {  // 经典三段式
    if(i == 5) continue;   // 跳过5
    if(i == 8) break;      // 提前结束
    System.out.print(i+" ");
}
// 输出:0 1 2 3 4 6 7 

增强for循环(foreach):

String[] languages = {"Java", "Python", "C++"};
for(String lang : languages) {
    System.out.println(lang);
}

(遍历集合神器,但不能修改元素哦!)


四、面向对象三大支柱

4.1 封装(保险箱哲学)

public class BankAccount {
    private double balance;  // 私有化
    
    public void deposit(double amount) {
        if(amount > 0) {
            balance += amount;
        }
    }
    
    // getter方法(保护数据)
    public double getBalance() {
        return balance; 
    }
}

(划重点!不是所有字段都需要getter/setter,根据业务需求来)

4.2 继承(家族血脉)

class Animal {
    void eat() {
        System.out.println("干饭中...");
    }
}

class Cat extends Animal {
    void meow() {
        System.out.println("喵呜~");
    }
}

继承三原则

  1. 子类拥有父类非private成员
  2. 只能单继承(Java拒绝菱形继承!)
  3. 构造方法不被继承(得自己调用super())

4.3 多态(七十二变)

Animal myCat = new Cat();  // 向上转型
myCat.eat();               // 调用子类重写方法
// myCat.meow(); ← 编译报错!(父类引用看不到子类特有方法)

(多态的精髓:编译看左边,运行看右边


五、异常处理生存指南

5.1 try-catch-finally 三部曲

try {
    File file = new File("secret.txt");
    Scanner scanner = new Scanner(file);
} catch (FileNotFoundException e) {
    System.out.println("文件失踪!");
    e.printStackTrace();
} finally {
    System.out.println("无论如何都要执行!");
}

5.2 异常分类图鉴

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
(脑补图片)

  • Checked Exception:必须处理的(比如IOException)
  • Unchecked Exception:RuntimeException及其子类
  • Error:系统级错误(程序员不用管)

(重要技巧!)try-with-resources 自动关流:

try(FileInputStream fis = new FileInputStream("data.txt")) {
    // 自动关闭资源
} catch(IOException e) {
    // 异常处理
}

六、2024新特性尝鲜

6.1 文本块(告别拼接地狱)

String json = """
    {
        "name": "Java",
        "age": 28,
        "feature": ["跨平台", "面向对象"]
    }
    """;

(三重引号太香了!再也不用写恶心的+号拼接了)

6.2 Record类(POJO终结者)

public record User(String username, String email) {}
// 自动生成:构造方法、equals、hashCode、toString

(适合纯数据传输类,但不能继承哦!)


避坑指南(血泪经验)

  1. ==和equals():基本类型比值,引用类型比地址(字符串比较要用equals!)
  2. 字符串拼接:循环内用+拼接 → 性能灾难!(StringBuilder了解一下)
  3. 静态方法陷阱:不能调用非静态成员(新手常犯的null指针重灾区)
  4. 浮点数比较:0.1+0.2 ≠ 0.3(二进制表示问题,用BigDecimal解决)

学习路线图(私藏干货)

  1. 基础语法 → 2. 面向对象 → 3. 集合框架 → 4. IO流 → 5. 多线程 → 6. 网络编程 → 7. 新特性
    (每个阶段建议做小项目巩固,比如计算器、通讯录管理)

最后送大家一句话:“学Java就像谈恋爱,开始可能被它的严谨吓到,但相处久了就会爱上它的靠谱!” 🚀

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值