Java关键特性
Java学习笔记系列-01
《Java核心技术卷I——基础知识》 第1章 Java程序设计概述
《Core Java Volume I-Fundamentals(10th Edition) 》 Cay S.Horstmann
Java “白皮书”的关键术语
1 简单性
- Java是C++语法的一个”纯净版本
- 简单的另一方面是小。基本的解释器以及类支持大约仅40KB,再加上基础的标准类库和线程支持大约增加175KB。
2 面向对象
- 面向对象是一种程序设计技术。它将重点放在数据(即对象)和对象的接口上。
3 分布式
- Java又一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。
- Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
4 健壮性
- Java的设计目标之一在于使得Java编写的程序具有多方面的可靠性。
- Java投入了大量的精力进行早起的问题检测、后期动态的检测,并消除了容易出错的情况。
- Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。
- Java编译器能够检测出许多在其他语言中仅在运行时才能够检测出来的问题。
5 安全性
- Java可以适用于网络/分布式环境。使用Java可以构建防病毒、防篡改的系统。
- 从一开始,Java就设计成能够防范各种工具,包括:
- 运行时堆栈溢出。如蠕虫和病毒常用的攻击手段。
- 破坏自己的进程空间之外的内存。
- 未经授权读写文件。
- Java的安全模型很复杂
体系结构中立
- 编译器生成一个体系结构中立的目标文件格式。
- 只要有Java运行时系统,这些编译后的代码可以在学多处理器上运行。
- Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。
可移植性
- 与C和C++不同,Java规范中没有”依赖具体实现”的地方。基本数据类型的大小以及有关运算都做了明确的说明。
- 例如,Java中的int永远为32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。
- 在Java中,数据类型具有固定的大小,这消除了代码移植时令人头痛的主要问题。
- 二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰。
- 字符串是用标准的Unicode格式存储的。
- 除了与用户界面相关的部分外,所有其他Java库都能很好地支持平台独立性。
- 你可以处理文件、正则表达式、XML、日期和时间、数据库、网络连接、线程等,而不用操心底层操作系统。
解释型
- Java解释器可以在任何移植了解释器的机器上执行Java字节码。
- 由于链接是一个增量式且轻量级的过程,所以,开发过程也变得更加快捷,更加具有探索性。
高性能
- 字节码可以(在运行时刻)动态地翻译成对应运行这个应用的特定的CPU的机器码。
- 性能就是”适用性更强”。
多线程
- 多线程可以带来更好的交互响应和实时行为。
- Java在当时很超前。它是第一个支持并发程序设计的主流语言。
动态性
- 从各种角度看,Java与C或C++相比更加具有动态性。它能够适应不断发展的环境。
- 库中可以自由地添加新方法和实例变量,而对客户端却没有任何影响。
- 在Java中找出运行时类型信息十分简单。
关于Java的常见误解
- 1.Java是HTML的扩展。
- Java是一种程序设计语言;HTML是一种描述网页结构的方式。
- 两者基本没有任何共同之处。
- 2.使用XML,所以不需要Java。
- Java是一种程序设计语言;XML是一种描述数据的方式。
- 可以使用任何一种程序设计语言处理XML数据,而Java API对XML处理提供了很好地支持。
- 3.Java是一种非常容易学习的程序设计语言。
- 像Java这种功能强大的语言大都不太容易学习。
- 首先,必须将编写玩具式程序的轻松和 开发实际项目的艰难区分开来。
- Java类库包含了数千种类和接口以及数万个函数。要想Java解决实际问题,还是需要了解不少内容的。
- 4.Java将成为适用于所有平台的通用性编程语言
- 从理论上讲,这是完全有可能的。
- 但在实际中,某些领域其他语言有更出色的表现。
- Objective C和后来的Swift在iOS设备上就有着无可取代的地位,
- 浏览器中的处理几乎完全由JavaScript掌控。
- Windows程序通常都用C++或C#编写。
- Java在服务器端编程和跨平台客户端应用领域则很有优势。
- 5.Java只不过是另外一种程序设计语言
- Java是一种很好的程序设计语言,很多程序设计人员喜欢Java胜过C、C++或C#。
- 程序设计语言的成功更多地取决于其支撑系统的能力,而不是优美的语法。
- 人们主要关注: 是否提供了易于实现某些功能的易用、便捷和标准的库? 是否有开发工具提供商能建立强大的编程和调试环境? 语言和工具集是否能够与其他计算基础架构整合在 一起?
- Java的成功源于其类库能够让人们轻松地完成原本有一定难度的事情。例如:联网 Web 应用和并发。
- Java减少了指针错误,这是一个额外的好处,因此使用Java编程的效率更高。但这些并不是Java成功的全部原因。
- 6.Java是专用的,应该避免使用
- 根据GPL,任何人都可以得到专利许可,允许其使用和修改Java,不过仅限于桌面和服务器平台。
- 7.Java是解释型的,因此对于关键的应用程序速度太慢了
- 早期的Java是解释型的。
- 现在Java虚拟机使用了即时编译器,因此采用Java编写的“ 热点”代码其运行速度与C++相差无几,有些情况下甚至更快。
- 8.所有的Java程序都是在网页中运行的。
- 所有的Java applet都是在网页浏览器中运行的。这也恰恰是applet的定义,即一种在浏览器中运行的Java程序。
- 然而,大多数Java程序是运行在Web浏览器之外的独立应用程序。实际上,很多Java程序都在Web服务器上运行并生成用于网页的代码。
- 9.Java程序是主要的安全风险
- 尽管距离Java诞生已经20年之久,与其他常用的执行平台相比,Java还是安全得多。
- 10.JavaScript是Java的简易版
- JavaScript是一种在网页中使用的脚本语言,它是由Netscape发明的,原来的名字叫做LiveScript。
- JavaScript的语法类似 Java,除此之外两者无任何关系当然名字有些相像。
- 11.使用Java可以用廉价的Internet设备取代桌面计算机
- 一些公司已经生产出Java网络计算机的原型。
- 不过用户还不打算放弃功能强大而便利的桌面计算机,而去使用没有本地存储而且功能有限的网络设备。