Java入门指南:从环境配置到面向对象
目录
一、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 像是一套精密的重型机床,虽然上手稍慢,代码繁琐,但适合构建大型、高并发、高稳定性的企业级系统。掌握这两门语言,你将拥有极其宽广的技术视野!
更多推荐

所有评论(0)