`

J2SE 四大技术体系

阅读更多

讲到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同行们,首先问问自己想干什么更加实际一些。

 

分享到:
评论
1 楼 5250xx 2016-11-16  
可能随着网络资源越来越容易获取,后来很多人都不假思索地摘抄别人的内容,导致技术文章写得越来越相似,不管是表达方式还是技术点。后来越来越发觉,读写作的年代有点久的文章反倒容易产生"全新的认识"。
比如这里,作者对“Java API提供了一套访问主机系统资源的标准方法”的总结是更核心关键且一针见血的,后来更多技术文章对“Java API”的解读更侧重说明是一套现成的类库,让初学者只管使用就是了,而不说明“Java API”背后的核心做的事——调用本地操作系统的方法/函数以及资源等底层的东西。又比如,作者对JavaEE总结出四大技术,现在想想还确实就是这么几大块,而不仅仅后来很多人强调的Java语言和JVM。
有时很多知识也都明白,但经过不同思维的人的梳理,还是有更清晰和全新的认识。谢谢作者。

相关推荐

    J2SE核心技术基础(上).zip

    J2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zip

    (java)J2SE_核心技术基础

    本教程“J2SE_核心技术基础”针对Java初学者,通过详实的例子代码帮助学习者快速掌握Java编程的基本概念和技巧。 一、Java语言基础 Java是一种面向对象的编程语言,其设计目标是简洁、安全、高效。学习Java首先要...

    J2SE进阶(技术提高)

    "J2SE 进阶(技术提高)"这个主题意味着我们将深入探讨 J2SE 的高级特性,旨在帮助初学者提升技能,实现技术飞跃。 首先,我们要了解 J2SE 的核心概念。Java 编程语言以其“一次编写,到处运行”的特性闻名,这得益...

    J2SE_API J2SE_API

    J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API

    J2SE技术基础摸底试卷.rar

    一.选择题(15题X1 共计15) (1)下列关于继承的哪项叙述是正确的? A)在java中允许多重继承 B)在java中一个类只能实现一个接口 C)在java中一个类不能同时继承一个类和实现一个接口 ...D)java的单一继承使...

    01_J2SE初级技术面试题目及答案

    以上是Java初级技术面试中常见的知识点,理解并掌握这些内容对于通过面试至关重要。在实际面试中,面试官可能会结合这些基础概念提问更深入的问题,如封装、多态、接口、异常处理等,因此全面理解和实践这些基础是...

    com.google.zxing.client.j2se.jar下载

    zxing/zxing-j2se-1.7.jar包, 包含类 com.google.zxing.StringsResourceTranslator.class com.google.zxing.client.j2se.BufferedImageLuminanceSource.class ...

    j2se5.0_API

    很好的j2se的API

    j2se6中文网页版

    Java 2 Platform, Standard Edition (J2SE) 6 是Java开发的重要版本,它为开发者提供了丰富的工具和功能,用于创建桌面应用、网络应用以及分布式系统。本资源“j2se6中文网页版”显然是一个中文版的J2SE 6 API文档,...

    J2SE基础源代码

    Java Standard Edition(J2SE)是Java平台的核心部分,它为开发和运行桌面应用程序、服务器应用程序和嵌入式系统提供了基础。J2SE包含了Java语言的语法、类库以及运行时环境,使得开发者能够创建可移植性强、安全性...

    j2se1.5中文api

    《J2SE1.5中文API详解》 Java 2 Platform, Standard Edition (J2SE) 1.5,也被称为Java SE 5.0,是Java编程语言的一个重要版本,它引入了大量的新特性和改进,对Java开发者来说具有里程碑式的意义。J2SE 1.5中文API...

    J2SE,J2EE学习笔记

    **Java技术体系与J2SE** Java技术体系主要包括三个主要部分:J2SE(Java 2 Platform, Standard Edition)、J2EE(Java 2 Platform, Enterprise Edition)和J2ME(Java 2 Platform, Micro Edition)。J2SE是Java平台...

    实验1 JAVA开发环境J2SE实验报告.doc

    JAVA开发环境J2SE实验报告 在本实验中,我们将学习和掌握JAVA开发环境J2SE的基本概念和使用方法。具体来说,我们将学习如何下载和安装J2SE开发工具,熟悉J2SE开发工具的使用,编写简单的Java Application和Java ...

    学好j2se的标准

    学好J2SE是成为Java开发者的基石,它涵盖了Java编程语言的核心概念和技术。以下是对J2SE学习标准的详细阐述: 首先,掌握基础语法至关重要。这意味着你需要对Java的语法规则有深入的理解,能够迅速识别并修复语法...

    简单的J2SE环境配置

    Java 2 Standard Edition(简称J2SE)是Java技术的基础版本之一,主要用于开发桌面应用程序。它提供了完整的Java核心API集合,以及必要的运行时环境和工具。J2SE在软件开发领域扮演着极其重要的角色,特别是对于初学...

    J2SE阶段测试题+答案

    Java 2 Platform, Standard Edition (J2SE) 是 Java 语言的核心部分,它提供了开发和运行桌面应用程序、服务器端应用程序以及嵌入式系统的环境。这个阶段的学习涵盖了Java的基础语法、面向对象编程、集合框架、多...

    J2SE6.0_EN

    Java 2 Platform, Standard Edition (J2SE) 6.0是Java开发平台的一个重要版本,为Java应用程序提供了丰富的功能和强大的...对于希望深入研究Java技术或者从事Java开发的人员来说,这份英文文档是必不可少的学习工具。

    j2se_中文版

    Java 2 Platform, Standard Edition(J2SE)是Java开发平台的一个重要组成部分,主要用于桌面应用和服务器端开发。中文版的J2SE API文档对于中国开发者来说尤其方便,它提供了全面的API参考,帮助理解并使用Java编程...

    j2se doc 中文版

    Java 2 Platform, Standard Edition (J2SE) 是 Oracle 公司推出的 Java 开发平台,主要用于桌面应用和服务器端开发。J2SE 文档,尤其是官方文档,是开发者学习和理解 Java 核心特性的关键资源。这个"J2SE doc 中文版...

    基于J2SE的图书管管理系统

    《基于J2SE的图书管管理系统》是一款利用Java标准版(J2SE)技术平台开发的图书管理软件,旨在提供高效、便捷的图书借阅、归还、查询以及库存管理功能。这款系统深入体现了Java语言的强大特性和面向对象的设计理念,...

Global site tag (gtag.js) - Google Analytics