电话:400-611-0571,0571-28180098
您的位置: 微软IT学院 >> 新闻资讯 >> 媒体报道 >> 健壮而又灵活的巨人 JAVA应用领域特点解析

健壮而又灵活的巨人 JAVA应用领域特点解析

  • 文章来源:微软IT学院
  • 浏览次数:
  • 发布时间:2014-01-16 15:17:16
文章摘要:JAVA能干什么?Java能做的事情很多,涉及到编程领域的各个方面。  桌面级应用:尤其是需要跨平台的桌面级应用程序。简单的说就是主要功能都在我们本机上运行的程序,比如word、excel等运行在本机上的应用就属于桌面应用。  企业级应用。
JAVA能干什么? Java 能做的事情很多,涉及到编程领域的各个方面。

  桌面级应用:尤其是需要跨平台的桌面级应用程序。简单的说就是主要功能都在我们本机上运行的程序,比如word、excel 等运行在本机上的应用就属于桌面应用。

  企业级应用:简单的说就是大规模的应用,一般使用人数较多,数据量较大, 对系统的稳定性、安全性、可扩展性和可装配性等都有比较高的要求。举例说明一下:组件化:企业级应用通常比较复杂,组件化能够更好对业务进行建模,提高系统的扩展性和维护性,做到组件复用。分布式:企业组织机构复杂,同一地有多个分部,或者跨省,甚至跨国, COABA, RMI,Web Services是 JavaEE 中支持的分布式访问技术,还有分布式的连接,如系统需要接入多个数据源,可以用 JNDI 来透明实现。 事务管理:为了保证数据的安全操作、安全访问,事务是不可缺少的,事实上只要操作数据库,就离不开事务管理。 消息管理:通过消息来实现异步触发从而降低系统耦合性,提高系统吞吐量。一个电子商务网站也可以使用消息来进行异步发邮件,但在企业级应用当中,根据实际需求还可以演变成更多复杂的应用,JEE 提供 JMS 实现消息管理。

  安全性:企业级应用的数据都更为敏感(比如公司的销售数据、财务数据),需要为此提供严格的安全性保护,企业级组织的复杂性、接入访问的多样性增加了安全策略实施的难度,JAAS 为此提供了一整套的安全策略,方便企业级应用以安全、一致、便捷的方式实现安全机制。 目前企业级应用是Java应用最广泛的一个领域,几乎一枝独秀。包括各种行业应用、企业信息化、电子政务等,包括办公自动化 OA,人力资源 HR,客户关系管理 CRM, 企业资源计划 ERP、供应链管理 SCM、企业设备管理系统 EAM、产品生命 周期管理 PLM、面向服务体系架构 SOA、商业智能 BI、项目管理 PM、营销管理、流程管理 WorkFlow、财务管理……等等几乎所有你能想到的应用。

  嵌入式设备及消费类电子设备,包括无线手持设备、智能卡、通信终端、医疗设备、信息家电(如数字机顶盒、电冰箱)、汽车导航系统等都是近年以来热门的 Java 应用领域,尤其是手机上的Java应用程序和Java 游戏,更是普及。嵌入式装置答题上区分为两种:一种是运算功能有限、电力供应也有限的嵌入式装置,例如 PDA、手机;另外一种则是运算能力相对较佳、并且电力供应上相对比较充足的嵌入式装置,比如:冷气机、电冰箱、电视机顶盒。除了上面提到的,Java还有很多功能:如进行数学运算、显示图形界面、进行网络操作、进行数据库操作、进行文件的操作等等。

  Java 体系比较庞杂,功能繁多,这也导致很多人在自学 Java 的时候总是感觉无法建立全面的知识体系,无法从整体上把握 Java 的原因。在这里我们先简单了解一下 Java 的版本。Java 分成三种版本,分别是: Java 标准版(JSE)、Java 微缩版(JME)和 Java 企业版(JEE)。每一种版本都有自己的功能和应用方向。

  Java 标准版: JSE(Java Standard Edition)。JSE是 Sun 公司针对桌面开发以及低端商务计算解决方案而开发的版本,例如:我们平常熟悉的 Application 桌面应用程序。这个版本是个基础,它也是我们平常开发和使用最多的技术,Java的主要的技术将在这个版本中体现。

  Java 微缩版:JME(Java Micro Edition)。JME是对标准版 JSE 进行功能缩减后的版本,于 1999 年 6 月由 Sun Microsystems 第一次推向 Java 团体。它是一项能更好满足 Java 开发人员不同需求的广泛倡议的一部分 。 Sun Microsystems 将 JME 定义为“一种以广泛的消费性产品为目标的高度优化的Java运行时环境”,应用范围包括掌上电脑、移动电话、可视电话、数字机顶盒和汽车导航系统及其他无线设备等。JME 是致力于消费产品和嵌入式设备的开发人员的最佳选择。尽管早期人们对它看好而且 Java 开发人员团体中的热衷人士也不少,然而JME最近才开始从其影响更大的同属产品JEE 和 JSE 的阴影中走出其不成熟期。JME 在开发面向内存有限的移动终端(例如掌上电脑、移动电话)的应用时,显得尤其实用。 因为它是建立在操作系统之上的,使得应用的开发无须考虑太多特殊的硬件配置类型或操作系统。因此,开发商也无须为不同的终端建立特殊的应用,制造商也只需要简单地使它们的操作平台可以支持JME便可。

  Java 企业版:JEE(Java Enterprise Edition)。JEE是一种利用 Java 平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。JEE 技术的基础就是核心 Java 平台或 Java 平台的标 准版,JEE 不仅巩固了标准版中的许多优点,例如“一次编写、处处运行”的特性、方便存取数据库的 JDBC API、CORBA 技术以及能够在 Internet 应用中保护数据的安全模式等等, 同时还提供了对EJB(Enterprise Java Beans)、Java Servlets API、JSP(Java Server Pages) 以及 XML 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时 间的体系结构。JEE 体系结构提供中间层集成框架来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,JEE 降低了开发多层应用的费用和复 杂性,同时提供对现有应用程序集成强有力支持,完全支持 Enterprise Java Beans,有良好的向导支持打包和部署应用,添加了目录支持,增强了安全机制,提高了性能。

  JEE 是对标准版进行功能扩展,提供一系列功能,用来解决进行企业应用开发中所面临的复杂的问题。具体的我们会放到后面 JEE 的课程去讲。

  JEE 几乎完全包含 JSE 的功能,然后在 JSE 的基础上添加了很多新的功能。JME 主要是 JSE 的部分功能子集,然后再加上一部分额外添加的功能。

  Java 的 API 类库之中有一组所谓的核心类(CoreClass,即 java.*),在核心类之外还有所谓的扩充类(Extended Class,即 javax.*)。根据对这两种类的支持程度,进而区分出几种不同的 Java 版本。我们必须以 Java Standard Edition(JSE)作为基准,这个版本做了所有Java标准规格之中所定义的核心类,也支持所有的 Java 基本类。JSE 定位在客户端程序的应用上。从JSE往外延伸,其外面为 Java Enterprise Edition(JEE),此版本除了支持所有的 标准核心类外,而且还增加了许多支持企业内部使用的扩充类,支持 Servlet/JSP的javax.servlet.*类、支持 Enterprise Java Bean 的 javax.ejb.* 类。当然,JEE 必定支 持所有的 Java 基本类。JEE 定位在服务器端(server-side)程序的应用上。从 JSE 向内看,是 Java Micro Edition(JME),它所支持的只有核心类的子集合,在 JME CLDC 的规格之中,只支持 java.lang.* 、java.io.* 、以及 java.util.* 这些类。此版本 也增加了一些支持“微小装置”的扩充类,如javax.microedition.io.* 类。然而,此版本并不支持所有的 Java基本类,就 标 准的 JMECLDC, 也就是能在 PalmOS上执行的 KVM(KVirtualMachine)来说,它就不支持属于浮点数(float、double)的 Java 基本类 。

  JME 定位在嵌入式系统的应用上。最里层,还有一个Java 的Smart Card 版本,原本在Java的文件之中并没有这样定义,但是将它画在 JME 内部是很合理的。因为 SmartCard 版本只支持 java.lang.* 这个核心类 , 比起 JME 所 支 持 的 核 心 类 更 少 , 但它也 有 属 于 自 己 的 扩 充 类 , 如 javacard.*、javacardx.* 这些类。SmartCard 版本只支持 Boolean 与 Byte 这两种 Java 基本类,此版本定位在 SmartCard 的应用上。

  简单地说,Java 具有如下特点:简单的、面向对象的、平台无关的、多线程的、安全的、高效的、健壮的、动态的等特点。

  简单是指Java 既易学又好用。不要将简单误解为这门编程语言很干瘪。你可能很赞同这样的观点:英语要比阿拉伯语言容易学。但这并不意味着英语就不能表达丰富的内容和深刻的思想,许多荣获诺贝尔文学奖的作品都是用英文写的。如果你学习过C++,你会感觉Java很眼熟,因为Java中许多基本语句的语法和C++一样,像常用的循环语句、控制语句等和C++几乎一样,但不要误解为Java是C++的增强版,Java和C++是两种完全不同的编程语言,它们各有各的优势,将会长期并存下去,Java和C++已成为软件开发者应当掌握的编程语言。如果从语言的简单性方面看,Java要比C++简单,C++中有许多容易混淆的概念,或者被Java弃之不用了,或者以一种更清楚更容易理解的方式实现,例如,Java不再有指针的概念。

  面向对象是指以对象为基本粒度,其下包含属性和方法。对象的说明用属性表达,而通过使用方法来操作这个对象。面向对象技术使得应用程序的开发变得简单易用,节省代码。基于对象的编程更符合人的思维模式,使人们更容易编写程序。Java是一种面向对象的语言,也继承了面向对象的诸多好处,如代码扩展、代码复用等。我们将在以后的章节中详细地讨论类、对象等概念。

  平台无关的与平台无关是Java最大的优势。其他语言编写的程序面临的一个主要问题是:操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或无法运行。而用 Java 写的程序不用修改就可在不同的软硬件平台上运行。这样就能实现同样的程序既可以在 Windows 下运行,到了 Unix 或者 Linux 环境不用修改就直接可以运行了。Java 主要靠 Java 虚拟机(JVM)实现平台无关性。平台无关性就是一次编写,到处运行:Write Once, Run Anywhere

  Java实现了内置对多线程的支持。多线程允许同时完成多个任务。实际上多线程使人产生多个任务在同时执行的错觉,因为,目前的计算机的处理器在同一时刻只能执行一个线程,但处理器可以在不同的线程之间快速地切换,由于处理器速度非常快,远远超过了人接收信息的速度,所以给人的感觉好像多个任务在同时执行。C++没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序的设计。

  安全性可以分为四个层面,即编译、类装载、字节码校验、沙箱机制。

  高级语言程序必须转换为机器语言程序才能执行,但不同的计算机系统所使用的机器语言不同。Java为了实现“一次编译,随处运行”的目标,Java 的源程序在编译时,并不直接编译成特定的机器语言程序,而是编译成与系统无关的字节码,由 Java 虚拟机(JVM )来执行。当JVM 解释执行 Java 程序时,Java 实时编译器(Just-In-Time,JIT)会将字节码译成目标平台对应的机器语言的指令代码。早先的许多尝试解决跨平台的方案对性能要求都很高。其他解释执行的语言系统,如BASIC、PERL 都有无法克服的性能缺陷。然而,Java 却可以在非常低档的 CPU 上顺畅运行,这是因为 Java 字节码是经过精心设计的,能够直接使用 JIT 编译技术将字节码转换成高性能的本机代码。事实上,Java 的运行速度随着 JIT 编译器技术的发展已接近于 C++。

  Java是健壮的语言。为了更好地理解 Java 的健壮性,先讨论一下在传统编程环境下程序设计失败的主要原因:内存管理错误和误操作引起的异常或运行时异常。在传统的编程环境下,内存管理是一项困难、乏味的工作。例如,在C或C++ 中,必须手工分配、释放所有的动态内存。如果忘记释放原来分配的内存,或是释放了其他程序正在使用的内存时,就会出错。在传统的编程环境下,异常情况可能经常由“被零除”、“Null指针操作”、“文件未找到”等原因引起,必须用既繁琐又难理解的一大堆指令来进行管理。对此,Java 通过自行管理内存分配和释放,从根本上消除了有关内存的问题。Java提供垃圾收集器,可自动收集闲置对象占用的内存。通过提供面向对象的异常处理机制来解决异常处理的问题。通过类型检查、Null指针检测、数组边界检测等方法,在开发早期发现程序错误。

  Java 语言具有动态特性。Java 动态特性是其面向对象设计方法的扩展,允许程序动态地装入运行过程中所需的类,这是C++进行面向对象程序设计所无法实现的。C++程序设计过程中,每当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。

责任编辑:admin
关键字:
输入手机号马上下载: