当前位置:

首页 > 编程开发 > about java_about java

about java_about java

Ja va技术体系概览:从核心组件到应用演进 要理解Ja va,首先得厘清几个核心概念。简单来说,JDK (Ja va Development Kit) 是开发者的工具箱,它包含了三件套:Ja va编程语言本身、丰富的API类库以及运行的核心——JVM(Ja va虚拟机)。而JRE (Ja va R

Ja va技术体系概览:从核心组件到应用演进

要理解Ja va,首先得厘清几个核心概念。简单来说,JDK (Ja va Development Kit) 是开发者的工具箱,它包含了三件套:Ja va编程语言本身、丰富的API类库以及运行的核心——JVM(Ja va虚拟机)。而JRE (Ja va Runtime Environment) 则是运行环境,可以看作是JDK的子集,主要包含JVM和运行Ja va SE程序所需的标准API。

Ja va的应用版图

Ja va根据应用场景,划分了几个主要领域:

JA VA SE (Standard Edition):这是标准版,也是基础,早期被称为J2SE。几乎所有Ja va技术的起点都在这里。

JA VA EE (Enterprise Edition):企业版,早期叫J2EE。它为构建大规模、分布式、多层架构的企业级应用提供了一套完整的规范和服务。

JA VA ME (Mobile Edition):移动版。不过,在移动领域,它的风头后来被Android(主要使用Ja va语言)和iOS的Objective-C/Swift所取代。

一段简史:诞生、开源与收购

时间回到1995年,James Gosling领导的“绿色计划”孕育了Ja va 1.0,并提出了那句响亮的口号:“一次编写,到处运行”。这背后的核心功臣,就是JVM。

1999年,性能强劲的Hotspot JVM问世,极大地提升了Ja va的运行效率。到了2006年,Sun公司做出了一个重大决定:将包括Ja va在内的大部分产品开源,遵循GPL协议。2009年,Oracle完成了对Sun的收购,Ja va进入了新的发展阶段。

从客户端到服务器端:Web技术的演进

早期,Ja va通过Applet技术试图在客户端大展拳脚。开发者可以将编译好的小程序嵌入网页,只要用户浏览器安装了JRE插件,就能在本地JVM上运行,从而实现动态网页效果。类似的技术还有微软的ActiveX。然而,客户端插件的安装问题、安全顾虑始终是道坎儿。于是,服务器端技术CGI (Common Gateway Interface) 开始兴起。

这里需要提一下MIME (Multipurpose Internet Mail Extensions),它作为描述内容类型的互联网标准,使得消息能够承载文本、图像、音频、视频等多种数据,为Web内容传输奠定了基础。

Ja va的服务器端之旅始于Servlet。它本质上是用Ja va类实现的CGI,但增强了对HTTP协议的处理能力。不过,Servlet和早期CGI有个共同点:所有内容(包括静态HTML)都需要在代码中生成,这导致了逻辑和展示的混杂。为了解决这个问题,MVC (Model-View-Controller) 设计模式被引入,旨在将数据、业务逻辑和展示层分离。

与此同时,像PHP这样的脚本语言,允许开发者将代码直接嵌入HTML(),开发效率很高。Ja va阵营也推出了类似的技术——JSP (Ja va Server Pages)

JSP与经典框架

JSP让开发者能在HTML中嵌入Ja va代码来创建动态页面。它在运行时,会先由Jasper引擎转换成Servlet,再由Ja va编译器编译成.class字节码文件。

谈到Ja va Web开发,就绕不开经典的SSH组合:Structs(一个MVC框架)、Spring(轻量级容器框架)和Hibernate(对象关系映射框架)。这套组合拳在很长一段时间内是企业开发的主流选择。

那么,JSP和PHP怎么选?一个常见的观点是:JSP(Ja va)技术更成熟,代码规范,对于大型、对稳定性和性能要求极高的项目,往往仍是首选。而PHP在快速开发和部署上,确实有其便利性。

简单总结一下:AppletServletJa va 本质上是适用于不同场景的Ja va类库。而一个典型的JSP处理流程是:.jsp -(Jasper)-> .ja va -(ja vac)-> .class -(JVM)-> 运行。

容器、并发与内存管理

Servlet Container(也称Web Container)是一个关键角色,它除了包含JDK,还提供了让Servlet能正常工作的一系列额外组件。每个运行的容器,都可以看作是一个JVM实例

在并发处理上,Ja va和PHP走了不同的路。PHP通常通过FastCGI技术,为每个请求启动一个独立的进程。而启动一个JVM实例的代价要高得多,因此Ja va的常规做法是:在一个JVM实例内部,通过多线程来处理多个并发请求。

这就引出了JVM的内存管理。JVM内存区可分为两大类:

  • 线程私有内存区:包括程序计数器、Ja va虚拟机栈。
  • 线程共享内存区:主要包括方法区和Ja va堆。其中,Ja va堆是存放对象实例的主战场,也是最容易出现内存溢出的区域。好消息是,Ja va拥有自动的垃圾回收(GC, Garbage Collector)机制来管理堆内存。

垃圾回收的算法与实现

垃圾回收算法主要有几种思路:

  1. 标记-清除:先标记存活对象,再清除未标记的。弊端是会产生内存碎片。
  2. 复制算法:将内存一分为二,每次只使用一半,存活对象被复制到另一半,然后清空当前半区。避免了碎片,但牺牲了部分空间。
  3. 标记-整理:可以看作是复制算法的改进。先标记存活对象,然后将它们向一端移动,再清理掉边界外的内存。这样既避免了碎片,又比复制算法更节省空间。

垃圾回收中的“标记”过程,还涉及到对象的分代管理(如新生代、老年代)。而具体的回收工作,则由不同的垃圾回收器来实现:

  • Serial:新生代回收器,单线程工作。
  • ParNew:Serial的多线程版本,需要多CPU支持。
  • Parallel Sca venge:目标在于达到可控制的吞吐量,关注点是减少垃圾回收本身占用的CPU时间。
  • Serial Old / Parallel Old:用于老年代回收的对应版本。
  • CMS (Concurrent Mark Sweep):并发标记清除回收器。特点是追求低停顿,实现并发收集。缺点也很明显:无法处理“浮动垃圾”,且基于标记-清除算法,仍可能产生碎片。
  • G1 (Garbage First):一款更先进的回收器。它的改进在于:基本不会产生内存碎片,并且允许用户设定期望的停顿时间目标,实现了更精确的停顿控制。
  • 在实际生产环境中,完全可以根据应用特点来选择和调优垃圾回收器。同时,对JVM运行状况进行持续监控是至关重要的!

    JDK的选择与安装

    对于Ja va程序员来说,JDK版本需要根据项目需求来定。通常,Oracle(原Sun)的JDK是主流选择。

    在Linux系统上,一种常见的安装方式是使用RPM包。可以从Oracle官网的存档页面(如 http://www.oracle.com/technetwork/ja va/archive-139210.html)下载所需版本的JDK RPM包。

    安装命令大致如下:

    rpm -ivh jdk-xxxx.rpm
    

    安装后,需要配置环境变量。可以创建一个配置文件,例如 /etc/profile.d/ja va.sh

    #!/bin/bash
    JA VA_HOME=/usr/ja va/jdk1.8.0_121/
    PATH=$JA VA_HOME/bin:$PATH
    export PATH JA VA_HOME
    

    然后执行 source /etc/profile.d/ja va.sh 使其立即生效,或注销后重新登录。

    当然,除了使用预编译的RPM包,从源码编译安装是另一种选择,这提供了更高的定制灵活性。

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发
相关文章 更多
谷歌浏览器Mac版入口
谷歌浏览器Mac版入口

谷歌浏览器Mac版官方安装指南 谷歌浏览器Mac版官方安装入口是https://www.google.com/chrome/,需macOS 12+系统、500MB空间,下载.dmg后拖入应用程序安装,支持多设备同步、性能优化与隐私保护功能。 苹果电脑Chrome的安装入口究竟在哪里?这个问题最近可是

Chrome浏览器JS脚本不运行怎么办
Chrome浏览器JS脚本不运行怎么办

Chrome中JavaScript未执行需依次检查:一、移除站点级禁用并添加允许域名;二、开启全局JavaScript开关;三、禁用干扰扩展;四、在开发者工具中启用JavaScript;五、重置内容设置为默认。 有时在Chrome里打开网页,会发现交互按钮点了没反应,数据加载不出来,页面仿佛“静止”

IE浏览器怀旧版在线网址
IE浏览器怀旧版在线网址

IE浏览器怀旧版在线网址:一次精准的技术时光回溯 最近,不少老用户和怀旧爱好者在反复搜索一个问题:那个经典的Internet Explorer,如今还能在哪里原汁原味地体验到?答案指向一个特定的地址:https://ie.microsoft.com/legacy/。 这个网站远不止是一个简单的“皮肤

火狐浏览器有哪些设置功能
火狐浏览器有哪些设置功能

火狐浏览器五大核心设置功能:解锁高效、安全与个性化体验 火狐浏览器功能强大,但如果不仔细挖掘,很多能大幅提升效率和安全性的设置可能就“藏着掖着”了。这就好比拥有一台高性能设备,却只用了基础模式。那么,如何把它调整到最顺手、最安全的状态?接下来,我们就聚焦于当前版本(截至2025年末)最关键的五大设置

chrome搜索免验证入口
chrome搜索免验证入口

Chrome官方免验证入口为https://www.google.cn/chrome/,提供全平台安装包、免登录即用、本地化安全机制及引擎级性能优化。 到底该去哪里找正版、免费且无需繁琐验证的Chrome浏览器入口?这个问题困扰了不少网友。今天,我们就来直通核心,为大家详细拆解Chrome引擎的官方

java heap space 选型思路:使用场景与区别整理
java heap space 选型思路:使用场景与区别整理

Java堆是JVM存储对象的核心内存区域,配置需结合场景:单体应用适中设置;大数据处理需大堆并关注GC停顿;微服务强调快速启动;高并发需精细划分堆区域。关键参数-Xms和-Xmx建议等值以稳定性能。垃圾回收器选择影响效率,如G1适用于大堆,ZGC可实现低停顿。内存错误时需监控堆状态。

java heap space 使用中遇到的问题怎么解决
java heap space 使用中遇到的问题怎么解决

Java堆内存溢出错误通常因内存泄漏、数据处理需求过大或JVM参数配置不当引起。排查时可借助jmap、堆转储及MAT等工具定位问题。解决方案包括调整JVM内存参数(如-Xmx)、修复代码中的内存泄漏、优化大数据处理逻辑,并建立持续监控与预防机制,以保障应用稳定运行。

java xml 选型思路:使用场景与区别整理
java xml 选型思路:使用场景与区别整理

XML在Java开发中用于配置、数据交换等场景。解析方式主要有DOM、SAX、StAX及第三方库。DOM适合操作小文件,SAX/StAX适合处理大文件流,JAXB用于对象与XML映射。选型需结合数据大小、内存、性能及团队熟悉度,现代框架常封装底层解析。

using namespace 使用中遇到的问题怎么解决
using namespace 使用中遇到的问题怎么解决

命名空间的基本概念与常见引入问题在C++等编程语言中,命名空间(namespace)是一种将代码标识符(如变量、函数、类名)封装在特定名称下的机制,其主要目的是避免命名冲突,尤其是在大型项目或使用多个第三方库时。使用“using namespace”指令可以将指定命名空间中的所有名称引入当前作用域,

c语言函数递归 实操经验总结:这些技巧很实用
c语言函数递归 实操经验总结:这些技巧很实用

理解递归的基本原理在C语言中,递归是一种函数调用自身的编程技术。要掌握它,首先需要理解其核心思想:将一个复杂的大问题,分解为一个或几个与原问题相似但规模更小的子问题,直到子问题足够简单,可以直接求解。这个过程通常包含两个关键部分:递归出口和递归体。递归出口定义了问题何时不再继续分解,即最简单、可直接

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师
macOS

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

WINDOWS 更多
Windows 10
Windows 10
Windows

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘
Windows/macOS/iOS/Android

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。