首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 极速入门指南(一):从零构建核心知识体系

     編輯:Java 綜合教學

一、什么是 Java 技术?为何选择 Java?

Java 是由 Sun Microsystems(现属 Oracle)于 1995 年发布的编程语言与计算平台。凭借跨平台、面向对象、自动内存管理、丰富生态四大核心优势,长期占据 TIOBE 排行榜前三,成为企业级开发、Android 开发、大数据、云原生微服务的首选语言。

「一次编写,到处运行」 —— Java 字节码 + JVM 抽象了底层操作系统与硬件差异,实现了真正的平台无关性。

核心特性速览

特性说明
面向对象封装、继承、多态,代码复用与维护的基石
跨平台源码 → 字节码 → JVM 解释/编译执行,屏蔽 OS/硬件差异
自动垃圾回收 (GC)托管内存,消除手动 malloc/free,防止内存泄漏与悬空指针
多线程内置支持Thread、并发包、锁、线程池,原生支持高并发编程
安全性字节码校验、类加载器隔离、安全管理器、无指针运算
泛型/注解/Lambda/模块化现代语言特性持续演进 (Java 5/8/9/11/17/21 LTS)

二、Java 技术体系三大架构

  • Java SE (Standard Edition):核心 API、JVM、基础库 —— 所有的基础
  • Java EE / Jakarta EE (Enterprise Edition):Servlet、JPA、CDI、JTA 等企业级规范 —— Web/分布式应用标准
  • Java ME (Micro Edition):嵌入式、移动设备精简版 —— 物联网、特种设备

学习路径建议:Java SE 核心 → Java Web (Servlet/JSP/Filter) → Spring 生态 → 中间件/分布式/架构

三、运行环境:JDK / JRE / JVM 关系

JDK (Java Development Kit) = JRE + 开发工具 (javac, jdb, jconsole, jvisualvm, jcmd...)
    │
    └── JRE (Java Runtime Environment) = JVM + 核心类库 (rt.jar/modules)
            │
            └── JVM (Java Virtual Machine) = 类加载器 + 运行时数据区 + 执行引擎 + 本地库接口

核心命令

javac HelloWorld.java   # 编译:.java → .class (字节码)
java HelloWorld         # 运行:启动 JVM → 加载类 → 执行 main 方法
# 入口必须为:public static void main(String[] args)

.class 文件结构

  • 常量池:类名、字段名、方法引用、字面量、符号引用
  • 方法字节码:各方法的指令流、异常表、行号表、局部变量表

四、HelloWorld 与程序结构

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
  • class:类声明,编译单元
  • public static void main:JVM 识别的启动入口
  • System.out.println:标准输出流打印

五、基本数据类型:4 类 8 种

类别类型位数默认值取值范围 / 说明
逻辑boolean1 位 (JVM 实现通常 1 字节)falsetrue / false
文本char16 位'\u0000'Unicode 字符,0 ~ 65535
整数byte8 位0-128 ~ 127
short16 位0-32,768 ~ 32,767
int32 位0-2^31 ~ 2^31-1
long64 位0L-2^63 ~ 2^63-1
浮点float32 位0.0f单精度,~7 位有效数字,后缀 f/F
double64 位0.0双精度,~15 位有效数字,默认实数类型

关键细节

  • 实数常量默认 double:float f = 1.3; ❌ 编译报错 → float f = 1.3f; ✅
  • 整数常量默认 int:long l = 8888888888; ❌ → long l = 8888888888L; ✅
  • byte/short/char 运算自动提升为 int:byte a=1, b=2; byte c = a + b; ❌ → byte c = (byte)(a + b); ✅
  • 进制表示:八进制 0123、十六进制 0xFF、二进制 0b1010 (Java 7+)
  • 转义字符:\n 换行、\t 制表、\r 回车、\\ 反斜杠、\" 双引号、\' 单引号

六、类型转换规则

自动类型提升 (隐式)

byte → short/char → int → long → float → double
// 容量小 → 容量大,精度不降低
// byte/short/char 互不相互提升,参与运算先转 int

强制类型转换 (显式)

double d = 3.14;
int i = (int) d; // 3,截断小数,可能溢出
long l = 300;
byte b = (byte) l; // 44 (300 % 256),高位截断

混合运算提升规则

  • 所有操作数先转为表达式中最高精度类型
  • 再进行运算
  • 结果类型即为该最高精度类型

七、运算符体系

分类运算符要点
算术+ - * / % ++ --++/-- 前缀先算后用,后缀先用后算
赋值= += -= *= /= %=复合赋值隐含强转:byte b=1; b+=2; 等价 b=(byte)(b+2)
关系> < >= <= == !=结果为 boolean,不可写 1 < x < 10
逻辑! & | ^ && ||&& 短路与,|| 短路或,^ 异或
位运算& | ^ ~ >> << >>>>> 带符号右移,>>> 无符号右移 (补 0)
三元条件 ? 值1 : 值2类型向上兼容:false ? 'a' : 8 → int 8

八、流程控制语句

循环

// for
for (int i = 0; i < 10; i++) { ... }

// 增强 for / for-each (Java 5+)
for (int num : array) { ... }

// while
while (condition) { ... }

// do-while (至少执行一次)
do { ... } while (condition);

分支

// switch (Java 12+ 支持 switch 表达式、yield)
switch (day) {
    case 1, 2, 3, 4, 5 -> System.out.println("工作日");
    case 6, 7 -> System.out.println("周末");
    default -> System.out.println("错误");
}

跳转

  • break:跳出最近循环/switch
  • continue:跳过本次循环,进入下次判断
  • return:退出方法

九、核心 API 速查

Number / Math 常用方法

Integer.parseInt("123")      // 字符串转 int
Double.valueOf(3.14).intValue() // 包装类转基本类型
Math.max/min(a, b)           // 最大/最小
Math.abs/ceil/floor/round    // 绝对值/向上/向下/四舍五入取整
Math.sqrt/pow/log/exp        // 根/幂/对数/指数
Math.sin/cos/tan             // 三角函数 (参数为弧度)
Math.random()                // [0, 1) 随机数
(int)(Math.random() * 100)   // [0, 99] 随机整数

Character 字符判断/转换

Character.isLetter/digit/whitespace/UpperCase/LowerCase(c)
Character.toUpperCase/toLowerCase(c)
Character.toString(c)

String 不可变字符序列

  • 创建:字面量 "abc" (常量池) vs new String("abc") (堆)
  • 常用:length()、charAt(i)、substring(begin, end)、indexOf/lastIndexOf、split(regex)、replace/replaceAll、toUpperCase/toLowerCase、trim()、equals/equalsIgnoreCase
  • 拼接优化:编译器自动用 StringBuilder,循环拼接手动用 StringBuilder

StringBuilder / StringBuffer 可变字符序列

  • append/insert/delete/replace/reverse
  • StringBuilder:非线程安全,高性能,首选
  • StringBuffer:线程安全 (synchronized),较慢

数组

int[] arr = new int[5];
int[] arr2 = {1, 2, 3, 4, 5};
arr[0] = 10;
Arrays.sort(arr);           // 排序
Arrays.binarySearch(arr, 3); // 二分查找 (需有序)
Arrays.fill(arr, 9);        // 填充
Arrays.equals(arr1, arr2);  // 比较
// 多维数组:int[][] matrix = new int[3][4];

日期时间 (Java 8+ java.time 包,强烈推荐)

LocalDate.now()                    // 当前日期
LocalTime.now()                    // 当前时间
LocalDateTime.now()                // 日期时间
Instant.now()                      // 时间戳 (UTC)
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(ldt)
Duration.between(start, end).toMillis() // 毫秒差
Period.between(d1, d2).getDays()   // 天数差
// 旧 API Date/Calendar/SimpleDateFormat 已不推荐使用

十、面向对象三大特性

封装

  • private 字段 + public getter/setter
  • 隐藏实现细节,控制访问权限,保证数据完整性

继承

  • extends 单继承,implements 多实现
  • super 访问父类成员,@Override 重写注解
  • 构造器链:子类构造器首行隐式/显式调用 super()

多态

  • 父类引用指向子类对象:Animal a = new Dog();
  • 编译看左边 (引用类型),运行看右边 (对象类型)
  • 方法重写实现动态分派,方法重载实现静态分派

十一、异常处理体系

Throwable
├── Error (严重错误,不可恢复:OOM, StackOverflow)
└── Exception
    ├── RuntimeException (非受检:NPE, IndexOutOfBounds, IllegalArgument)
    └── 受检异常 (IOException, SQLException, ClassNotFoundException)

try {
    // リスクコード
} catch (SpecificException e) {
    // 处理特定异常
} catch (Exception e) {
    // 兜底
} finally {
    // 资源释放 (JDK 7+ try-with-resources 自动关闭 AutoCloseable)
}

十二、包装类与自动拆装箱 (Java 5+)

Integer i = 100;        // 自动装箱: Integer.valueOf(100) [-128, 127] 缓存
int n = i;              // 自动拆箱: i.intValue()
Integer a = 100, b = 100;
System.out.println(a == b); // true (缓存命中)
Integer c = 200, d = 200;
System.out.println(c == d); // false (新对象,比较引用)
System.out.println(c.equals(d)); // true (比较值)

总结与下一步

本文构建了 Java 入门的核心知识骨架:环境、语法、类型、流程、核心 API、OO 基础、异常、包装类。建议后续按以下路径深入:

  1. 集合框架:List/Set/Map/Queue 实现原理与选型
  2. 泛型与反射:类型擦除、泛型通配符、Class 对象操作
  3. 多线程与并发:JMM、锁、线程池、JUC 组件、AQS
  4. JVM 原理:内存模型、GC 算法、类加载、性能调优
  5. IO/NIO/AIO:流、通道、选择器、零拷贝、Netty
  6. 常用框架:Spring/Spring Boot、MyBatis、Redis、MQ、注册中心

代码不在于多,在于精。每个知识点都要能写出正确、规范、可运行的示例代码。动手敲代码,才是通往 Java 精通的唯一捷径。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved