Java核心技术(第9版)学习笔记一

来源:互联网 发布:js 获取屏幕分辨率 编辑:程序博客网 时间:2024/06/07 09:24

Java核心技术 卷

(原书第9版)

学习笔记(一)Java程序设计概述

认识Java

Java并不只是一种语言。Java是一个完整的平台,有一个庞大的库,其中包含了许多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾回收等服务的执行环境。

Java“白皮书”的关键术语

1)简单性                                               7)可移植性

2)面向对象                                           8)解释型

3)网络技能(Network-Savvy            9)高性能

4)健壮性                                               10)多线程

5)安全性                                               11)动态性

6)体系结构中立


要看完白皮书,对我现在的英语水平着实相当困难,好在白皮书只是设计者的解释设计初衷。其实这些关键术语也说明了Java作为开发语言具有的特点。


简单性:

Java一开始的目标之一是支持开发能够在小型机器上独立运行的软件。基本解释器以及类支持大约仅为40KB;再加上基础的标准类库和对线程的支持(基本上是一个自包含的微内核)大约需要增加175KB。在当时,这是一个很了不起的成就了。当然,由于不断扩展,类库现在已经相当庞大了。简单的另一个方面是Java的语法上,它几乎是C++语法的一个“纯净”版本,这里没有头文件、指针运算和指针算法、结构、联合、操作符重载、虚基类等(注:设计者并没有试图清除C++中所有不适当的特性,比如,switch语句的语法在Java中就没有改变)。


面向对象

简单来说,这是一种程序设计技术。我认为这是一种解决问题的思维方式,不知道对不对?


网络技能

Java的网络能力强大且易于使用。例如:Java有一个扩展的例程库,用于处理像HTTPFTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,就像访问本地文件一样便捷。


健壮性、安全性、体系结构中立、可移植性、解释型

个人认为放在一起好理解:java语言是编译-解释执行。Java编译器通过生成与特定的计算机体系结构无关的字节码指令,生成一个体系结构相对中立的目标文件格式,这是一种便宜过的代码,只要有Java运行时的系统就可以在许多处理器上运行。在Java中,数据类型具有固定的大小,这消除了移植时令人头疼的问题;同时二进制数据是以固定的格式进行存储和传输,消除了字节顺序的困扰。以上说明Java的解释型语言和体系结构相对中立且具有可移植性。

安全性,从一开始,Java就设计成能够防范各种攻击,其中包括:

运行时候的堆栈溢出。如蠕虫等病毒的常用攻击手段

在自己的处理空间之外破坏内存

未经授权的读写文件

个人觉得首先具有一定的安全性能,才能说此语言具有健壮性。Java编译器能够坚持许多在其他语言中仅在运行时刻才能够检测出来的问题。同时Javac++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。


高性能,多线程,动态性

这几个性能都知道,干说感觉也说不清,后面学习到会得到更详细的理解。


我以前说实话都没分清啥叫applet:在网页中运行Java程序成为applet


关于Java的常见误解

1)          JavaHTML的扩展:Java是一门程序设计语言,HTML是一种描述网页结构的方式。除了用于在网页上防止Java applethtml扩展外,两者没有任何共同之处。

2)          使用XML,就不需要JavaXML是一种描述数据的方式,可以使用任何一种程序设计语言处理XML数据,而Java APIXML处理提供了很好的支持

3)          Java是一种非常容易学习的程序设计语言:不言而喻,我现在连入门都没有

4)          Java将成为适用于所有平台的通用性编程语言:这只是理论上成立

5)          Java只不过是另外一种程序设计语言:这个一开始就说了,Java不仅仅是一种程序设计语言,它是一个完整的平台。

6)          有了C#Java过时了:目前感觉没有过时,要不然就不会那么多的高薪职位了。

7)          Java是专用的,应该避免使用:这个你看看有多少程序是Java开发的就知道这是个伪命题。书中说:Java是闭源,且运转良好。况且未来开源后就完全免费了。免费的概念就是更多人用了

8)          Java是解释型的,因此对于关键的应用程序速度太慢了:这个好像有这么一点正确,但是相对c++而言,Java的虚拟机采用了即时编译,编写的“热点”代码运行速度相差无几。况且现在的计算机发展快到很多时候不需要太着重这个问题(Java中有一些c++中没有的额外开销。虚拟机的启动时间要慢一点,并且Java GUI要比本地的GUI慢一些,这是因为它们采用了与平台无关的绘图方式)。

9)          Java程序都是在网页中运行的:这个不用说了,错离谱了

10)      Java程序是主要的安全风险:这个Java的安全性前面已经说过,而且任何平台都有安全危机

11)      JavaScriptJava的简易版:JavaScript是一种在网页中使用的脚本语言,它是有Netscape发明的,原来名字叫LiveScriptJavaScript的语法类似于Java,除此之外,没任何关系。

12)      使用Java可以用价值500美元的Internet设备取代电脑:这是在Java早期时候有人这样预判,我觉得将来Internet设备取代电脑是可能的,但就家庭用户和个人用户可能不太短时间不太现实。

 

 

原创粉丝点击