目录

一、Java简介与环境搭建

环境配置步骤

二、核心语法:Hello World与基础概念

代码对比:Python vs Java

Python写法:

Java写法:

关键差异点

三、流程控制与数组

循环与判断示例

四、面向对象编程

类的定义与实例化

五、集合框架

Java集合代码示例

六、异常处理

七、异常处理:程序的“安全气囊”

基础语法对比

Python 写法:

Java 写法:

关键点

八、集合框架:比数组更强大的容器

常用集合类

代码示例:Map 的使用

九、面向对象高级特性

1. 接口

2. 抽象类

十、Java 的特有语法糖

1. 泛型

2. 注解

十一、后续学习路线建议

总结


一、Java简介与环境搭建

Java是一门强类型、编译型的语言,其核心特点是“一次编写,到处运行”。与Python不同,Java代码需要先编译成字节码(.class文件),然后由Java虚拟机(JVM)执行。

环境配置步骤

1.安装JDK(Java Development Kit):这是Java的核心开发包。推荐下载JDK 17或JDK 21(长期支持版)。

2.配置环境变量:

设置JAVA_HOME指向JDK安装目录。
在Path变量中添加%JAVA_HOME%\bin。

3.验证安装:在命令行输入java -version和javac -version,若显示版本号则安装成功。

4.IDE选择:强烈推荐IntelliJ IDEA(社区版免费且功能强大),它是目前最主流的Java开发工具。

二、核心语法:Hello World与基础概念

Java是强类型语言,这意味着定义变量时必须声明数据类型。此外,Java是面向对象的,所有代码必须包裹在类(Class)中。

代码对比:Python vs Java

Python写法:
# Python:动态类型,无需分号,无需类包裹
name = "Java"
print(f"Hello {name}")
Java写法:
// Java:强类型,必须分号结尾,必须在类中
public class Main {
    public static void main(String[] args) {
        String name = "Java"; // 必须声明类型 String
        System.out.println("Hello " + name);
    }
}
关键差异点

1.主方法:public static void main(String[] args)是Java程序的入口,必须一字不差。
2.数据类型:
        基本类型:int (整数), double (浮点数), boolean (布尔), char (字符)。
        引用类型:String (字符串), Array (数组), Class (类)。
3.输出:使用System.out.println()进行输出。

三、流程控制与数组

Java的流程控制语法(if, for, while)与Python逻辑一致,但语法格式更接近C语言(使用花括号{})。

循环与判断示例
int score = 85;

// If-Else
if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

// For 循环
// 格式:for(初始化; 条件; 迭代)
for (int i = 0; i < 5; i++) {
    System.out.println("当前数字: " + i);
}

// 增强型 For 循环 (类似 Python 的 for x in list)
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
    System.out.println(num);
}

四、面向对象编程

Java是纯粹的面向对象语言。理解类(Class)、对象(Object)、封装、继承和多态至关重要。

类的定义与实例化
// 定义一个类 (类似 Python 的 class)
class Person {
    // 属性 (成员变量)
    String name;
    int age;

    // 构造方法 (类似 Python 的 __init__)
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 方法
    public void sayHello() {
        System.out.println("你好,我是" + this.name);
    }
}

// 主类用于运行
public class Main {
    public static void main(String[] args) {
        // 实例化对象 (必须使用 new 关键字)
        Person p1 = new Person("张三", 25);
        p1.sayHello();
    }
}

五、集合框架

Python有强大的列表(List)和字典(Dict),Java也有对应的集合框架,但同样需要指定泛型(数据类型)。

Python Java (需导入java.util) 说明
List ArrayList<T> 动态数组
Dict HashMap<K, V> 键值对映射
Set HashMap<K, V> 无序不重复集合
Java集合代码示例
import java.util.ArrayList;
import java.util.HashMap;

public class CollectionsDemo {
    public static void main(String[] args) {
        // ArrayList (类似 Python List)
        ArrayList<String> list = new ArrayList<>();
        list.add("Java");
        list.add("Python");
        System.out.println(list.get(0)); // 获取第一个元素

        // HashMap (类似 Python Dict)
        HashMap<String, Integer> map = new HashMap<>();
        map.put("Alice", 25);
        map.put("Bob", 30);
        System.out.println(map.get("Alice")); // 输出 25
    }
}

六、异常处理

Java对错误的处理非常严格,分为编译时异常和运行时异常。必须使用try-catch块来捕获错误,防止程序崩溃。

public class ExceptionDemo {
    public static void main(String[] args) {
        try {
            int result = 10 / 0; // 会发生算术异常
        } catch (ArithmeticException e) {
            System.out.println("错误:不能除以零!");
        } finally {
            System.out.println("无论是否出错,这里都会执行");
        }
    }
}

七、异常处理:程序的“安全气囊”

Python 使用 try...except,而 Java 使用 try...catch。Java 的异常体系非常庞大,分为编译时异常(必须处理,否则报错)和运行时异常(逻辑错误,如数组越界)。

基础语法对比

Python 写法:
try:
    result = 10 / 0
except ZeroDivisionError as e:
    print("出错了:", e)
finally:
    print("执行完毕")
Java 写法:
try {
    int result = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("出错了: " + e.getMessage());
} finally {
    System.out.println("执行完毕");
}
关键点

1.捕获多个异常:Java 支持在一个 catch 块中捕获多种异常(例如 catch (IOException | SQLException e))。
2.抛出异常:使用 throw new Exception("错误信息") 主动抛出异常。

八、集合框架:比数组更强大的容器

在 Python 中,你有列表(List)和字典(Dictionary)。在 Java 中,虽然有数组,但更常用的是集合框架。

常用集合类

1.List(列表):有序、可重复。
        ArrayList:最常用,类似 Python 的列表,查询快,增删慢。
        LinkedList:增删快,查询慢。

2.Set(集合):无序、不可重复。
        HashSet:用于去重。
3.Map(映射):键值对存储,类似 Python 的字典。
        HashMap:最常用,基于哈希表实现。

代码示例:Map 的使用

import java.util.HashMap;
import java.util.Map;

public class CollectionDemo {
    public static void main(String[] args) {
        // 创建一个HashMap,键是String,值是Integer
        Map<String, Integer> scores = new HashMap<>();

        // 添加数据 (put)
        scores.put("Alice", 90);
        scores.put("Bob", 85);
        scores.put("Alice", 95); // 更新Alice的分数

        // 获取数据 (get)
        System.out.println(scores.get("Alice")); // 输出 95

        // 遍历
        for (Map.Entry<String, Integer> entry : scores.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

九、面向对象高级特性

Java 的面向对象特性比 Python 更加严格和显式。

1. 接口

Python 有“鸭子类型”(只要看起来像鸭子,叫起来像鸭子,就是鸭子),而 Java 有接口。接口定义了一组规范,实现接口的类必须遵守这些规范。

// 定义接口
interface Animal {
    void speak(); // 接口中的方法默认是抽象的
}

// 实现接口
class Dog implements Animal {
    @Override
    public void speak() {
        System.out.println("汪汪汪");
    }
}

2. 抽象类

介于普通类和接口之间。它不能被实例化,只能被继承。

abstract class Vehicle {
    // 普通方法
    public void run() {
        System.out.println("交通工具在跑");
    }

    // 抽象方法,子类必须实现
    abstract void stop();
}

十、Java 的特有语法糖

1. 泛型

Python 的列表可以放任何类型([1, "a", True]),但 Java 推荐使用泛型来保证类型安全,避免运行时错误。

// 只允许存放字符串的列表
ArrayList<String> list = new ArrayList<>();
list.add("Hello");
// list.add(100); // 报错!编译不通过

2. 注解

类似于 Python 的装饰器,用于给代码添加元数据。

@Override // 告诉编译器这个方法重写了父类的方法
public void speak() {
    // ...
}

十一、后续学习路线建议

学完上述内容,你已经具备了 Java 的基础。接下来的进阶路线如下:

1.多线程与并发:Java 在并发处理上非常强大(Thread, Runnable, 线程池),这是 Java 区别于 Python(受 GIL 限制)的一大优势。
2.IO 与 NIO:学习如何高效地进行文件读写和网络通信。
3.数据库连接:学习 JDBC,连接 MySQL 或 Oracle 数据库。

4.主流框架:

        Spring Boot:这是 Java 开发的绝对核心。目前 90% 的 Java 岗位都在用 Spring 全家桶。它简化了配置,让你能快速搭建 Web 服务。
        MyBatis:用于简化数据库操作的持久层框架。

总结

Python 像是一把瑞士军刀,轻便灵活,适合脚本、AI 和快速开发;而 Java 像是一套精密的重型机床,虽然上手稍慢,代码繁琐,但适合构建大型、高并发、高稳定性的企业级系统。掌握这两门语言,你将拥有极其宽广的技术视野!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐