Java编程从入门到实战熟练

一、Java编程简介

Java 是一种跨平台、面向对象的编程语言,广泛用于企业级开发、移动开发(Android)、大数据、金融系统等。其主要特点:

  • 一次编写,到处运行(WORA)
  • 完善的类库和生态
  • 安全、稳定、可扩展

二、开发环境搭建

  1. 安装JDK(Java Development Kit)
  2. 前往 Oracle官网 下载 JDK 17 或更高版本
  3. 安装后配置环境变量:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk

export PATH=$JAVA_HOME/bin:$PATH

java -version

  1. 验证是否安装成功:

java -version

  1. 安装IDE
  2. 推荐 IntelliJ IDEA 或 Eclipse
  3. IDEA优点:智能提示、快捷调试、强劲的插件生态

三、Java核心基础(入门必学)

知识点

说明

数据类型

基本类型:int、double、boolean、char;引用类型:String、数组

控制流

if/else、switch、for、while、do-while

面向对象

类、对象、继承、多态、封装、接口

常用API

String、Collections、Date/Time API

异常处理

try/catch/finally、throw、throws

I/O流

FileInputStream、BufferedReader、NIO

多线程

Thread、Runnable、线程池、并发包

四、进阶知识

  1. 泛型与集合框架
  2. ArrayList、HashMap、HashSet、ConcurrentHashMap
  3. JVM与内存模型
  4. JVM结构、GC垃圾回收、类加载机制
  5. 多线程与并发编程
  6. ExecutorService、Future、CompletableFuture
  7. 网络编程
  8. Socket、HttpClient、REST API 调用

五、Java开发最佳实践

  • 编码规范:遵循阿里巴巴Java开发手册
  • 单元测试:JUnit + Mockito
  • 构建工具:Maven/Gradle
  • 持续集成:Jenkins、GitHub Actions

六、实战案例(从入门到熟练)

案例1:简单控制台应用 —— 学生成绩管理系统

功能: 增加、查询、删除学生成绩。

import java.util.HashMap;

import java.util.Scanner;

public class StudentGradeManager {

public static void main(String[] args) {

HashMap<String, Integer> grades = new HashMap<>();

Scanner sc = new Scanner(System.in);

while (true) {

System.out.println(“1.添加成绩 2.查看成绩 3.退出”);

int choice = sc.nextInt();

switch (choice) {

case 1:

System.out.print(“输入学生姓名:”);

String name = sc.next();

System.out.print(“输入成绩:”);

int score = sc.nextInt();

grades.put(name, score);

break;

case 2:

System.out.println(“成绩列表:” + grades);

break;

case 3:

System.exit(0);

}

}

}

}

练习点: HashMap、Scanner、控制流。

案例2:多线程爬取网页数据

功能: 使用多线程抓取网页标题

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URL;

public class WebCrawlerThread extends Thread {

private final String url;

public WebCrawlerThread(String url) {

this.url = url;

}

public void run() {

try {

URL site = new URL(url);

BufferedReader in = new BufferedReader(new InputStreamReader(site.openStream()));

String line;

while ((line = in.readLine()) != null) {

if (line.contains(“<title>”)) {

System.out.println(“URL: ” + url + ” 标题: ” + line.trim());

}

}

in.close();

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

String[] urls = {“https://www.oracle.com”, “https://openjdk.org”};

for (String url : urls) {

new WebCrawlerThread(url).start();

}

}

}

练习点: 多线程、网络编程。

案例3:Spring Boot Web应用

功能: 创建一个REST API输出Hello World

  1. 创建项目:

mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

  1. 修改 pom.xml 添加Spring Boot依赖
  2. 编写控制器:

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class HelloController {

@GetMapping(“/hello”)

public String hello() {

return “Hello, Spring Boot!”;

}

}

  1. 启动应用访问 http://localhost:8080/hello

练习点: Maven、Spring Boot、REST API。

案例4:数据库访问(JDBC + MySQL)

import java.sql.*;

public class JDBCExample {

public static void main(String[] args) {

String url = “jdbc:mysql://localhost:3306/test”;

String user = “root”;

String password = “123456”;

try (Connection conn = DriverManager.getConnection(url, user, password)) {

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(“SELECT * FROM users”);

while (rs.next()) {

System.out.println(rs.getString(“name”));

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

练习点: JDBC、数据库操作。

案例5:微服务与容器化(进阶)

  • 将Spring Boot应用打包成Docker镜像

docker build -t java-demo .

docker run -p 8080:8080 java-demo

  • 部署到Kubernetes集群进行扩容与管理

七、进阶与扩展

  • 学习框架:Spring、Spring Cloud、MyBatis、Hibernate
  • 学习分布式:Dubbo、Kafka、Redis、消息队列
  • 云原生方向:Kubernetes、Docker、微服务治理
  • 面试准备:多线程、JVM调优、架构设计

八、总结

  • 入门阶段:掌握Java语法与基本API
  • 进阶阶段:掌握多线程、JVM、Spring Boot、数据库
  • 实战阶段:做项目练习(如管理系统、爬虫、Web服务、微服务部署)
  • 持续提升:多写代码、多看源码、多实践
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
激情的潜水王的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容