`
longgangbai
  • 浏览: 7380105 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

J2SE 四大技术体系

阅读更多

转载:

http://hxraid.iteye.com/blog/663203

讲到Java,很容易就想到程序设计语言。实际上,Java技术包含的内容远不止一种编程语言怎么简单。我们通常说的J2SE(java 2 标准版)就是在全局上对Java技术的一种称呼。

 

1、J2SE技术体系结构

下图包含了J2SE体系结构的全部重大相关技术,也描述了java程序运行不可缺少的过程。

 

要精通J2SE,必须对J2SE的四大重要技术有深入的了解。

(1) Java 程序设计语言

(2) Java Class 文件格式

(3) Java 虚拟机

(4) Java 应用程序接口(Java API)

 

实际上,每一次Java版本的升级,其主要的变化就在Java 虚拟机和Java API上,通常这两大技术也称为Java运行时环境(JRE)。JDK5.0、JDK6.0等的区别也就在JRE上。

 

2、J2SE体系结构的优势以及代价

 

J2SE的体系结构使得Java更适应于网络。其最大的两个优势就是:平台无关性和网络移动性。这一点在其体系结构的各个技术上都有体现。

(1) Java class文件的优势体现

      Java编译器并不能将Java编译成底层的二进制指令,而是编译成一种与底层平台无关的中间格式文件(.class)。 通常情况下不同硬件平台或操作系统的二进制指令时不能通用的。而.class文件是可以运行在任何支持Java虚拟机的硬件和操作系统上的。另外,class文件设计紧凑,可以快速的在网络上传输。

(2) Java API的 优势 体现

      Java API是运行库的集合,它提供了一套访问主机系统资源的标准方法。运行Java程序时,虚拟机装在.class文件所使用的Java API class文件,并和所有已近转载的动态库(本地方法)共同组成Java虚拟机运行的整个程序。

      Java API天生就和平台相关的。 不同平台的Java API和本地方法进行交互的方式可能不同,但是对Java应用程序的显示接口是完全一样的。这才保证了Java应用程序的平台无关性。

(3) Java 程序设计语言的 优势 体现

      Java在语言也体现出一定的平台无关性。比如所有的基本数据类型所占用的字节大小都是固定的。另外Java语言也是一种非常通用、安全的语言。与C++不同,Java对内存的自动管理要强的多,也更加安全。比如放弃指针,而使用对象引用。使用垃圾回收机制而不是让程序员自己手动回收。

(4) Java虚拟机的优势体现

      和Java API一样,JVM是平台相关的。如果Java程序需要访问本地资源的话,Java虚拟机是一定要调用本地方法的。也正是应为JVM的存在,才导致了Java平台无关性的优势。

 

 

代价:

       Java做到了不同硬件平台、不同操作系统的平台无关性要求。但却牺牲了Java在某些特定环境中使用的资格。在很多的大型IT公司,其后台开发或者算法设计方面都要求C/C++,而不是Java。

       (1)  Java的运行效率是一直被人攻击的问题。其根本原因就在于JVM需要先将class文件解释成系统平台能够运行的底层指令,再由底层平台运行。而这一过程肯定是要比直接运行编译好的底层指令要慢的多。当然,随着JIT(即时编译器)和自适应优化器的产生,使得JVM解释执行的过程效率提高了很多。使得Java与C在运行效率上的差距不再那么明显了,但是在要求极高的实时环境下,仍然还是不够的。

       (2)  Java的另外一个代价就在于内存管理和线程调度方面的缺陷。垃圾回收机制虽然使得开发效率提高了不少,但是你并不知道垃圾收集器什么时候开始回收垃圾。这一点对于很多需要海量数据处理,高性能的系统就很不适应。另外,JVM对线程调度的规范是十分笼统的,松散的规则有利于Java程序的移植,但却牺牲了很多特定环境下的效率。比如需要实时响应事件的软件。

 

 

总而言之,Java语言适合网络环境中的Web开发,但并不适合对运行性能和实时响应要求极高的后台系统。因此,如果还在Java和C++之间难以抉择的IT同行们,首先问问自己想干什么更加实际一

分享到:
评论

相关推荐

    J2SE面试题 经典

    ### J2SE经典面试知识点详解 #### 面向对象的四大特征 ...总结来说,掌握这些J2SE面试题的经典知识点,不仅有助于应对各种笔试和面试,更重要的是,它们构成了深入理解和运用Java技术体系的基础。

    J2EE应用开发体系与环境配置

    《J2EE应用开发体系与环境配置》一书详尽阐述了J2EE技术在企业级应用开发中的重要性及其实现方式。全书分为四大部分,覆盖了Web编程基础、J2EE程序设计、数据库程序设计以及软件工程实践,为读者提供了全方位的学习...

    java 学习的顺序(初学者)

    1. **J2SE**:Java Standard Edition,学习Java的基础,包括面向对象编程的三大特性(封装、继承、多态),内存分析,递归,集合(Set, List, Map及其子类)、泛型、自动装箱与拆箱,以及注解(Annotation)。...

    毕业论文- 深蓝健身房瑜伽馆行业小程序V4.15.0 前端+后端-整站商业源码.zip

    毕业论文- 深蓝健身房瑜伽馆行业小程序V4.15.0 前端+后端-整站商业源码.zip

    36氪:2019中国开放式创新观察.pdf

    36氪:2019中国开放式创新观察.pdf

    毕业论文-化妆品商城-整站商业源码.zip

    毕业论文-化妆品商城-整站商业源码.zip

    毕业论文-MNews2.4-整站商业源码.zip

    毕业论文-MNews2.4-整站商业源码.zip

    X-AnyLabeling自动标注模型

    X-AnyLabeling自动标注模型

    【鼎软天下】科技赋能物流,数字驱动变革.pdf

    【鼎软天下】科技赋能物流,数字驱动变革.pdf

    实训商业源码-王中王掌上游戏机网页源码,怀旧小游戏-毕业设计.zip

    实训商业源码-王中王掌上游戏机网页源码,怀旧小游戏-毕业设计.zip

    R-FEC:基于强化学习的FEC调整以提升WebRTC中的用户体验质量(QoE)

    内容概要:本文提出了一种基于强化学习(RL)的前向纠错(FEC)调整方法——R-FEC,旨在优化WebRTC视频会议中的用户体验质量(QoE)。传统方法在确定适当的FEC比例时面临挑战,因为过高的FEC会增加延迟并降低视频质量,而过低则无法有效应对丢包。R-FEC通过RL算法动态调整视频和FEC比特率,在不同的网络条件下最大化QoE,同时最小化网络拥塞。实验表明,R-FEC相比现有最佳解决方案可提高视频速率达27%,并改善视频质量6dB。 适合人群:对视频会议系统优化、网络通信协议、机器学习特别是强化学习有兴趣的研究人员和技术人员。 使用场景及目标:①需要在视频会议中实现实时通信的应用开发者;②希望提升视频通话质量、减少延迟的技术团队;③研究如何在动态网络环境中优化数据传输的研究机构。 其他说明:R-FEC不仅解决了现有方法中FEC设置不合理的问题,还展示了在实际网络环境下显著优于其他方法的表现。此外,作者指出未来工作将扩展到多方通话场景,并考虑更多复杂的网络条件。该研究得到了Cisco Systems和韩国国家研究基金会的支持。

    【网络流量管理】基于Traffic Shaping和ETS的多虚拟功能组带宽分配与调度:实现数据中心多类流量的精细化控制

    内容概要:本文介绍了流量整形(Traffic Shaping)与增强传输选择(Enhanced Transmission Selection, ETS)技术在多虚拟函数(VFs)共享单个物理网络接口控制器(NIC)端口情况下的应用。流量整形通过对数据发送速率进行限制来管理网络流量,确保节点不会超过设定的最大带宽,同时保证最小带宽。ETS是IEEE 802.1Qaz标准的一部分,旨在数据中心桥接环境中为不同类型的流量分配带宽。文章详细描述了在多VF组中实现每类流量带宽保证的技术挑战和解决方案,包括使用令牌桶算法、加权循环调度(DWRR)、多队列优先级(MQPRIO)以及信任模式(Trust Mode)进行流量分类。此外,还探讨了如何通过扩展devlink-rate工具指定每个流量类别的带宽比例。 适合人群:网络工程师、系统管理员、云服务提供商以及对网络流量管理和优化感兴趣的IT专业人员。 使用场景及目标:①理解流量整形的基本概念及其在网络通信中的作用;②掌握如何配置虚拟功能(VF)以实现对特定流量类别的带宽控制;③学习如何利用ETS机制确保关键业务获得足够的网络资源;④了解最新的devlink-rate扩展功能及其在实际部署中的应用。 其他说明:本文基于Netdev 0x19会议上的演讲整理而成,提供了从背景介绍到具体实施步骤的全面讲解,并附有详细的参考资料链接供进一步研究。

    实训商业源码-自适应极简多引擎搜索源码-毕业设计.zip

    实训商业源码-自适应极简多引擎搜索源码-毕业设计.zip

    基于LilyGo T_QT开发板的物联网通信标准代码库设计源码

    该源码库为LilyGo T_QT开发板量身定制,专注于物联网通信功能,包含1792个文件,涵盖512个头文件、448个C语言源文件、213个Arduino脚本文件、151个Python脚本、139个Markdown文档、63个PNG图片文件、55个reStructuredText文件、38个Vera Lite Widget文件、18个文本文件、18个C++源文件。语言多样,支持C、C++、Python、C++、Shell、HTML、CSS和Ruby。库内容丰富,是进行物联网通信开发不可或缺的资源。

    学生心理健康服务平台系统的Java实现

    学生心理健康服务平台是一个集心理咨询、心理测评、资源共享和社区互动于一体的综合服务平台,包含Web/移动端应用和管理后台两部分。该项目旨在为高校学生提供便捷、专业的心理健康服务,帮助学生缓解心理压力,促进心理健康发展。

    毕业论文-二次元应用下载页源码 带弹幕-整站商业源码.zip

    毕业论文-二次元应用下载页源码 带弹幕-整站商业源码.zip

    实训商业源码-影视资源站源码 电脑+手机模板-毕业设计.zip

    实训商业源码-影视资源站源码 电脑+手机模板-毕业设计.zip

    Baidunetdisk_AndroidPhone_1023843j (6).apk

    Baidunetdisk_AndroidPhone_1023843j (6).apk

    《Creo Simulation Live》数据表.pdf

    《Creo Simulation Live》数据表.pdf

    实训商业源码-源授权V1.5-毕业设计.zip

    实训商业源码-源授权V1.5-毕业设计.zip

Global site tag (gtag.js) - Google Analytics