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的发 ...
随机推荐
- SQL Server阻塞的检查
1. 阻塞 除了内存.CPU.I/O这些系统资源以外,阻塞和死锁是影响数据库应用性能的另一大因素. 所谓的「阻塞」,是指当一个数据库会话中的事务,正在锁定其他会话事务想要读取或修改的资源,造成这些 ...
- emacs 设置emacs的外观
设置emacs的外观 emacs的外观包括文本区的外观,辅助区的外观,状态行的外观,光标的外观等, 每个外观都有名字,并且都有下面属性: Font Family: 字体名字 Font Foundry: ...
- [Linux] 使用mount来挂载设备到目录
一般情况下直接mount 设备路径 目录路径,就可以了.umount 设备名,就可以卸载这个设备了使用lsblk -f可以查看挂载的设备,以及这些设备的文件系统. root@tao-PC:/boot# ...
- [PHP] 现代化PHP之路:composer的安装和升级
1.下载一个脚本文件 wget https://getcomposer.org/installer 2.php执行下这个php脚本 php installer 3.把下载的文件转移到一个PATH环境变 ...
- 2. Linux文件与目录管理
一.目录与路径 1. 相对路径与绝对路径 绝对路径:路径写法[一定由根目录 / 写起],如:/usr/share/doc 相对路径:路径写法[不由 / 写起], /usr/share/doc 要到 / ...
- 201871010132-张潇潇-《面向对象程序设计(java)》第八周总结
201871010132-张潇潇<面向对象程序设计(java)>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...
- Windows环境下搭建Redis集群(Redis-x64-3.2.100)
一 .前期准备Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二.安装配置redisredis下载地址 ht ...
- jieba、NLTK学习笔记
中文分词 - jiebaimport re import jieba news_CN = ''' 央视315晚会曝光湖北省知名的神丹牌.莲田牌“土鸡蛋”实为普通鸡蛋冒充,同时在商标上玩猫腻, 分别注册 ...
- lua 8 字符串
转自:http://www.runoob.com/lua/lua-strings.html 字符串或串(String)是由数字.字母.下划线组成的一串字符. Lua 语言中字符串可以使用以下三种方式来 ...
- 剑指Offer-7.斐波那契数列(C++/Java)
题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 分析: 斐波那契数列是0,1,1,2,3,5,8,13...也就是当前 ...