iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java的特点和优点(动力节点整理)
  • 819
分享到

Java的特点和优点(动力节点整理)

java特点优点 2023-05-31 16:05:15 819人浏览 泡泡鱼
摘要

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

Java的特点

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

由于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的特点和优点(动力节点整理),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程网网站的支持!

--结束END--

本文标题: Java的特点和优点(动力节点整理)

本文链接: https://www.lsjlt.com/news/227196.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java的特点和优点(动力节点整理)
    Java的特点Java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows 9x、Windows NT、Solaris、Linux、MacOS以及其它平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使其在互联网...
    99+
    2023-05-31
    java 特点 优点
  • Java数组优点和缺点_动力节点Java学院整理
      数组是Java语言的基本知识之一,在深入学习Java基础后,我们都知道那些容器,在之后,在我们学习、工作的过程中基本就是使用容器了,很少很使用数组,那么为什么还要有数组呢,我也是今天才遇到这个问题,专门的找资料学习了...
    99+
    2023-05-31
    java 数组 优缺点
  • Java数组的特性_动力节点Java学院整理
    Java中的数组是对象吗?Java和C++都是面向对象的语言。在使用这些语言的时候,我们可以直接使用标准的类库,也可以使用组合和继承等面向对象的特性构建自己的类,并且根据自己构建的类创建对象。那么,我们是不是应该考虑这样一个问题:在面向对象...
    99+
    2023-05-31
    java 数组 特性
  • Java新特性之Nashorn_动力节点Java学院整理
    Nashorn是什么Nashorn,发音“nass-horn”,是德国二战时一个坦克的命名,同时也是java8新一代的javascript引擎--替代老旧,缓慢的Rhino,符合 ECMAScript-262 5.1 版...
    99+
    2023-05-31
    java8 新特性 nashorn
  • Java中StringBuffer和StringBuilder_动力节点Java学院整理
    下面先给大家介绍下String、StringBuffer、StringBuilder区别,具体详情如下所示:StringBuffer、StringBuilder和String一样,也用来代表字符串。String类是不可变类,任何对Strin...
    99+
    2023-05-31
    java stringbuffer stringbuilder
  • Java8新特性之StampedLock_动力节点Java学院整理
    Java8就像一个宝藏,一个小的API改进,也足与写一篇文章,比如同步,一直是多线程并发编程的一个老话题,相信没有人喜欢同步的代码,这会降低应用的吞吐量等性能指标,最坏的时候会挂起死机,但是即使这样你也没得选择,因为要保证信息的正确性。所以...
    99+
    2023-05-31
    java8 新特性 stampedlock
  • Java死锁_动力节点Java学院整理
    死锁是两个甚至多个线程被永久阻塞时的一种运行局面,这种局面的生成伴随着至少两个线程和两个或者多个资源。在这里我已写好一个简单的程序,它将会引起死锁方案然后我们就会明白如何分析它。Java死锁范例ThreadDeadlock.javapack...
    99+
    2023-05-31
    java 死锁 ava
  • Java多态(动力节点Java学院整理)
    什么是多态 面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象...
    99+
    2023-05-31
    java 多态 ava
  • Java中的UrlDecoder 和 UrlEncoder_动力节点Java学院整理
    一 URLEncoder HTML 格式编码的实用工具类。该类包含了将 String 转换为 application/x-www-form-urlencoded MIME 格式的静态方法。有关 HTML 格式编码的更多信息,请参阅...
    99+
    2023-05-31
    urldecoder urlencoder ava
  • Struts1和struts2的区别_动力节点Java学院整理
    Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物。简单来说二者的区别是:  ...
    99+
    2023-05-31
    struts1 struts2 ava
  • ObjectInputStream 和 ObjectOutputStream 介绍_动力节点Java学院整理
    ObjectInputStream 和 ObjectOutputStream 的作用是,对基本数据和对象进行序列化操作支持。创建“文件输出流”对应的ObjectOutputStream对象,该ObjectOutputStream对象能提供对...
    99+
    2023-05-31
    objectinputstream objectoutputstream npu
  • JDBC简介_动力节点Java学院整理
    前言:什么是JDBC维基百科的简介:  Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。J...
    99+
    2023-05-31
    jdbc 简介 ava
  • Java Set简介_动力节点Java学院整理
    1. 概述           Java 中的Set和正好和数学上直观的集(set)的概念是相同的。Set最大的特性就是不允许在其中存放的元素是重复的...
    99+
    2023-05-31
    java set ava
  • Java链接redis_动力节点Java学院整理
    要在Java程序中使用使用操作Redis,需要确保有Redis的Java驱动程序和Java设置在机器上。现在,让我们来看看如何设置Redis的Java驱动程序。 需要下载jedis.jar。请一定要下载它的最新版本。 需要包括jedis...
    99+
    2023-05-31
    java redis 链接
  • Java Map简介_动力节点Java学院整理
    Map简介将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。 Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关...
    99+
    2023-05-31
    java map ava
  • Ehcache简介_动力节点Java学院整理
    使用Spring的AOP进行整合,可以灵活的对方法的返回结果对象进行缓存。CachingFilter功能可以对HTTP响应的内容进行缓存。1、主要特性     1. 快速.  &n...
    99+
    2023-05-31
    ehcache ava hcache
  • Java 线程池_动力节点Java学院整理
    线程池系统启动一个新线程的成本是比较高的,因为它涉及到与操作系统的交互。在这种情况下,使用线程池可以很好的提供性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。与数据库连接池类似的是,线程池在系统启动时即创建大量空...
    99+
    2023-05-31
    java 线程池 ava
  • Java内部类_动力节点Java学院整理
    内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和defau...
    99+
    2023-05-31
    java 内部类 ava
  • Java FileDescriptor总结_动力节点Java学院整理
    FileDescriptor 介绍FileDescriptor 是“文件描述符”。FileDescriptor 可以被用来表示开放文件、开放套接字等。以FileDescriptor表示文件来说:当FileDescriptor表示某文件时,我...
    99+
    2023-05-31
    java filedescriptor ava
  • Java中HashTable和HashMap的区别_动力节点Java学院整理
    HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的区别。主要的区别有:线程安全性,同步(synchronization),以及速度。HashMap几乎可以等价于Hashtable,除了HashMap...
    99+
    2023-05-31
    java hashtable hashmap
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作