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

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虚拟线程等前沿技术,适合入门学习与面试准备)

http://www.xdnf.cn/news/3826.html

相关文章:

  • TS 字面量类型
  • Mybatis学习(下)
  • LabVIEW开发风量智能监测系统
  • 【杂谈】-探索 NVIDIA Dynamo 的高性能架构
  • 牛客周赛90 C题- Tk的构造数组 题解
  • STM32智能垃圾桶:四种控制模式实战开发
  • 58认知干货:创业经验分享及企业形式的汇总
  • 【AI面试准备】逻辑思维、严谨性、总结能力、沟通协作、适应力与目标导向
  • 文件一键解密软件工具(支持pdf、word、excel、ppt、rar、zip格式文件)
  • 链接文件及功能安全:英飞凌官方文档摘录 - Tasking链接文件
  • 开上“Python跑的车”——自动驾驶数据可视化的落地之道
  • 使用python写多文件#inlcude
  • Spring AI Advisors API:AI交互的灵活增强利器
  • ES6入门---第三单元 模块三:async、await
  • 网络:TCP三次握手、四次挥手
  • 介词:连接名词与句子其他成分的桥梁
  • 互联网大厂Java面试:从基础到实战
  • 【漫话机器学习系列】239.训练错误率(Training Error Rate)
  • vulkanscenegraph显示倾斜模型(6.4)-多线程下的记录与提交
  • Dalvik虚拟机和ART虚拟机
  • ART 下 Dex 加载流程源码分析 和 通用脱壳点
  • 【ArcGIS微课1000例】0145:如何按照自定义形状裁剪数据框?
  • 学习黑客Linux权限
  • 【中间件】brpc_基础_用户态线程中断
  • LeetCode每日一题5.4
  • 架构思维:利用全量缓存架构构建毫秒级的读服务
  • 2001-2023年 上市公司-企业广告支出数据-社科数据
  • 使用宝塔面板、青龙面板实现定时推送功能
  • 【数据结构】稀疏矩阵的快速转置
  • 单细胞测序数据分析试验设计赏析(二)