一文吃透 JavaSE 核心知识点:从基础到进阶(附实战案例)
JavaSE(Java Standard Edition)是 Java 技术体系的基础,也是后端开发、Android 开发、大数据开发等方向的核心基石。本文将系统梳理 JavaSE 的核心知识点,从语法基础到高级特性,结合实战案例帮助开发者夯实基础,同时补充阿里云环境下 JavaSE 程序的部署与运行方案。
一、JavaSE 核心知识体系
基础语法与面向对象
(1)核心语法要素
数据类型:8 大基本数据类型(byte/short/int/long/float/double/char/boolean)与引用数据类型(类、接口、数组)的区别,以及自动装箱 / 拆箱的底层原理。
流程控制:分支(if-else/switch)、循环(for/while/do-while)、跳转语句(break/continue/return)的最佳实践。
异常处理:try-catch-finally 异常捕获机制,受检异常(Checked Exception)与非受检异常(Unchecked Exception)的区分,自定义异常的实现。
(2)面向对象三大特性
封装:通过访问修饰符(public/private/protected/default)隐藏内部实现,暴露统一接口,示例:
java
运行
public class User {
private String name;
private int age;public String getName() {
return name;}
public void setName(String name) {
this.name = name;}
}
继承:通过extends关键字实现父类方法复用,super关键字的使用,注意 Java 单继承的限制。
多态:编译时多态(方法重载)与运行时多态(方法重写),父类引用指向子类对象的核心原理。- 容器(集合)框架
JavaSE 的集合框架是开发中高频使用的核心组件,核心接口与实现类如下:
接口 核心实现类 特点 适用场景
List ArrayList/LinkedList 有序可重复 数据有序存储、频繁查询
Set HashSet/TreeSet 无序不可重复 去重、排序存储
Map HashMap/TreeMap 键值对存储 快速键值查找
实战案例:基于HashMap实现简单的用户信息缓存:
java
运行
import java.util.HashMap;
import java.util.Map;
public class UserCache {
private static Map userMap = new HashMap<>();
// 添加用户缓存
public static void addUser(String userId, User user) {
userMap.put(userId, user);
}
// 获取用户信息
public static User getUser(String userId) {
return userMap.get(userId);
}
}
- 多线程编程
多线程是 JavaSE 的核心难点,也是面试高频考点:
线程创建方式:继承Thread类、实现Runnable接口、实现Callable接口(带返回值)。
线程状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Dead),以及wait()/notify()/sleep()对状态的影响。
线程安全:同步代码块(synchronized)、同步方法、Lock锁(ReentrantLock)的使用,解决线程安全问题。
线程池:Executors工具类创建线程池(FixedThreadPool/CachedThreadPool),以及ThreadPoolExecutor自定义线程池的核心参数(核心线程数、最大线程数、空闲时间等)。 - IO 流与 NIO
IO 流:字节流(InputStream/OutputStream)与字符流(Reader/Writer)的区别,文件读写、缓冲流(BufferedReader/BufferedWriter)提升读写效率。
NIO:JDK 1.4 引入的非阻塞 IO,核心组件(Buffer/Channel/Selector),适用于高并发场景下的 IO 操作。 - 反射与注解
反射:通过Class类动态获取类的属性、方法、构造器,实现动态调用(框架底层核心,如 Spring IOC)。
注解:元注解(@Target/@Retention/@Documented/@Inherited),自定义注解的实现与解析。
二、JavaSE 程序在阿里云的部署与运行
掌握 JavaSE 基础后,如何将程序部署到阿里云服务器运行是实战关键,以下是完整步骤: - 阿里云服务器环境准备
(1)购买并登录阿里云 ECS
选择合适的实例规格(入门推荐 2 核 4G),操作系统选择 CentOS 7/8。
通过 SSH 工具(Xshell/Finalshell)登录服务器:
bash
运行
ssh root@服务器公网IP
(2)安装 JDK 环境
下载 JDK(以 JDK 8 为例):
bash
运行
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
解压并配置环境变量:
bash
运行解压到/usr/local目录
tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/重命名
mv /usr/local/jdk1.8.0_202 /usr/local/jdk8配置环境变量
vi /etc/profile
在profile文件末尾添加:
bash
运行
export JAVA_HOME=/usr/local/jdk8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
生效配置并验证:
bash
运行
source /etc/profile
java -version # 输出JDK版本则配置成功 - JavaSE 程序打包与上传
(1)本地打包(Maven/Gradle)
若使用 Maven 管理项目,在pom.xml中配置打包插件:
xml
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <!-- 主类全路径 --> <mainClass>com.example.Main</mainClass> </manifest> </archive> </configuration> </plugin>
执行打包命令:
bash
运行
mvn clean package # 生成的jar包在target目录下
(2)上传 jar 包到阿里云
使用scp命令上传本地 jar 包到服务器:
bash
运行
scp 本地jar包路径 root@服务器公网IP:/usr/local/javaSE/ - 运行 JavaSE 程序
(1)基础运行方式
bash
运行进入jar包目录
cd /usr/local/javaSE/运行jar包
java -jar 你的程序.jar
(2)后台运行(避免终端关闭程序停止)
bash
运行
nohup java -jar 你的程序.jar > app.log 2>&1 &查看运行日志
tail -f app.log停止程序
ps -ef | grep java # 查找进程ID
kill -9 进程ID
(3)设置开机自启(可选)
创建服务文件:
bash
运行
vi /usr/lib/systemd/system/javase-app.service
写入以下内容:
ini
[Unit]
Description=JavaSE Application
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/jdk8/bin/java -jar /usr/local/javaSE/你的程序.jar
ExecStop=/bin/kill -9 $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
生效并设置开机自启:
bash
运行
systemctl daemon-reload
systemctl start javase-app
systemctl enable javase-app # 开机自启
三、JavaSE 高频面试与实战要点
- 核心面试题
HashMap的底层实现(JDK7 vs JDK8):数组 + 链表 vs 数组 + 链表 / 红黑树,扩容机制(负载因子 0.75)。
线程池的核心参数与拒绝策略:corePoolSize、maximumPoolSize、keepAliveTime、workQueue,以及AbortPolicy/CallerRunsPolicy等拒绝策略。
equals()与hashCode()的关系:重写equals()必须重写hashCode(),保证相同对象的hashCode一致。 - 实战优化建议
集合使用:频繁增删选LinkedList,频繁查询选ArrayList;HashMap在已知元素数量时指定初始容量,减少扩容次数。
多线程:避免手动创建线程,优先使用线程池;synchronized锁粒度尽可能小,减少竞争。
IO 操作:使用缓冲流提升读写效率,及时关闭流资源(推荐try-with-resources语法)。
四、总结
JavaSE 是 Java 技术的根基,掌握其核心知识点(面向对象、集合、多线程、IO 等)是进阶的前提。本文不仅梳理了核心知识体系,还补充了阿里云环境下 JavaSE 程序的部署流程,帮助开发者从 “会写代码” 到 “能部署运行”。建议结合实战案例反复练习,同时关注 JDK 新版本(如 JDK17 LTS)的特性,持续夯实基础。
扩展学习资源
官方文档:Java SE Documentation
实战书籍:《Java 编程思想》《Effective Java》
阿里云文档:ECS 服务器 Java 环境部署