Java作为一门广泛应用的编程语言,其基础知识是踏入软件开发领域的重要基石。无论是零基础入门,还是需要巩固核心能力的开发者,系统掌握Java基础都是提升技术水平的关键。本文将从语言概述、核心语法到高级特性(基础层面),为你构建清晰的学习路径,助你高效掌握Java编程的核心逻辑。
Java由Sun Microsystems公司于1995年推出,凭借一次编写,到处运行(Write Once, Run Anywhere, WORA)的跨平台特性,迅速成为企业级开发、移动应用开发(Android)、大数据等领域的主流语言。其核心优势包括:面向对象、健壮性(自动垃圾回收、异常处理)、安全性(字节码验证)及丰富的生态系统。
学习Java的第一步是搭建开发环境,核心工具为JDK(Java Development Kit)。安装步骤如下:
java -version
验证安装是否成功推荐使用集成开发工具(IDE)提升效率,如IntelliJ IDEA、Eclipse,它们提供代码提示、调试、项目管理等功能,适合初学者快速上手。
通过经典的Hello World程序,理解Java程序的基本结构:
public class HelloWorld {
public static void main(String[] args) {
System.out.println(Hello, World!);
}
}
解析:public class
定义类名(文件名需与类名一致),main
方法是程序入口,System.out.println()
用于输出内容。运行时需通过命令行编译(javac HelloWorld.java
)生成字节码文件,再通过java HelloWorld
执行。
Java是强类型语言,所有变量必须先声明类型再赋值。数据类型分为两大类:
变量命名规则:由字母、数字、下划线、$组成,不能以数字开头,区分大小写,避免使用Java关键字(如class, if, for)。
Java提供丰富的运算符,包括:
示例:int a = 10; int b = 3; System.out.println(a / b); // 输出3(整数除法取整)
控制程序执行顺序的语句,包括条件判断和循环:
条件判断:
if-else
:单条件分支,如if (score >= 60) { System.out.println(及格); } else { System.out.println(不及格); }
switch-case
:多值匹配,如switch (day) { case 1: System.out.println(周一); break; ... }
循环:
for
循环:固定次数循环,如for (int i = 0; i < 5; i++) { ... }
while
循环:条件满足时执行,如int i = 0; while (i < 5) { i++; ... }
do-while
循环:先执行一次再判断条件,如int i = 0; do { ... } while (i < 5);
Java是面向对象的语言,核心概念是类与对象:
new
关键字创建,如Student s = new Student();
示例:定义一个学生类
public class Student {
// 属性(成员变量)
String name;
int age;
// 行为(成员方法)
void study() {
System.out.println(name + 正在学习Java);
}
}
创建对象并使用:Student s = new Student(); s.name = 张三; s.age = 20; s.study();
面向对象的三大特性是Java编程的核心思想:
private int age; public int getAge() { return age; }
extends
关键字实现类的继承,子类可复用父类的属性和方法,实现代码复用。如:public class Undergraduate extends Student { ... }
Student s = new Undergraduate(); s.study();
String是Java中最常用的引用类型之一,用于表示字符串。注意:String对象是不可变的(每次修改都会创建新对象),因此频繁修改字符串时建议使用StringBuilder或StringBuffer(线程安全)。常用方法:
length()
:返回字符串长度charAt(int index)
:获取指定位置字符equals(String str)
:比较字符串内容(避免使用==直接比较)substring(int beginIndex)
/ substring(int beginIndex, int endIndex)
:截取子串split(String regex)
:按正则表达式分割字符串Java为8种基本数据类型提供了对应的包装类:Integer、Double、Boolean等,实现基本类型与引用类型的转换。JDK 5.0后引入自动装箱(基本类型→包装类)和自动拆箱(包装类→基本类型),简化代码:int a = 10; Integer b = a; // 自动装箱 int c = b; // 自动拆箱
Java 8之前使用Date、SimpleDateFormat处理日期时间,存在线程不安全等问题。Java 8引入新的日期时间API(java.time包),包括LocalDate、LocalTime、LocalDateTime等,线程安全且易用。示例:LocalDateTime now = LocalDateTime.now(); System.out.println(now.getYear()); // 获取年份
集合框架(Collection Framework)用于存储和操作对象,主要分为两大类:
List接口:通过索引访问元素,支持添加、删除、修改。示例:
List<String> list = new ArrayList<>();
list.add(Java); // 添加元素
list.get(0); // 获取第一个元素
list.remove(1); // 删除第二个元素
Map接口:通过键获取值,键唯一。示例:
Map<String, Integer> map = new HashMap<>();
map.put(Java, 90); // 添加键值对
map.get(Java); // 获取Java对应的值
map.keySet(); // 获取所有键
异常是程序运行过程中发生的错误或意外情况,Java通过异常处理机制统一管理。异常体系以Throwable为父类,分为两大类:
通过try-catch-finally捕获和处理异常:
try {
// 可能发生异常的代码
int result = 10 / 0;
} catch (ArithmeticException e) {
// 捕获特定异常并处理
System.out.println(除数不能为0);
} finally {
// 无论是否发生异常,都会执行的代码(如释放资源)
System.out.println(程序执行完毕);
}
还可通过throw关键字手动抛出异常:if (age < 0) throw new IllegalArgumentException(年龄不能为负数);
线程是程序执行的路径,Java中创建线程有两种方式:
public class MyThread extends Thread { public void run() { ... } }
,启动时调用start()方法(而非直接run())public class MyRunnable implements Runnable { public void run() { ... } }
,通过Thread target = new Thread(new MyRunnable()); target.start();线程生命周期包括:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Terminated)。多线程并发时可能出现线程安全问题(如数据不一致),需通过同步机制解决:
IO流用于数据的输入输出,按数据单位分为:
字节流示例(文件读写):
// 读取文件
try (FileInputStream fis = new FileInputStream(test.txt)) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, len));
}
}
// 写入文件
try (FileOutputStream fos = new FileOutputStream(output.txt)) {
String content = Hello IO流;
fos.write(content.getBytes());
}
(try-with-resources语法自动关闭流资源)
字符流示例:使用BufferedReader和BufferedWriter高效读写文本
try (BufferedReader br = new BufferedReader(new FileReader(test.txt));
BufferedWriter bw = new BufferedWriter(new FileWriter(output.txt))) {
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
}
}
掌握Java基础知识是一个循序渐进的过程,建议按以下步骤学习:
学习过程中,建议多动手编写代码,