java 的11个特性
以下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个特性的更多相关文章
- Java SE 11 新增特性
Java SE 11 新增特性 作者:Grey 原文地址:Java SE 11 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...
- 最通俗易懂的 Java 11 新特性讲解
大多数开发者还是沉浸在 Java 8 中,而 Java 14 将要在 2020 年 3 月 17 日发布了,而我还在写着 Java 11 的新特性.Java 11 是 Java 8 之后的第一个 LT ...
- 【转】C++11常用特性的使用经验总结
出处 http://www.cnblogs.com/feng-sc C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方 ...
- [转] Java 8的新特性
简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...
- [转载] C++11新特性
C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百 ...
- Java 8的新特性—终极版
作者:杜琪[译] 原文链接:http://www.jianshu.com/p/5b800057f2d8 1. 简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本 ...
- C++11常用特性的使用经验总结
转自:http://www.cnblogs.com/feng-sc C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方 ...
- [转]C++11常用特性的使用经验总结
转载出处 http://www.cnblogs.com/feng-sc C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++1 ...
- Java 9和Java 10的新特性
http://www.infoq.com/cn/news/2014/09/java9 Java 9新特性汇总 继2014年3月份Java 8发布之后,Open JDK加快了开发速度, Java 9的发 ...
随机推荐
- Feign自动装配原理
spring.factories 按照以往的惯例,在研究源码的时候,我们先看一下spring.factories文件下自动装配的类FeignAutoConfiguration,其中比较重要的东西有这么 ...
- Clean Code
书名<代码整洁之道> 命名 有意义的命名,使人能读懂 类名和对象名应该是名称或名称短语 方法名应该是动词或动词短语 函数 短小,函数块不要超过一个屏幕 ...
- C# 结构与类
结构是一种可以包含数据成员和方法成员的值类型数据结构.为结构分配数据时不需要从托管堆中分配内存,结构类型的变量直接包含了该结构的数据.结构中可以包含构造函数,常量,字段方法,属性,运算符,事件和嵌套类 ...
- 认识Metasploit框架
Metasploit基础 认识Metaspliot框架 Metaspliot(MSF)渗透测试框架,提供众多的接口.选项.变量.模块以供渗透工作人员使用它完成一系列的渗透攻击. 渗透攻击(Expl ...
- [20190930]oracle raw类型转化number脚本.txt
[20190930]oracle raw类型转化number脚本.txt --//写一个简单oracle raw转化number脚本,简单说明:--//输入必须是c1,02 或者 c102,不支持c1 ...
- Mysql Join-连接查询(中)
Mysql Join-连接查询(中) 认识 就我平时的数据接触来看, 连接查询也没有很复杂,不够是非常需要耐心和逻辑的, 一点点将数据查出来, 拼接等. 没有什么技巧, 多练习就会了. 无非就是表之间 ...
- python的列表元素输出
1)for循环输出 这种方法是大家最容易想到的,也是最简单的,但是它有一个弊端:它的输出是竖向排列的,而我们往往需要水平输出. >>> for i in [1,2,3]: print ...
- [Php] windows下使用composer出现SHA384 is not supported by your openssl extension
composer的版本太低了,需要更新composerwindows的安装使用https://getcomposer.org/Composer-Setup.exe报这个错Failed to decod ...
- Python xlwt模块写Excel问题集合
1.数字转换成汉字 数据库查询返回结果为多元组,在写入Excel需要判断,数据库查询结果是否为数字,为数字的话需要将其转换成对应的汉字,此时元组不可修改,所以需要将返回结果修改成列表.实现可以在数据库 ...
- mysql里字符集的配置
[client]default-character-set=utf8[mysqld]character-set-server = utf8[mysql]default-character-set=ut ...