《java编程思想》学习笔记一

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《java编程思想》学习笔记一相关的知识,希望对你有一定的参考价值。

1. 对象

(1) 所有东西都是对象

(2) 程序是一大堆对象的组合

(3) 每个对象都有自己的存储空间,可容纳其他对象

(4) 每个对象都有一种类型,“类”(class)和"类型"(type) 是同义词,一个类最重要的特征就是“能将什么消息发给它?”

(5) 同一类所有对象能接收相同的消息

 2. “接口”(Interface)规定了可对一个特定的对象发出哪些请求。

3. 控制成员访问的原因

(1) 防止程序员接触他们不该接触的东西——通常是内部数据类型的设计思想。

(2)允许库设计人员修改内部结构,不用担心它会对客户程序员造成什么影响。

4.Java 采用三个显式(明确)关键字以及一个隐式(暗示)关键字来设置类边界:public,private,protected 以及暗示性的 friendly。

(1)“public”(公共)意味着后续的定义任何人均可使用。  最大访问控制权限,对所有的类都可见。

(2) “private”(私有)意味着除您自己、类型的创建者以及那个类型的内部函数成员,其他任何人都不能访问后续的定义信息。 最严格俄访问控制权限,仅该类本身可见,对外一切类都不可以访问(反射机制可以访问)。

(3) “friendly”(友好的)涉及“包装”或“封装”(Package)的概念——即 Java 用来构建库的方法。若某样东西是“友好的”,意味着它只能在这个包装的范围内使用(所以这一访问级别有时也叫作“包装访问”)。

.即 default:包访问权限,即同一个包中的类可以可见。默认不显式指定访问控制权限时就是default包访问控制权限。

(4) “protected”(受保护的)与“private”相似,只是一个继承的类可访问受保护的成员,但不能访问私有成员。同一包可见,不在同一个包的所有子类也可见。

6. 继承:重新使用接口 ,继承是通过 extends 关键字实现的。

7. 抽象的基础类和接口,使用abstract 关键字。

抽象方法也许只能在一个抽象类里创建。继承了一个类后,那个方法就必须实现,否则继承的类也会变成“抽象”类。

interface(接口)关键字将抽象类的概念更延伸了一步,它完全禁止了所有的函数定义。

8. 单根结构

(1) JAVA所有的类都是从一个基础类继承Object。

(2) 单根结构中的所有对象都有一个通用接口,所以它们最终都属于相同的类型。

(3) 单根结构中的所有对象都可以保证拥有一些特定的功能。对每个对象都能进行一些基本操作。一个单根结构,加上所有对象都在内存堆中创建,可以极大简化参数的传递.

 9. 下溯造型与模板/通用性

假如下溯造型成错误的东西,会得到我们称为“违例”(Exception)的一种运行期错误。

 10. 垃圾收集器对效率及灵活性的影响

在堆栈中创建对象是为对象分配存储空间最有效的一种方式,也是释放那些空间最有效的一种方式。在内存堆(Heap)中创建对象可能要付出昂贵得多的代价。

11.违例控制:解决错误

“违例控制”将错误控制方案内置到程序设计语言中,有时甚至内建到操作系统内。这里的“违例”(Exception)属于一个特殊的对象,它会从产生错误的地方“扔”或“掷”出来。

在 Java 中,违例控制模块是从一开始就封装好的,所以必须使用它!

12. 多线程

在一个程序中,这些独立运行的片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。

Java 也提供了有限的资源锁定方案。它能锁定任何对象占用的内存(内存实际是多种共享资源的一种),所以同一时间只能有一个线程使用特定的内存空间。为达到这个目的,需要使用 synchronized 关键字。其他类型的资源必须由程序员明确锁定,这通常要求程序员创建一个对象,用它代表一把锁,所有线程在访问那个资源时都必须检查这把锁。

13. 永久性

Java 1.1 提供了对“有限永久性”的支持,我们可将对象简单地保存到磁盘上,以后任何时间都可取回。但我们仍然需要明确发出调用,进行对象的保存和取回工作。这些工作不能自动进行。

 14. JAVA与因特网

(1) 客户端编程:用户提交的信息通过所有Web服务器均能支持的“通用网关接口”(CGI)回传到服务器。 

(1.1) 插件:利用插件,程序员可以方便地为浏览器添加新功能,用户只需下载一些代码,把它们“插入”浏览器的适当位置即可。 插件实际是浏览器的一个“后门”,允许创建新的客户端程序设计语言(尽管并非所有语言都是作为插件实现的)。

(1.2) 脚本编制语言:通过这种脚本语言,可将用于自己客户端程序的源码直接插入html页,而对那种语言进行解释的插件会在 HTML 页显示的时候自动激活。缺点是我们的代码全部暴露在人们面前。

(1.3) Java: 通过“程序片”(Applet)巧妙地解决了客户端编程的问题。
(1.4) ActiveX:微软的,也具体跨平台使用的能力

(1.5) 安全:GIF文件不会对我们造成任何危害,而脚本编制语言通常在自己可做的事情上有着很大的限制。Java 也设计成在一个安全“沙箱”里在它的程序片中运行,这样可防止操作位于沙箱以外的磁盘或者内存区域。
ActiveX是所有这些里面最让人担心的。用 ActiveX编写程序就象编制 Windows应用程序——可以做自己想做的任何事情。

目前解决的办法是“数字签名”,代码会得到权威机构的验证,显示出它的作者是谁。

(1.6) 因特网和内联网:若一个信息网络局限于一家特定的公司,那么在将Web技术应用于它之后,即可称其为“内联网”(Intranet),以示与国际性的“因特网”(Internet)有别。

 



以上是关于《java编程思想》学习笔记一的主要内容,如果未能解决你的问题,请参考以下文章

《JAVA编程思想》学习笔记——第十五章 泛型

Java编程思想 学习笔记9

Java编程思想 学习笔记8

《JAVA编程思想》学习笔记——第八章 多态

《JAVA编程思想》学习笔记——第十一章 持有对象

Java编程思想重点笔记(Java开发必看)