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 八大基本数据类型(原始居民)

类型 内存空间 默认值 举个栗子
byte 1字节 0 byte age = 25;
short 2字节 0 short price=999;
int 4字节 0 int distance=384400;(地月距离)
long 8字节 0L long stars=10000000000L;(别漏L!)
float 4字节 0.0f float pi=3.14f;
double 8字节 0.0 double atom=1e-10;
char 2字节 ‘\u0000’ char c=‘汉’;
boolean 1位 false boolean 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就像谈恋爱,开始可能被它的严谨吓到,但相处久了就会爱上它的靠谱!” 🚀

本文是转载文章,点击查看原文
如有侵权,请联系 lx@jishuguiji.net 删除。