JAVA的特点

原创 2004年07月21日 17:24:00
Java语言的优点

  Java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows 9x、Windows NT、Solaris、Linux、MacOS以及其它平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使其在互联网上广泛采用。

  由于Java语言的设计者们十分熟悉C++语言,所以在设计时很好地借鉴了C++语言。可以说,Java语言是一种比C++语言“还面向对象”的一种编程语言。Java语言的语法结构与C++语言的语法结构十分相似,这使得C++程序员学习Java语言更加容易。

  当然,如果仅仅是对C++改头换面,那么就不会有今天的Java热了。Java语言提供的一些有用的新特性,使得使用Java语言比C++语言更容易写出“无错代码”。

  这些新特性包括:

  1) 提供了对内存的自动管理,程序员无需在程序中进行分配、释放内存,那些可怕的内存分配错误不会再打扰你了;

  2) 去除了C++语言中的令人费解、容易出错的“指针”,用其它方法来进行弥补;

  3) 避免了赋值语句(如a = 3)与逻辑运算语句(如a = = 3)的混淆;

  4) 取消了多重继承这一复杂的设施。

  一些说明:

  “多重继承”是“面向对象”的术语,我们将会在第2章中详细叙述。

  这些优点正是Java热的背景,Java凭借其强大的移植能力、多线程处理和连网能力,风靡全球,现在已经逐渐成为手持设备、互联网、车内计算机的一项标准。

  一些提示:

  Java语言的规范是公开的,你可以在http://java.sun.com上找到它,阅读Java语言的规范是提高水平的好方法。

  Java语言的关键特性

  Java语言有许许多多有效的特性,吸引着程序员们,最主要的有以下几个:

  1.简洁有效

  Java语言是一种相当简洁的“面向对象”程序设计语言。Java语言省略了C++语言中所有的难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。它更加严谨、简洁。

  注意:

  有些熟悉Visual Basic语言的读者会觉得Java语言相对VB而言更复杂,的确使用Java编程是比使用VB更费力一些。但大家一定要知道VB是一种集成化开发工具,其凭借可视化工具成为开发GUI程序的神器,但其并不能算是一种语言。它的基础是Basic语言,这是一种最简单的语言,但其功能不如C、C++、Java这样完整。

  Java语言采用了特殊的软件构造方法,可以在很小的机器上独立运行。只要40K就可以容下一个最基本的解释器,即使加上基本标准库和线程支持,也仅需再加上175K就够的。这也是Java语言的一个成功秘诀。

  2.高可移植性

  对于一个程序员而言,写出来的程序如果不需修改就能够同时在Windows、MacOS、UNIX等平台上运行,简直就是美梦成真的好事!而Java语言就让这个原本遥不可及的事离我们越来越近。使用Java语言编写的程序,只要做较少的修改,甚至有时根本不需修改就可以在不同平台上运行了。

  举个例子,不同平台上对数据类型的大小有不同的规定。在有的平台上,整型(int)是用一个16位二进制数表示,而有的平台上则是使用一个32位二进制数表示的。C/C++语言并没有屏蔽掉这个由不同平台造成的不同。这样如果在一个使用16位二进制数表示整型的平台上开发的C语言源程序,要在一个使用32位二进制数表示整型的平台上运行,简直就是噩耗。

  而在Java语言中,就屏蔽掉了这种由平台造成的不同。Java中的整型数是一定是由32位二进制表示的,Java虚拟机将这个差别消化了。当我们想将一个使用16位二进制数表示整型的平台上开发的Java语言源程序,移植到一个使用32位二进制数表示整型的平台上运行,就不用修改了。

  Java语言具备这种高移植性是一种必然,因为它的设计理念就是“一次编写,到处运行”嘛。

  3.“面向对象”

  可以这么说,“面向对象”是软件工程学的一次革命,大大提升了人类的软件开发能力,是一个伟大的进步,是软件发展的一个重大的理程碑。

  在过去的30年间,“面向对象”有了长足的发展,充分体现了其价值,到现在已经形成了“面向对象的系统分析”、“面向对象的系统设计”、“面向对象的程序设计”一个体系。所以做为一个现代编程语言,是不能够偏离这一方向的,Java语言也不例外。

  注意:

  Java语言被喻为比C++还“面向对象”的程序设计语言,不理解“面向对象”的思想就难以很好地运用Java语言,不熟悉这方面内容的读者,可以好好阅读本书的第二章。

  4.解释型

  大家还记得Basic语言吗?当我们使用Basic语言进行编程时,得先进入Basic语言环境,然后输入源程序,再运行它,Basic语言环境一句句地解释、运行,直接得出结果。这种语言就是解释型语言。

  而象C/C++这样的语言就不是这样的了,我们先使用编辑软件或集成开发环境(IDE)编写源程序,然后对其进行编译,生成可执行文件。然后我们再通过操作系统执行这个可执行文件得到结果。这种语言就是编译型语言。

  解释型语言效率低,速度慢;编译型语言效率高,速度快。

  Java语言是一种解释型语言。对,没看错,它是一种解释型语言,也就是说,相对于C/C++语言来说,Java语言写出来的程序效率低,执行速度慢。但它正是通过在不同平台上运行Java解释器,对Java代码进行解释,来实现“一次编写,到处运行”的宏伟目标的。为了达到目标,牺牲效率还是值得的,再说,现在的计算机技术日新月异,运算速度也越来越快,用户不会感到太慢的。

  一些提示:

  其实Java语言并不是象Basic语言那样完全的解释性,它是一种解释型与编译 型的折中。使用Java语言编写程序,首先用编辑软件或集成开发环境(IDE)编写源程序,然后使用Java编译器进行一次伪编译,将其编译成为中间码(也称字节码)。然后再使用Java解释器进行解释。

  5.适合分布式计算

  Java语言具有强大的、易于使用的连网能力,非常适合开发分布式计算的程序。Java应用程序可以象访问本地文件系统那样通过URL访问远程对象。

  使用Java语言编写Socket通信程序十分简单,使用它比使用任何其它语言都简单。而且它还十分适合于开发公共网关接口(CGI)脚本的开发,另外还可以使用Java小应用程序(Applet)、Java服务器页面(Java Server Page,简称JSP)、Servlet等等手段来构建更丰富的网页。

  6.拥有较好的性能

  正如前面说到,由于Java是一种解释型语言,所以它的执行效率相对就会慢一些,但由于Java语言采用了两种手段,使得其性能还是不错的。

  1) Java语言源程序编写完成后,先使用Java伪编译器进行伪编译,将其转换为中间码(也称为字节码),再解释;

  2) 提供了一种“准实时”(Just-in-Time,JIT)编译器,在需要更快的速度时,可以使用JIT编译器将字节码转换成机器码,然后将其缓冲下来,这样速度就会更快。

  一些提示:

  这种JIT编译器,顾名思义,Just-In-Time,仅在运行时才进行,将其编译成为平台相关的机器码(由于现在已经运行了,无需再考虑可移植性)。这样处理后,可以带来10倍甚至20倍的速度提升。而且这个技术正在不断地得到改正,今后JIT编译器将更加智能,能够监测出哪些代码经常执行,从而对其进行适当的优化,进一步加快执行速度。

  7.健壮、防患于未然

  Java语言在伪编译时,做了许多早期潜在问题的检查,并且在运行时来做了许多相应的检查,可以说是最严格的一种“编译器”。

  它的这种“防患于未然”的手段将许多程序中的错误扼杀在摇蓝之中。经常有许多在其它语言中必须通过运行才会暴露出来的错误,在编译阶段就被发现了。

  另外,在Java语言中还提供了许多保证程序稳定、健壮的特性,有效地减少了错误,这样使得Java应用程序更加健壮。

  8.具有多线程处理能力

  线程,是一种轻量级进程,是现代程序设计中必不可少的一种特性。多线程处理能力使得程序能够具有更好的交互性、实时性。

  Java在多线程处理方面性能超群,具有让你惊喜的强大功能,而且在Java语言中进行多线程处理很简单。

  注意:

  要注意的是,各主流平台在线程的实现上千差万别,所以Java语言也暂时无法在

  这方面做到“与平台无关”,所以Java为不同的操作系统各实现了一套多线程机制。

  并且对于程序员来说,不同的机器上,调用多线程机制的代码还是相同的。

  9.具有较高的安全性

  由于Java语言在设计时,在安全性方面考虑很仔细,做了许多探究,使得Java语言成为目前最安全的一种程序设计语言。

  尽管Sun公司曾经许诺过:“通过Java可以轻松构建出防病毒、防黑客的系统”,但“世界上没有绝对的安全”这一真理是不会因为某人的许诺而失灵验的。

  就在JDK (Java Development Kit)1.0发布不久后,美国Princeton(普林斯顿)大学的一组安全专家发现了Java 1.0安全特性中的第一例错误。从此,Java安全方面的问题开始被关注。不过至今所发现的安全隐患都很微不足道,而且Java开发组还宣称,他们对系统安全方面的Bugs非常重视,会对这些被发现的进行立即修复。

  而且由于Sun公司开放了Java解释器的细节,所以有助于通过各界力量,共同发现、防范、制止这些安全隐患。

  一些提示:

  如果您的英文阅读能力不错,而且又十分关心这些关于Java的安全性问题,可以访问一下以下两个新闻组:

  1) http://www.cs.princeton.edu/sip :普林斯顿大学新闻组

  2) comp.risks新闻组

  10.是一种动态语言

  Java是一种动态的语言,这表示在以下两个方面:

  1) 在Java语言中,可以简单、直观地查询运行时信息;

  2) 可以将新代码加入到一个正在运行的程序中去。

  11.中性的对象语言

  “Java编译器生成的是一种中性的对象文件格式。”也就是说,Java编译器通过伪编译后,将生成一个与任何计算机体系统无关的“中性”的字节码。

  这种中性结构其实并不是Java首创的,在Java出现之前UCSD Pascal系统就已在一种商业产品中做到这一点,另外在UCSD Pascal之前还有这种方式的先例,那就是Niklaus Wirth实现的Pascal语言中就采用了这种降低一些性能,换取更好的可移植性和通用性的方法。

  Java的这种字节码经过了许多精心的设计,使得其能够很好地兼容于当今大多数流行的计算机体系统,可以在任何机器上易于解释,易于动态翻译成为机器代码。

Java语言的特点

Java语言一正式发表就立刻受到欢迎, 除了它适应形势发展的趋向之外, 必然还有优秀的特点. Java语言的特点主要体现在简单 (simple), 面向对象(object-oriented), 分布式...
  • love_wting
  • love_wting
  • 2014年10月06日 12:27
  • 2058

java中抽象类和接口的特点

java中抽象类的特点: 1. 如果一个类中有抽象方法,那么这个类一定是抽象类 2. 抽象类中不一定有抽象方法 3. 抽象类中可以存在抽象方法 4. 抽象类中可以存在构造方法 5. 抽象类中可以存在普...
  • u012586848
  • u012586848
  • 2016年08月02日 15:19
  • 2618

Java中数组的特性

数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具有固定的长度,并且在内存中占据连续的空间。在C,C++等语言中,数组的定义简洁清晰,而在java中确有一些会让人迷惑的特性。...
  • brave2211
  • brave2211
  • 2013年11月16日 01:41
  • 11901

JAVA WEB应用特点

一、Java技术的应用特点 在这次调查中,从事Java开发的开发者占总调查对象的51.27%,因此这也使得对Java语言使用情况的调查也相对更准确一些。 调查结果显示,在Java开发者中,使用最多的J...
  • yurenxinhong
  • yurenxinhong
  • 2015年03月24日 11:22
  • 811

java总结(1)——java的特点

之前学习java只是单纯的学习,老师要求学习,所以就学习,但是没有仔细考虑过java的一些特别之处,比如,我们为什么要学习java而不是其他的语言,它必然有选择它的特点,所以,从现在开始,只有埋头苦学...
  • laner0515
  • laner0515
  • 2014年04月25日 15:33
  • 5206

Java中String类的特点以及常用的方法

字符串类String 一.两种实例化方式以及区别      1.直接赋值 String 变量 = "字符串";      直接赋值就是讲一个字符串的匿名对象设置了一个名字。String 变量 =...
  • yao____yao
  • yao____yao
  • 2016年03月05日 11:33
  • 2750

JAVA的几大特性

JAVA的几大特性,光说JAVA语言特性有大概3个,分别是封装,继承,多态。如果加上面向对象这种概念就会有个抽象,因为抽象这特点是所有面向对象语言都应有的。...
  • a2229833
  • a2229833
  • 2017年03月30日 10:44
  • 2686

java类的特性(一)

在前端学习的过程中,插入对java的学习,算是调剂吧。光看书没有编码的学习果然还是很磨人的。直接进入正题: 1、java域封装的注意事项 在java核心技术书中,不止一次的强调了类的数据域要设置为私有...
  • instinct1989
  • instinct1989
  • 2015年08月12日 00:23
  • 187

Java接口特征与细节

接口 书面定义: Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 在j...
  • u012768347
  • u012768347
  • 2016年04月02日 23:50
  • 918

Java 常量与变量浅谈

常量 1.常量的概述: 常量是指在程序运行过程中其值不能改变的量。 2.常量的类型 Java中常量的分类:     整数常量 : 所有整数     小数常量 : 所有小数     布尔常量 : 只有...
  • qq_33642117
  • qq_33642117
  • 2016年07月10日 19:33
  • 519
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA的特点
举报原因:
原因补充:

(最多只允许输入30个字)