1. 编写代码
新建文本文件,命名为 HelloWorld.java(文件名必须与 public 类名完全一致):
java
运行
// 单行注释
/*
多行注释
*/
public class HelloWorld {
// 程序入口:固定格式,不可修改
public static void main(String[] args) {
// 输出语句:控制台打印文字
System.out.println("Hello, Java! 你好,世界!");
}
}
2. 编译与运行
-
打开 CMD,进入文件所在目录:
bash
运行
cd D:\Java\code -
编译(.java → .class 字节码):
bash
运行
javac HelloWorld.java -
运行(JVM 执行 .class):
bash
运行
java HelloWorld -
输出:
plaintext
Hello, Java! 你好,世界!
3. 核心语法说明
public class HelloWorld:定义公共类,文件名必须一致。public static void main(String[] args):程序入口方法,JVM 从此开始执行。System.out.println("..."):控制台打印并换行。- Java 严格区分大小写,语句以
;结尾。
三、Java 基础语法(核心)
1. 标识符与关键字
-
标识符(命名规则):
- 由 字母、数字、下划线 _、美元符 $ 组成。
- 不能以数字开头,不能用关键字。
- 见名知意:
age、studentName(驼峰命名)。
-
关键字:Java 预留的特殊单词(如
public、class、static、int),不能用作变量名。
2. 数据类型(强类型语言)
(1)基本数据类型(8 种)
表格
| 类型 | 关键字 | 大小 | 取值范围 | 示例 |
|---|---|---|---|---|
| 字节型 | byte | 1 字节 | -128 ~ 127 | byte b=100; |
| 短整型 | short | 2 字节 | -32768 ~ 32767 | short s=200; |
| 整型 | int | 4 字节 | -2³¹ ~ 2³¹-1 | int age=25; |
| 长整型 | long | 8 字节 | -2⁶³ ~ 2⁶³-1 | long l=1000L;(加 L) |
| 单精度 | float | 4 字节 | 6~7 位小数 | float f=3.14F;(加 F) |
| 双精度 | double | 8 字节 | 15 位小数 | double pi=3.14159; |
| 字符型 | char | 2 字节 | 单个字符 / Unicode | char c='A'; |
| 布尔型 | boolean | 1 位 | true / false | boolean flag=true; |
(2)引用数据类型
- 类(
String、自定义类)、接口、数组、枚举等。 - 示例:
String name="张三";(字符串用双引号)。
3. 变量与常量
-
变量:存储数据的容器,先声明后使用。
java
运行
// 声明 + 赋值 int num; // 声明 num=10; // 赋值 int score=90; // 声明并赋值 -
常量:值不可修改,用
final修饰。java
运行
final double PI=3.1415926;
4. 运算符
-
算术:
+、-、*、/、%(取余)、++、-- -
赋值:
=、+=、-=、*=、/= -
比较:
==、!=、>、<、>=、<=(结果为 boolean) -
逻辑:
&&(与)、||(或)、!(非) -
三元:
条件 ? 表达式1 : 表达式2java
运行
int max = a>b ? a : b;
5. 控制语句
(1)条件判断
-
if-else
java
运行
int score=85; if(score>=90){ System.out.println("优秀"); }else if(score>=60){ System.out.println("及格"); }else{ System.out.println("不及格"); } -
switch(匹配常量:int、char、String、枚举)
java
运行
String day="周一"; switch(day){ case "周一": System.out.println("上班"); break; case "周日": System.out.println("休息"); break; default: System.out.println("其他"); }
(2)循环结构
-
for 循环(最常用)
java
运行
// 打印 1~10 for(int i=1; i<=10; i++){ System.out.println(i); } -
while 循环
java
运行
int i=1; while(i<=10){ System.out.println(i); i++; } -
do-while(先执行一次,再判断)
java
运行
int i=1; do{ System.out.println(i); i++; }while(i<=10); -
break:跳出循环;continue:跳过本次循环
6. 数组
-
声明与初始化:
java
运行
// 方式1 int[] arr=new int[5]; // 长度5,默认值0 arr[0]=10; arr[1]=20; // 方式2 int[] nums={1,2,3,4,5}; -
遍历:
java
运行
for(int i=0; i<nums.length; i++){ System.out.println(nums[i]); } // 增强for for(int num : nums){ System.out.println(num); }
四、面向对象编程(OOP)—— Java 核心
1. 类与对象
- 类:抽象模板(属性 + 行为)
- 对象:类的具体实例(new 出来)
示例:定义 Student 类
java
运行
// 类
public class Student {
// 成员变量(属性)
String name;
int age;
// 成员方法(行为)
public void study(){
System.out.println(name+"在学习");
}
}
// 测试类
public class Test {
public static void main(String[] args) {
// 创建对象
Student s=new Student();
// 赋值
s.name="张三";
s.age=20;
// 调用方法
s.study(); // 输出:张三在学习
}
}
2. 构造方法
- 用于创建对象并初始化,方法名与类名相同,无返回值。
java
运行
public class Student {
String name;
int age;
// 无参构造(默认存在)
public Student(){}
// 有参构造
public Student(String name, int age){
this.name=name; // this:当前对象
this.age=age;
}
public void study(){
System.out.println(name+"在学习");
}
}
// 使用
Student s=new Student("李四",21);
s.study();
3. 三大特性
(1)封装
- 私有化属性(
private),提供get/set方法访问。
java
运行
public class Person {
// 私有属性
private String name;
private int age;
// get/set
public String getName(){ return name; }
public void setName(String name){ this.name=name; }
public int getAge(){ return age; }
public void setAge(int age){
if(age>0 && age<120){
this.age=age;
}else{
System.out.println("年龄非法");
}
}
}
(2)继承
- extends:子类继承父类,获得父类属性与方法,单继承。
java
运行
// 父类
public class Animal {
public void eat(){
System.out.println("动物吃东西");
}
}
// 子类
public class Dog extends Animal {
// 重写方法
@Override
public void eat(){
System.out.println("狗吃骨头");
}
// 子类特有方法
public void bark(){
System.out.println("汪汪汪");
}
}
// 使用
Dog dog=new Dog();
dog.eat(); // 狗吃骨头
dog.bark();
(3)多态
- 父类引用指向子类对象,方法重写实现多态。
java
运行
Animal an=new Dog();
an.eat(); // 狗吃骨头(调用子类重写方法)
4. 常用关键字
-
private:私有,仅本类可见 -
public:公共,所有类可见 -
protected:同包、子类可见 -
static:静态(属于类,不属于对象)- 静态变量:
static int count; - 静态方法:
public static void method(){}(直接用类名调用)
- 静态变量:
-
final:- 类:不能被继承
- 方法:不能被重写
- 变量:常量(不能修改)
五、Java 核心 API(常用类)
1. String(字符串)
- 不可变对象,常用方法:
java
运行
String s="Hello Java";
s.length(); // 长度
s.equals("abc"); // 比较内容
s.charAt(0); // 获取第0个字符
s.substring(0,5); // 截取[0,5)
s.indexOf("Java");// 查找索引
s.split(" "); // 分割
2. 集合框架(替代数组)
- ArrayList(动态数组,最常用)
java
运行
import java.util.ArrayList;
public class ListTest {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
list.add("张三");
list.add("李四");
list.get(0); // 获取
list.size(); // 长度
list.remove(0); // 删除
// 遍历
for(String s : list){
System.out.println(s);
}
}
}
- HashMap(键值对)
java
运行
import java.util.HashMap;
HashMap<String,Integer> map=new HashMap<>();
map.put("张三",20);
map.get("张三"); // 20
map.containsKey("李四");
3. 异常处理
try-catch-finally:捕获并处理异常
java
运行
try{
// 可能出错的代码
int a=10/0;
}catch(ArithmeticException e){
// 捕获异常
System.out.println("除数不能为0");
e.printStackTrace(); // 打印异常信息
}finally{
// 无论是否异常,都会执行(释放资源)
System.out.println("finally执行");
}
4. 输入输出(Scanner)
java
运行
import java.util.Scanner;
public class InputTest {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入姓名:");
String name=sc.next();
System.out.print("请输入年龄:");
int age=sc.nextInt();
System.out.println("姓名:"+name+",年龄:"+age);
sc.close();
}
}
六、入门实战:学生管理系统(简易)
java
运行
import java.util.ArrayList;
import java.util.Scanner;
// 学生类
class Student{
private String id;
private String name;
private int age;
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
// get/set
public String getId() {return id;}
public String getName() {return name;}
public int getAge() {return age;}
@Override
public String toString() {
return "学号:"+id+",姓名:"+name+",年龄:"+age;
}
}
// 主类
public class StudentManager {
private static ArrayList<Student> list=new ArrayList<>();
private static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
while(true){
System.out.println("===学生管理系统===");
System.out.println("1. 添加学生");
System.out.println("2. 查询所有");
System.out.println("3. 删除学生");
System.out.println("0. 退出");
System.out.print("请选择:");
int choice=sc.nextInt();
switch(choice){
case 1: addStudent(); break;
case 2: findAll(); break;
case 3: deleteStudent(); break;
case 0: System.out.println("退出成功"); return;
default: System.out.println("输入错误");
}
}
}
// 添加
private static void addStudent(){
System.out.print("输入学号:");
String id=sc.next();
System.out.print("输入姓名:");
String name=sc.next();
System.out.print("输入年龄:");
int age=sc.nextInt();
list.add(new Student(id,name,age));
System.out.println("添加成功");
}
// 查询
private static void findAll(){
if(list.isEmpty()){
System.out.println("无学生信息");
return;
}
for(Student s : list){
System.out.println(s);
}
}
// 删除
private static void deleteStudent(){
System.out.print("输入要删除的学号:");
String id=sc.next();
for(int i=0; i<list.size(); i++){
if(list.get(i).getId().equals(id)){
list.remove(i);
System.out.println("删除成功");
return;
}
}
System.out.println("学号不存在");
}
}
七、学习路线与建议
- 第一阶段(1-2 周) :环境搭建 → 基础语法 → 数组 → 方法
- 第二阶段(2-3 周) :面向对象(类、对象、继承、多态、封装)
- 第三阶段(3-4 周) :常用 API(String、集合、异常、IO)
- 第四阶段:进阶(多线程、网络、数据库 JDBC、框架 SpringBoot)
学习建议
- 多敲代码:看懂≠会写,每个知识点必须手动敲 3 遍以上。
- 先理解再记忆:不要死记语法,理解原理更重要。
- 做小项目:计算器、管理系统、猜数字游戏,巩固知识。
- 看官方文档 + 经典书籍:《Java 核心技术卷 Ⅰ》《Head First Java》
八、常见问题
- 环境变量配置失败:检查路径是否正确、无中文、重启 CMD。
- 报错:找不到或无法加载主类:文件名与类名不一致、编译 / 运行命令错误。
- 空指针异常(NullPointerException) :对象未
new就调用方法 / 属性。
需要我把这份教程整理成一份可直接复制的 Java 入门学习清单(按天规划 + 每日练习题),方便你循序渐进练