搜索
首页Javajava教程详解Java的特点和优点(动力节点整理)

由于Java语言的设计者们十分熟悉C++语言,所以在设计时很好地借鉴了C++语言。可以说,Java语言是一种比C++语言“还面向对象”的一种编程语言,下面通过本文说下java的特点和优点

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语言的规范是公开的,你可以在oracle的官网上找到它,阅读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、LINUX等平台上运行,简直就是美梦成真的好事!而Java语言就让这个原本遥不可及的事离我们越来越近。使用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解释器的细节,所以有助于通过各界力量,共同发现、防范、制止这些安全隐患。

10.是一种动态语言

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

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

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

11.中性的对象语言

“Java编译器生成的是一种中性的对象文件格式。”也就是说,Java编译器通过伪编译后,将生成一个与任何计算机体系统无关的“中性”的字节码。这种中性结构其实并不是Java首创的,在Java出现之前UCSD Pascal系统就已在一种商业产品中做到这一点,另外在UCSD Pascal之前还有这种方式的先例,那就是Niklaus Wirth实现的Pascal语言中就采用了这种降低一些性能,换取更好的可移植性和通用性的方法。Java的这种字节码经过了许多精心的设计,使得其能够很好地兼容于当今大多数流行的计算机体系统,可以在任何机器上易于解释,易于动态翻译成为机器代码。

以上是详解Java的特点和优点(动力节点整理)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
带你搞懂Java结构化数据处理开源库SPL带你搞懂Java结构化数据处理开源库SPLMay 24, 2022 pm 01:34 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

Java集合框架之PriorityQueue优先级队列Java集合框架之PriorityQueue优先级队列Jun 09, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

完全掌握Java锁(图文解析)完全掌握Java锁(图文解析)Jun 14, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

Java基础归纳之枚举Java基础归纳之枚举May 26, 2022 am 11:50 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

详细解析Java的this和super关键字详细解析Java的this和super关键字Apr 30, 2022 am 09:00 AM

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

Java数据结构之AVL树详解Java数据结构之AVL树详解Jun 01, 2022 am 11:39 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

java中封装是什么java中封装是什么May 16, 2019 pm 06:08 PM

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具