《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)有别。

时间: 2024-10-07 05:31:27

《java编程思想》学习笔记一的相关文章

【Java编程思想--学习笔记(一)】访问控制-包

Java编程思想–学习笔记(一) 访问控制(或隐藏具体实现)与"最初的实现并不恰当"有关. 1.包:库单元 我们之所以要导入包,就是要提供一个管理名字的空间机制. 每个java文件只能有一个public类.其他私有类为主public·类提供支持. 1.1 代码组织 与编译型语言不同,java可运行程序是一组可以打包并压缩成java文档文件(JAR,使用Java的jar文档生成器)的.class文件. 使用package和import关键字,使得不会出现名称冲突问题. 注意:java包的

JAVA编程思想学习笔记——第一章 对象导论

搞了一年多java,野路子出身,发现java基础这块还是相当的薄弱!故决定学习<Java编程思想>这本书.在此把学习的知识点记录下! 面向对象的五大特性 1.万物皆为对象 2.程序是对象的集合,它们通过发送消息来告诉彼此所要做的 3.每个对象都由自己的由其它对象所构成的存储 4.每个对象都拥有其类型 5.某一特定类型的所有对象都可以接收同样的信息  单根继承结构 所有的类都继承自单一的基类,Object.在单根集成结构中的所有对象都具有一个公用接口,所以他们归根到底都是相同的基本类型.单根集成

[Java编程思想-学习笔记]第3章 操作符

3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("Hello, world"); 我们都会感觉太冗长了,能不能简单一些呢?静态导入可以省略掉System,就像这样 import static java.lang.System.*; public class Hello { public static void main(String[] args) {

【java编程思想--学习笔记(四)】对象导论

写这篇博客的前言: 长话短说,我希望通过阅读<java编程思想>来使我的代码 简洁可用 . 目的的层次不同,首先具体的目标是,了解Java的特性和巩固Java的基础. 更抽象的目的如下: 1.期待以巩固基础的方式,使代码优美,简洁,高效. 2.使自己写的模块能够开放适度,好用. 3.形成一种对代码是否优美的审美观. 于是<Java编程思想>第一章 对象导论 由此开始. 1.1 抽象过程 java 相对于命令式语言的优势在于只针对于待解问题建模.后者所做的主要抽象要求所做问题基于计算

Java编程思想 学习笔记1

一.对象导论 1.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了纯粹的面向对象程序设计方式 1)万物皆对象. 2)程序是对象的集合,它们通过发送消息来告知彼此所要做的.要想请求一个对象,就必须对该对象发送一条消息.更具体的说,可以把消息想象为对某个特定对象的方法的调用请求. 3)每个对象都有自己的由其他对象所构成的存储.换句话说,可以通过创建包含现有对象的包的方式来创建新类型的对象. 4)每个对象都

[Java编程思想-学习笔记]第1章 对象导论

1.1  抽象过程 Java是一门面向对象的语言,它的一个优点在于只针对待解问题抽象,而不用为具体的计算机结构而烦心,这使得Java有完美的移植性,也即Java的口号"Write Once, Run Anywhere". 所谓的抽象过程,可以理解为对待解问题建模.比如待解问题是一个人,那么我们可以对人进行建模,它的类型是人,有属性姓名.性别.年龄,还有行为吃饭.走路.Java能直接完全据此建模编码,而无需考虑具体的计算机结构.所以当我们阅读Java程序时,正如书上说的"当你在

java编程思想学习笔记

1.equals和==的区别(P65) java主要有两类数据类型: 基本数据类型(原始数据类型),主要有八种:byte,char,short,int,long,float,double,boolean   他们之间的比较用"==",比较的是他们的值 复合数据类型   若用"=="对他们进行比较,比较的是他们在内存中存放的地址,也就是他们的句柄,除非他们是同一个对象,他们"=="的比较结果为true,否则为false. "=="

【java编程思想--学习笔记(三)】访问控制-接口实现与类的访问权限

接口实现 什么是数据类型? java中将数据和方法包装在类中,隐藏具体的实现,其结果就是一种数据类型.(封装产生数据类型) 联想到八大基本数据类型,都具有上述的特点. 由于数据类型的上述特点,创造者将权限的边界划在数据类型的内部,将希望被访问的数据和方法与不希望被访问到的方法和数据分开,隐藏不希望被访问到的方法和数据,实际上就实现了接口和具体实现的分离. 也就是说,了解一个类如何去用,懂得其内部公开的变量和方法就可以. 类的访问权限 上面讲的都是将访问权限设置在类的内部,也可以将访问权限修饰词放

Java编程思想 学习笔记12

十二.通过异常处理错误  Java的基本理念是“结构不佳的代码不能运行”. Java中的异常处理的目的在于通过使用少于目前数量的代码来简化大型.可靠的程序的生成,并且通过这种方式可以使你更加自信:你的程序中没有未处理的错误. 1.概念 C以及其他早期语言常常具有多种错误处理模式,这些模式往往建立在约定俗成的基础上,而并不属于语言的一部分.通常会返回某个特殊值或者设置某个标志,并且假定接收者将对这个返回值或标志进行检查,以判定是否发生了错误.然而,对于构造大型.健壮.可维护的程序而言,这种错误处理

【java编程思想--学习笔记(二)】访问控制-Java访问权限修饰词

如果不提供任何访问修饰词,则意味着它是"包访问权限". 2.1 包访问权限 包访问权限赋予包内的类相互访问彼此成员的权限. 应该说, 包访问权限为将类群聚在一起的行为提供了意义和理由,即建立包的目的不仅仅是为了分类和区分,更是为了是同一个包内的类可以拥有彼此的代码. 取得对某一成员访问权的途径: 1)该成员的访问修饰词为public. 2)通过不加访问权限修饰词并将目标类放在同一包内的方式. 3)继承.子类可以访问父类的public和protected修饰词的成员,但只有在父子类处于同