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

97 阅读4分钟

#Java基础 #编程入门 #JVM原理 #代码规范 #面试指南 #面向对象 #集合框架**


一、灵魂拷问:Java还值得学吗?

image.png

(图示:Java在企业级开发、安卓、大数据、云原生等领域的应用分布)

连续12年霸榜TIOBE前三的Java,就像编程界的"老干部"——既稳重又与时俱进。从安卓APP到分布式系统,从Hadoop生态到Spring Cloud,Java的身影无处不在。2025年,它依然是企业级开发的首选语言。


二、Java程序运行原理:JVM三剑客

1. JDK/JRE/JVM关系图解

  • JVM:Java虚拟机,跨平台核心,负责解释执行字节码
  • JRE:运行环境,包含JVM和核心类库
  • JDK:开发工具包,包含编译器(javac)、调试工具(jdb)等

趣味记忆:JDK = JRE + 开发工具,就像"全屋定制"套餐;JVM是"翻译官",把字节码翻译成不同平台的方言。


三、Hello World的哲学

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

三大铁律

  1. 类名必须与文件名一致(否则IDE会"掀桌")
  2. main方法是程序入口(旋转门)
  3. 语句末尾必须带分号(程序员最熟悉的陌生人)

编译命令:javac HelloWorld.java → 生成 .class 字节码
运行命令:java HelloWorld → 注意!不要带 .class 后缀


四、数据类型与变量:从"原子"到"分子"

1. 八大基本数据类型

类型内存空间默认值示例
byte1字节0byte age = 25;
int4字节0int distance = 384400;
double8字节0.0double pi = 3.14;
boolean1位falseboolean isJavaFun = true;

类型转换口诀:小转大自动(int→long),大转小需强转(double→int会"砍小数")

2. 引用类型:对象世界的"社交达人"

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

基本类型存值,引用类型存地址!(内存结构图见下图)


五、控制流:程序的"决策树"

1. 条件分支(if-else三连击)

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

2. 循环语句(for & while)

java
编辑
// for循环:适合已知次数
for(int i=0; i<5; i++) { ... }

// while循环:适合条件驱动
int j=0;
while(j < 5) { j++; }

趣味比喻:for像打卡机,while像保安查证


六、面向对象:Java的"宇宙法则"

1. 类与对象

java
编辑
class Person {
    private String name;
    public void sayHello() {
        System.out.println("Hello, I'm " + name);
    }
}

// 使用对象
Person person = new Person();
person.sayHello();

2. 继承与多态

java
编辑
class Animal {
    public void sound() { System.out.println("Animal sound"); }
}

class Dog extends Animal {
    @Override
    public void sound() { System.out.println("Woof!"); }
}

// 多态演示
Animal animal = new Dog();
animal.sound(); // 输出: Woof!

多态口诀:父类引用指向子类对象,方法调用看运行时类型


七、数组与方法:基础中的王者

1. 数组声明与初始化

java
编辑
// 静态初始化
int[] numbers = {1, 2, 3};

// 动态初始化
String[] names = new String[5];
names[0] = "Java";

2. 方法定义与重载

java
编辑
// 方法定义
public static int add(int a, int b) {
    return a + b;
}

// 方法重载
public static double add(double a, double b) {
    return a + b;
}

八、异常处理:程序的"急救包"

java
编辑
try {
    int result = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("不能除以0!");
} finally {
    System.out.println("无论是否异常都会执行");
}

*异常分类:

  • Error:严重问题(如JVM崩溃)
  • Exception:可处理的异常(如NullPointerException)*

九、集合框架:数据管理的"瑞士军刀"

1. List、Set、Map对比

类型有序可重复实现类
ListArrayList
SetHashSet
Map--HashMap

2. 迭代器与泛型

java
编辑
List<String> list = new ArrayList<>();
list.add("Java");
Iterator<String> it = list.iterator();
while(it.hasNext()) {
    System.out.println(it.next());
}

十、常见误区避雷指南

误区正确姿势
==比较字符串内容使用.equals()方法
忘记类型转换大转小强制转换((int)1.5
变量命名随意遵循驼峰命名法(userName
忽略异常处理针对性捕获,避免空泛catch

十一、结语:Java学习路线图

从基础语法到Spring全家桶,从单体架构到微服务,Java的世界永远有新大陆等待探索。记住:代码是写给人看的,只是顺便给机器执行(Martin Fowler语)。

欢迎在评论区留下你的学习心得或踩坑经历,点赞收藏走一波!