java的三大框架是什么,功能各是什么

java的三大框架是什么,功能各是什么,第1张

常说的三大框架指:SSH,即:Spring、Struts、Hibernate。

Spring:功能强大的组件粘合济,能够将你的所有的java功能模块用配置文件的方式组合起来成为一个完成的应用。Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术。

Struts:把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说它是大名鼎鼎的功能强大的MVC架构。

Hibernate:强大的ORM工具,然后很方便将数据库记录转化为java的实体实例,将java的实体实例很容易的保存到数据库中,如果你不需要很复杂的数据库访问,利用它你根本就不用了解数据库的细节。

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

Java由四方面组成:Java编程语言,即语法。Java文件格式,即各种文件夹、文件的后缀。Java虚拟机(JVM),即处理class文件的解释器。Java应用程序接口(Java API)。

1、Java虚拟机与程序的生命周期

(1):程序正常执行完,进程结束

(2):Systemexit()方法来终止程序执行,传入参数为0,代表正常退出

(3):程序出现异常或者错误导致虚拟机进程退出

(4): *** 作系统出现错误导致虚拟机进程退出

2、类的加载、连接以及初始化

(1)加载:查找并将磁盘上的class文件(字节码文件,二进制数据)加载到内存中

(2)连接:

1验证:验证被加载类的准确性

2准备:为类的静态变量分配内存以及初始化为默认值(此时a的值为0)

3解析:将类中的符号引用转换为直接引用

(3)初始化:为类的静态变量赋予正确的初始值(此时a的值为3)

public class test {

private static int a =3;

}

3、Java程序对类的使用方式可分为两种:主动使用和被动使用,所有的Java虚拟机实现必须在每个类或接口被Java程序"首次主动使用"时才初始化它们。

随着DEC(Digital Equipment Corp)公司Alpha处理器在 年末的发布 就意味着这个世界开始进入 位计算的时代 紧接着 全球几大主要计算机公司 如IBM Hewlett Packard(惠普) Fujitsu(富士通) Sun Microsystems 也发布了各自相应的产品进入到 位 这个市场 在 年 Fujitsu旗下的HAL Computer发布了业界第一台基于 位SPARC CPU的工作站 SPARC 此后不久 Sun发布了大众期盼已久的Ultra Ultra 工作站 其内置了Sun的 位UltraSPARC处理器 时间转换到 年 IBM发布了其第一个 位PowerPC RISC芯片 RS 在 年 IBM对RS 进行改良 使其支持SMP 这就是Power 如今看起来 对 位计算来说 其整整花了五年的时间 才在 年开始大量进入市场 在本文中 将主要涉及两个现在广泛应用的 位平台 AMD 与PowerPC 并分别使用IBM与Sun Microsystems这两个Java语言巨头提供的Java虚拟机(JVM) 通过SPECjvm 与SPECjbb 的测试 来评价 位与 位中JVM的性能 (注 SPECjvm 与SPECjbb 来自Standard Performance Evaluation Corp )AMD 是Advanced Micro Devices(AMD)公司的 位平台 其扩展了工业标准的x 指令集架构 并设计在不降低任何性能的前提下 于 位模式中完全兼容现有的x 应用程序与 *** 作系统 在 年 月 AMD发布了Opteron 遵循AMD 架构的第一款处理器 与其同时 年 IBM发布了PowerPC 其是源自IBM Power 双核CPU的单核处理器 从此 IBM把 位PowerPC架构带到了桌面系统与低端服务器领域 另外要说明一点 PowerPC 也像Power 一样 可在不降低性能的前提下 本地执行 位指令 不久之后 在 年 月 由Apple Computer公司设计 基于PowerPC CPU的Power Mac G 电脑上市 Java背景介绍 在第一款 位处理器诞生不久 Java技术也出世了 并由此改写历史 Java是一种健壮的 通用的 面向对象的 构架中立的 可移植的 安全的 多线程的编程语言 并带有隐式内存管理功能 Java面向对象的特性在很大程度上与C++相似 但加入了更多的接口与扩展以创建更具灵活性的解决方案 与C++不同的是 Java不支持 *** 作符重载 多重继承和自动类型强制 Java通过广泛的运行时检查和内置的例外处理机制 达到健壮性的目的 编译器所生成的只是字节码指令 其是独立于任何特定平台的 这样就保证了架构中立性 可移植性是通过指定基本数据类型大小和其算术 *** 作符的行为来达到的 例如 int总表示一个有符号的 位整数 而float总表示一个 位的IEEE 浮点数 Java同时也有一系列的同步原语 其基于广泛使用的条件变量范式 自动内存垃圾回收(GC)简化了Java编程的难度 并极大地降低了bug的数目 但也使运行机制稍微复杂了点 在 年 也就是DEC公司发布第一款 位处理器的前一年 Sun Microsystems开始了一个名为 the Green Project 的计划 目的是要抢占 下一波计算 的先机 并为此提前做好准备 计划得出的最初结论是 移动数字设备与计算机的融合将会很快出现 在 年的夏天 计划小组演示了 (星 ) 一个通过动画式触摸屏控制的交互性手持娱乐设备 通过使用Oak 一种全新的编程语言 这个设备可控制很多不同的平台 而由James Gosling开发的Oak 其最主要的特点在于它是一个彻底独立于处理器的语言 在往后的几年中 这种语言被用于Internet 之后成为大众所知的Java 而 Oak 这个名字则因为版权问题从此消失了 在 年 月 Sun正式宣布Java的诞生 这是一种程序员只需编写一次 但却可在多种 *** 作系统及多种硬件平台上运行的语言 编写一次 随处运行 在 年 Sun发布了Java开发工具包(JDK ) 其后不久 个主要的 *** 作系统开发商宣布支持Java技术 当中也包括Microsoft 其以每年大约 万美元取得五年时间的Java许可协议 在 年 月 Sun发布了Java平台的第一个即时(JIT)编译器 在 年 月 JDK 面世 在随后的三周时间里 达到了 万次的下载量 到了 年初 这个数字达到两百万 在 年末 Java 平台发布了 大概半年后 也就是 年年中 Sun发布了三个版本的Java平台 J ME(Java Micro Edition) 应用于移动 无线及有限资源的环境 J SE(Java Standard Edition) 应用于桌面环境 J EE(Java Enterprise Edition) 应用于基于Java的应用服务器 此后 广泛应用的Java技术出现了一些framework 如Enterprise JavaBeans (EJB)和JavaServer Pages (JSP) Java技术的随后一次升级 是出现在 年 月的J SE 几周后 其获得了Apple公司Mac OS X的工业标准的支持 J SE 发布于 年 月份 对Java平台来说 这是一个几乎全新的产品 与J SE 相比 其多了近 %的类和接口 在这些新特性当中 还提供了广泛的XML支持 安全套接字支持(通过SSL与TLS协议) 全新的I/O API 正则表达式 日志与断言 在 年 月 是Java最近的一次发布 J SE (内部版本号 ) 代号 Tiger 现已提供公开下载 Tiger包含了从 年发布 版本以来的最重大的更新 其中包括泛型支持 基本类型的自动装箱 改进的循环 枚举类型 格式化I/O及可变参数 Java虚拟机(JVM)是一个软件规范 相关软件有责任遵守它 以运行编译为Java字节码的程序 JVM是一个抽象的计算机制 并独立于 *** 作系统 具有编译后的程序体积小 可防止执行恶意代码等特点 其没有预先假设基于任何特定的实现技术 不管是硬件还是 *** 作系统 通常我们有几个常用的JVM软件 其 位与 位版本性能有所不同 但它们都包括JIT编译器和垃圾回收功能(GC) JIT编译器从JDK 开始就是JVM的一部分了 当时Java只是用于浏览器客户端动态效果显示的一种技术 JIT编译器实现了程序执行之前Java字节码到硬件机器码的动态翻译 其背后的思想在于 相比Java源代码 字节码更小也更容易编译 但付出的代价是需要在Java字节码编译为机器码时花上一点时间 但与直接把Java源代码编译为机器码相比 时间还是少得多的 在 位与 位的JVM中 相应的JIT在把Java字节码编译为最终的机器码时 所花的时间稍微有所不同 但还能进行一些优化 另外 在IBM与Sun这两个版本的客户端与服务端程序上 总体性能也会有所不同 垃圾回收是一种自动内存管理系统 它会收回对象不再需要使用的内存 从软件工程的角度来看 垃圾回收最大的一个好处就是 程序员不用再 *** 心那些低级的内存管理细节了 同时 垃圾回收也去除了源代码中两个最大的bug 内存未释放(内存泄漏)与过早释放(指针崩溃) 内存回收在Java程序运行期间占了一个很重要的部分 因为它必须被经常执行以释放对象不再访问的Java堆 由于在 位与 位平台上 Java堆中的数据大小会有所变化 所以会因为 位与 位JVM的性能差异 导致相应垃圾回收的性能也会有所不同

位背景介绍 位计算有几个重要组成部分 第一就是 位寻址 实际上 位寻址是通过 位整数寄存器达到的(或RISC中所指的通用寄存器) 位寄存器允许 位的指针装入到单个的寄存器中 而 位的指针 才是可以寻址访问更大内存的实质所在 当 位处理器只能访问到 字节或 GB内存时 位处理器理论上却可寻址访问 字节或 × GB内存 在现代的 位系统中 可寻址的内存的实际限制通常比理论值低一点 具体依赖于特定的硬件架构和 *** 作系统 举例来说 在基于Linux的 *** 作系统中 受限于当前Linux内核数据结构的设计 可寻址的内存最多为 字节或 GB 位计算的第二个重要方面 就是 位整数运算 要提醒的是 这可不是简单地因为有了可存储更多更大整数量 更宽的 位整数寄存器而带来的必然结果 其最直接的影响就是对那些需要处理密集大数值整数运算的程序而言 可带来性能上的飞跃 第三个方面 即 位计算的特性 是 位 *** 作系统与程序的应用 相关的软件必须全面支持硬件的 位特性 包括 位寻址和运算 通常还有一些附带的好处 如 可 *** 作更多更大的文件 管理更大的磁盘等等 位计算所带来的影响 目前已在许多程序中得到了体现 数据库服务器现在可寻址更大的内存 以维持更大的缓冲池 数据缓存 或在内存中进行排序以减少相关的I/O *** 作 也能给每个用户分配更多的内存 支持更多的用户 或对更大的数据文件进行 *** 作 仿真或其他计算密集的程序也将从中受益 如 现在可以在内存中分配更大的数组了 最后 别忘了还有大量的Java程序 J EE应用服务器 现在也能充分享受到 位计算所带来的好处了 位计算的主要缺点是 与它们 位的兄弟相比 位二进制文件一般都更大 因此 最终生成的机器码体积也更大 在系统缓存与旁路转换缓存(TLB)大小不变的情况下 可能会同时降低两者的命中率 这就是说 在一定程度上性能会有所损失 性能评测 此处用于测试 位与 位JVM性能的系统 是两台 位双CPU工作站 一台是基于AMD 技术的Opteron系统 而另一台是基于PowerPC 的Apple Power Mac G 两台工作站都分别运行基于Linux的 位 *** 作系统 受测试的JVM分别来自于IBM和Sun 将使用SPEC的SPECjvm 和SPECjbb 来测试相应JVM的性能 其中SPECjvm 使用了以下项目测试客户端性能 ·_ _press 一个流行的压缩程序 ·_ _jess 一个Java版的NASA CLIPS基于规则的专家系统 ·_ _db 数据管理基准测试软件 ·_ _javac JDK Java编译器 ·_ _mpegaudio 一个MPEG 音频解码器 ·_ _mtrt 一个对图像文件进行处理的双线程程序 ·_ _jack 一个分析程序生成器 SPECjbb (Java商业基准程序)是一个用于服务端的基准测试程序 其模仿了三层体系结构 是一个通用类型的Java服务端应用程序 通过运行SPECjvm 以秒为单位记录了每个基准测试的运行时长 时间越短越好 所有SPECjvm 测试的堆大小因JVM而有所变化 从最小值 MB至最大值 MB 在SPECjbb 测试中 记录了在三种不同堆大小时的每秒执行 *** 作数 更高的值代表更高的性能 每一个测试程序都运行三次 取成绩最好的一次作为最后的结果 图 与图 显示了在AMD 平台上 Linux版本的Sun Java Standard Edition Development Kit (J SE )在SPECjvm 和SPECjbb 中 位与 位的性能测试结果 在SPECjvm 测试中 只有三项 _ _press _ _mpegaudio _ _jack 在 位版本的JVM上比 位表现出更佳的性能 在SPECjbb 中 位版本的性能只在有足够堆大小的情况下 才表现出更高的性能 其中在堆大小为 MB时 因为某些活动数据在 位JVM版本中体积更大 导致垃圾回收动作更频繁 从而降低了程序性能

图 图 图 与图 显示了在AMD 平台上 Linux版本的IBM Developer Kit for Linux Java Technology Edition Version GA在SPECjvm 和SPECjbb 中 位与 位的性能测试结果 其中 基准测试程序中有三项 _ _db _ _javac _ _jack 在 位环境下表现出了更佳的性能 另外 在SPECjbb 测试中 当面对三个不同大小的测试堆时 位IBM版本的JVM都没有表现出比 位版本更好的性能 图 图 图 与图 显示了在PowerPC 平台上 IBM Developer Kit for Linux Java Technology Edition Version GA在SPECjvm 和SPECjbb 中 位与 位的性能测试结果 此处 在所有SPECjvm 和SPECjbb 的测试中 位JVM的性能都不及 位平台 图 图 结论 基于运行Linux *** 作系统的PowerPC 平台的测试结果 表明如果在此平台上使用IBM的JVM 那么 那些不需要 位特性的程序 还是让它们运行在 位JVM中吧 因为在此平台的所有测试结果中 位JVM的性能都比 位平台低 而基于运行Linux *** 作系统的AMD 平台的测试结果 表明不管是Sun还是IBM的JVM 位与 位的性能都在伯仲之间 要注意的是 性能的差异是依赖于具体的应用程序与JVM的 如果需要最佳性能 就必须在某个特定的执行环境中测试某个特定的程序 以评价转换到 位所带来的潜在性能提升 有几件事情需重点注意 第一 尽管SPECjvm 与SPECjbb 都是工业标准的基准测试程序 但它们的测试范围有限 因此 就测试结果而言 只对一部分的Java程序正确 而不是所有 第二 随着 位计算越来越被人们接受 我们期待 位程序会有所改进 包括 位JVM 也许其在将来会大幅提高性能 第三 此处只组合测试了几种特定的硬件平台 *** 作系统与JVM 因此 如果要进一步地说明问题 恐怕只有在 位Windows XP/ 及 位Mac OS X上的进行JVM基准测试了 lishixinzhi/Article/program/Java/hx/201311/26587

以上就是关于java的三大框架是什么,功能各是什么全部的内容,包括:java的三大框架是什么,功能各是什么、简述jvm的理解、64位计算中的Java虚拟机(JVM)性能测试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10106377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存