以下11个特性来自于著名的“java白皮书”中,博主会针对这些特性一一进行粗略的解释。相信看完博主的这篇文章,以后在和小伙伴们吹牛逼,可就有了切实可靠的理论依据了。

11个特性分别是:

(1)简单性      (2)面向对象      (3)分布式

(4)健壮性      (5)安全性        (6)体系结构中立

(7)可移植性    (8)解释型        (9)高性能

(10)多线程     (11)动态性

一、简单性

java 语法可以说是 C++ 语法的一个“净化版本”。在Java中没有C++难以理解的指针运算、结构、虚基类等等。但是一些C++的特性,Java设计者并没有完全清除,了解C++的人可以轻松的转换到java中。

java简单的一方面是它的开发环境。java的开发环境是最值得称赞的一点,经过20多年的发展,java的开发环境已经迎头赶上,远远超过了世界上绝大多数语言的开发环境。

另一方面则是小。java支持在小型机器上运行的软件。随着不断地发展,java如今已经单独有一个具有较小类库的 java微型版,该版本是用于嵌入式设备。

二、面向对象

面向对象是一种程序设计理念,它强调的是实体,让曾经的在过程中的执行者,变成了对象中的指挥者。举个例子:当我们想要造一辆车时,“面向对象”的工人始终关注的是车子,而“面向过程”的工人所关注的却是在造车过程所需要的机器工具。

在面向对象上,java和C++可以说是旗鼓相当。主要不同在于C++可以进行多重继承,而Java不行,但是java中开发了简单的接口。

三、分布式

java中有专门用来处理TCP/IP协议的例程库。这使得java的程序可以通过 URL打开和访问网络上的地址,和访问本地文件一样便捷,当然这需要连接网络。

四、健壮性

java语言在设计时,设计者就希望 java 可以具有多方面的可靠性。这一特性主要体现在java中的异常处理机制,自动垃圾回收机制。

在java中的垃圾回收机制可以自动回收垃圾数据,防止内存分配的错误。而java的异常处理机制可以及时检测程序运行过程中的异常,并将异常进行捕捉和抛出,当异常发生时,虚拟机会记录错误的发生顺序,以便于我们的寻找。并且,java编译器可以检测出许多在其他语言需要运行才能发现的错误。

五、安全性

java语言在设计之初,就针对安全方面,投入很大精力。java的安全模型为了达到使用户不在遭受来自于网络的不可信任程序的破坏,提供了一个“沙箱”,不可信任代码都会在沙箱中执行,在这里他不会影响主系统。到现在,java浏览器插件在经过多次的攻击后,针对远程代码,使用数字签名而且需要用户同意来保证安全性。

java本身在设计时的安全机制有:垃圾回收机制、异常处理机制、字节码加密机制。

六、体系结构中立

java的编译器会生成一个体系结构中立的文件格式,这种编译后的代码,只要有java运行时系统,就可以在许多处理器上运行。这种精心设计的字节码可以很容易的在任何机器上解释执行,而且可以动态的翻译为本地机器代码。

七、可移植性

java的基本数据类型的大小和运算有着明确的规定,是无法改变的。在java中,数据类型的固定,为程序的移植提供了基础。二进制数据是以固定的格式进行存储和传输的,这消除了字节顺序的困扰。所有的java库都支持平台独立性。

八、解释型

所有的编程语言共分为编译型和解释型两种。

编译型:使用编译器,将源码编译成所在平台可执行的机器码。

解释型:使用专门的解释器对源程序逐行解释成特定平台的机器码并执行。

而java语言因为需要先编译,然后在JVM上解释运行,所以一些人对java的分类有些模糊不清。java是解释型的语言。java解释器可以在任何移植了解释器的机器上执行java字节码,使得开发快捷。

九、高性能

java解释后的字节码为了再次提高性能,可以动态地翻译成和该应用对应的CPU的机器码。

十、多线程

在现阶段的处理器发展中,摩尔定律已经不在适用,人们开始追求并发性,希望获得更多的处理器并让它们保持工作。java是第一个支持并发程序设计的主流语言,java的多线程成为了java的核心优点之一。它可以很好的处理程序的并发行为。

十一、动态性

java的动态性使得它可以将一些代码加入到正在运行的程序当中。java的库中可以自由的添加方法,而且不会对客户端造成影响。

以上就是java的11个特性,这只是一个简单的介绍,对这方面有兴趣的同学,可以自行找一些资料,进行研究。有问题的同学,可以在评论区留言。

java 的11个特性的更多相关文章

  1. Java SE 11 新增特性

    Java SE 11 新增特性 作者:Grey 原文地址:Java SE 11 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...

  2. 最通俗易懂的 Java 11 新特性讲解

    大多数开发者还是沉浸在 Java 8 中,而 Java 14 将要在 2020 年 3 月 17 日发布了,而我还在写着 Java 11 的新特性.Java 11 是 Java 8 之后的第一个 LT ...

  3. 【转】C++11常用特性的使用经验总结

    出处 http://www.cnblogs.com/feng-sc C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方 ...

  4. [转] Java 8的新特性

    简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...

  5. [转载] C++11新特性

    C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百 ...

  6. Java 8的新特性—终极版

    作者:杜琪[译] 原文链接:http://www.jianshu.com/p/5b800057f2d8 1. 简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本 ...

  7. C++11常用特性的使用经验总结

    转自:http://www.cnblogs.com/feng-sc C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方 ...

  8. [转]C++11常用特性的使用经验总结

    转载出处 http://www.cnblogs.com/feng-sc C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++1 ...

  9. Java 9和Java 10的新特性

    http://www.infoq.com/cn/news/2014/09/java9 Java 9新特性汇总 继2014年3月份Java 8发布之后,Open JDK加快了开发速度, Java 9的发 ...

随机推荐

  1. 面试题-JavaScript交换两个变量的方法

    在平时的业务开发或者面试过程中,经常会遇到交换两个变量这种问题,于是,个人总结以下几种交换变量的方法: 1.方案一 使用一个临时变量来交换  2.方案二 使用ES6解构赋值语法来交换 3.方案三利用数 ...

  2. 用BAPI_ACC_DOCUMENT_POST过账生成凭证

    根据前台需要输入参数,在bapi里面传值,不同业务所需参数不同. dome1: "bapi结构赋值     LOOP AT lt_item INTO lw_item.       wa_do ...

  3. 强大的Charles的使用,强大的flutter1.9

    <a href="http://www.cocoachina.com/articles/37551?filter=ios"> 强大的Charles 强大的flutter

  4. python函数修饰符@的使用

    python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志.性能测试.事务处理等等. 创建函数修饰符的规则:(1)修饰符是一个函数(2)修饰符取被修饰函数为参数(3)修饰符返回一个新函数 ...

  5. SparkSql 整合 Hive

    SparkSql整合Hive 需要Hive的元数据,hive的元数据存储在Mysql里,sparkSql替换了yarn,不需要启动yarn,需要启动hdfs 首先你得有hive,然后你得有spark, ...

  6. VMware Tools安装方法

    安装VMware Tools的步骤 点击[虚拟机]选项中的[安装VMware Tools],此时在Ubuntu的桌面上就会出现一个光盘图标. 如果之前已经安装过了,[虚拟机]选项中应为[重新安装VMw ...

  7. Houdini设置

    关闭网络编辑器动画 Animate network changes 平移时保持视口枢轴 Maintain Viewport Pivot when Panning 通知帮助提示将出现在Houdini的状 ...

  8. python爬虫(3)——用户和IP代理池、抓包分析、异步请求数据、腾讯视频评论爬虫

    用户代理池 用户代理池就是将不同的用户代理组建成为一个池子,随后随机调用. 作用:每次访问代表使用的浏览器不一样 import urllib.request import re import rand ...

  9. JAVA中this和super用法

    参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对 ...

  10. driver.find_element_by_xpath() 带参数时的写法

    假设要定位如下所示的 Elements,且文本 “1234567890” 对应参数 cluster_name: <td  class="xxxx-body">12345 ...