以下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. 2019年上半年收集到的人工智能Python编程干货文章

    2019年上半年收集到的人工智能Python编程干货文章 一文了解Python深拷贝与浅拷贝问题 Python广度优先查找和深度优先查找(内附python教程分享) Python基础之函数2 (参数的 ...

  2. 实验吧简单的SQL注入1,简单的SQL注入

    接上面一篇博客. 实验吧简单的sql注入1 题目连接   http://ctf5.shiyanbar.com/423/web/ 同样,直接输入 1加个但引号,结果下面有返回错误,            ...

  3. iOS多线程比较

    .iOS的三种多线程技术 .NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程) .以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题 ØNS ...

  4. 并发修改异常ConcurrentModificationException

    1.简述:在使用 迭代器对象遍历集合时,使用集合对象修改集合中的元素导致出现异常 public static void main(String[] args) { List<Integer> ...

  5. nginx location 配置详解

    指令作用 匹配指定的请求uri(请求uri不包含查询字符串,如http://localhost:8080/test?id=10,请求uri是/test) 语法形式 location [ = | ~ | ...

  6. [Go] golang实时监控日志文件的包tail

    在linux中有一个tail命令,tail -f可以实时的监控文件新增加的内容,如果用代码实现这个逻辑,可以下载使用这个包go get github.com/hpcloud/tail/... 测试代码 ...

  7. XML配置报错

    警告: Exception encountered during context initialization - cancelling refresh attempt: org.springfram ...

  8. Java实现记事本|IO流/GUI

    Java实现记事本 题目 利用GUI实现一个简单的记事本(notepad),即打开文件,文字内容显示在界面上: 允许对文字内容进行编辑,并可以保存到文件. 代码 package notePadExp; ...

  9. Pwnable-flag

    Download : http://pwnable.kr/bin/flag 先下载下来,之后用IDA打开,发现没有什么特别的东西,之后发现是经过UPX压缩过的 xxd flag 先脱壳再说, 之后再将 ...

  10. java加密类

    java.security.KeyStore KeyStore ks = KeyStore.getInstance(type); KeyStore ks = KeyStore.getInstance( ...