当前位置: 首页 > news >正文

WEB 前端学 JAVA(二)Java 的发展与技术图谱简介

Java 的发展与技术图谱简介

一、Java的发展历程(技术演进与生态布局)

1991-1995 萌芽期

  • 1991年:Sun公司James Gosling团队开发Oak语言(Java前身),目标家电嵌入式系统
  • 1995年:正式命名Java,随网景浏览器推出,凭借"一次编写,到处运行"理念引爆互联网革命

2000-2010 企业级统治

  • 2000年:Java 2平台确立(J2SE/J2EE/J2ME),Servlet/JSP推动Web开发黄金时代
  • 2004年:Java 5(1.5)引入泛型、注解、自动装箱,企业级框架(Spring/Hibernate)爆发

2010-2020 开源与云转型

  • 2010年:Oracle收购Sun,Java开源(GPLv2协议)
  • 2014年:Java 8发布Lambda表达式,函数式编程推动大数据(Hadoop/Spark)生态
  • 2018年:模块化(Jigsaw)JDK 9,适配云原生微服务架构

2020至今 持续进化

  • 2021年:Java 17成为LTS(长期支持)版本,增强密封类、模式匹配
  • 2023年:JDK 21引入虚拟线程(Project Loom),百万级并发编程革命

二、Java的技术版图(覆盖全栈开发场景)

▶ 基础层:Java SE(标准库)
  • 桌面开发:Swing/AWT(传统)→ JavaFX(现代UI),典型应用:IntelliJ IDEA
  • 基础服务:网络编程(NIO 2.0)、多线程(并发包)、JSON处理(Jackson)
  • 嵌入式:树莓派等物联网设备(替代部分Java ME场景)
▶ 移动端:Android开发(Java/Kotlin双生态)
  • 历史:早期Java ME(功能机时代)→ 2008年Android崛起,Dalvik VM→ART(Java转字节码)
  • 现状:全球85%手机系统,Jetpack组件库驱动现代化移动端开发
▶ 企业级:Java EE → Jakarta EE(云原生进化)
  • Web开发:Spring Boot(简化配置)、Spring Cloud(微服务)、Quarkus(低延迟云函数)
  • 分布式架构:Kubernetes+Docker容器化,典型案例:阿里电商、银行核心系统
  • 大数据:Hadoop(Java编写)、Spark(Scala/Java双语言),处理PB级数据
▶ 新兴领域
  • 区块链:Hyperledger Fabric(Java智能合约)
  • 游戏开发:LibGDX框架(跨平台2D游戏,如《愤怒的小鸟》早期版本)
  • AI/ML:Deeplearning4j(Java版深度学习框架)

三、跨平台原理:JVM的"翻译官"角色

核心机制

.java源文件 → javac编译 → .class字节码(平台无关) → JVM解释执行(+JIT编译优化)

三层抽象

  1. 字节码统一:所有平台的JVM都能识别.class文件(如Windows/Linux/Mac的JVM互不相同,但都支持相同字节码)
  2. 运行时适配:JVM屏蔽底层差异(内存管理/线程调度),例:Windows的线程与Linux的线程实现不同,但JVM统一封装
  3. JIT即时编译:热点代码(多次执行的方法)编译为本地机器码,兼顾跨平台与性能(典型场景:循环体、高频接口)

类比理解

  • 字节码 = 国际菜单(统一格式)
  • JVM = 各国厨师(按菜单做本地菜)
  • 最终用户 = 不同操作系统(吃到相同味道的菜)

四、JDK vs JRE vs JVM:开发-运行-执行的三层关系

▶ 开发层:JDK(Java Development Kit)
  • 核心组件
    JDK  
    ├─ 开发工具(javac编译、jdb调试、jvisualvm监控)  
    ├─ 标准库(rt.jar,含java.lang/String等2万+类)  
    └─ JRE(含JVM+运行时库)  
    
  • 必知工具
    • javac:将.java转为.class(语法检查在此阶段)
    • java:启动JVM,执行类的main方法
    • jlink(JDK 9+):生成自定义运行时镜像(减小微服务体积)
▶ 运行层:JRE(Java Runtime Environment)
  • 最小运行单元
    JRE  
    ├─ JVM(执行引擎)  
    ├─ 核心类库(java.base模块,含基础API)  
    └─ 支持文件(资源文件、配置)  
    
  • 生产环境部署:只需要JRE(如服务器安装jdk-17-jre)
▶ 执行层:JVM(Java Virtual Machine)
  • 核心模块
    • 类加载子系统(ClassLoader):双亲委派机制防止类污染
    • 运行时数据区(堆/栈/方法区):GC垃圾回收的主战场
    • 执行引擎:解释器(快速启动)+ JIT编译器(运行优化)
▶ 关系图谱(包含最新模块化特性)
JDK ──⊃── JRE ──⊃── JVM  └─ 开发工具         └─ 核心类库(模块化:java.base, java.sql等)  

五、总结:为什么Java依然统治企业级?

  1. 生态壁垒:2000万开发者,1000万+企业应用(金融/电信/政务)
  2. 稳定性:LTS版本支持10年(Java 11→2026年),适合长期项目
  3. 云原生进化:从Spring到Quarkus,完美适配K8s/Docker
  4. 语言韧性:持续吸收新特性(模式匹配、虚拟线程),保持活力

(注:内容更新至2025年,包含Java 21虚拟线程等前沿技术,适合入门学习与面试准备)

相关文章:

  • Linux网络编程:套接字
  • Spring AI支持的聊天模型全方位比较与分析
  • 利用n8n、DeepSeek、AI Agent、子工作流生成统计图
  • PyTorch_张量形状操作
  • 常用命令集合
  • 55、【OS】【Nuttx】编码规范解读(三)
  • 比较 TensorFlow 和 PyTorch
  • 30.沿触发控制与电平宽度触发控制的抗干扰能力对比分析
  • 如何在服务器后台运行Python脚本,并配置虚拟环境与GPU支持
  • 科普简洁版:同态加密——密码学的未来瑰宝
  • CPU 的指令集存放在什么地方?
  • 护网奇谈: 红队工程师手记
  • k230摄像头初始化配置函数解析
  • 含铜废水的资源化利用
  • 第三方组件库:element-uiiviewVant
  • 方案精读:业财融合转型路径和华为实践【附全文阅读】
  • 【Godot】使用 Shader 实现可调节的精确切角效果
  • indexedDB
  • 两台电动缸同步算法
  • Linux常用命令30——groupadd创建新的用户组
  • 竞彩湃|新科冠军利物浦留力?纽卡斯尔全力冲击欧冠
  • 新华每日电讯头版聚焦上海:科创高地向未来
  • 德国斯图加特发生车辆冲撞人群事件,至少三人受伤
  • 五一假期天气将大转变,南方新一轮降雨来袭
  • 魔都眼|咖啡节上小孩儿忍不住尝了咖啡香,母亲乐了
  • 本周看啥|《乘风》迎来师姐们,《天赐》王蓉搭Ella