随笔分类 - 看书
摘要:对象的集合需要在任意时刻,任意位置,创建任意数量的对象。1.数组:数组同其它种类的容器之间的区别:效率、类型和持有基本类型的能力。考虑到效率与类型检查,应该尽可能使用数组,解决一般化问题,数组很受限制。2.数组是第一级对象:数组标识符其实只是一个引用,指向在堆(heap)中创建的一个真实对象,这个(数组)对象用以保存指向其他对象的引用。对象数组保存的事引用,基本类型直接保存基本类型的值。3.基本类型的容器:与包装过的基本类型的容器相比,,创建与访问一个基本类型的数组效率更高。4.Arrays类:它中的static方法,equals(),比较两个数组是否相等;fill(),用某个值填充整个数组;
阅读全文
摘要:类型检查运行期类型识别(RTTI,run-timetypeidentification)在运行期识别对象和类的信息1)(传统的)在编译器和运行期已经知道了所有的类型;2)“反射机制reflection”,在运行期获得类的信息。1.class对象:它包含了与类有关的信息。Java程序并不是一开始执行,就完全加载的。与许多传统语言都不同。一旦某个类的Class对象被载入内存,它就被用来创建这个类的所有对象(class.forName)。2.类字面常量(Classliteral):生成Class对象的引用(.class的形式)不仅可以应用于普通的类,也可以用于接口、数组以及基本数据类型,以外,对于基
阅读全文
摘要:异常与错误处理异常处理是java中唯一正式的错误报告机制,并且通过编译器强制执行。1.基本异常:异常情形不能继续下去,因为在当前环境下无法获得必要的信息来解决问题。要从当前的环境中跳出,并且把问题提交给上一级别的环境。2.异常形式参数:标准异常类有两个构造器:1)缺省构造器2)接受字符串作为参数。3.捕获异常:监控区域(guardedregion)Try块:放置所有动作。异常处理程序(Exceptionhandler):用关键字catch表示。4.终止与恢复(Terminationvs.Resumption):异常处理理论上的两种模型:终止模型,恢复模型。选择使用终止模型,忽略恢复行为。5.创
阅读全文
摘要:接口与内部类看起来像是一种简单的代码隐藏机制,将某些类置于另外一些类的的内部,内部类了解它的外围类(surroundingclass),且能够与之通信。1.接口:接口可以包含数据成员,它们隐含都是static和final的。接口只提供了形式,而未提供任何具体实现。接口被用来建立类与类之间的“协议(protocol)”。接口中被定义的方法必须是public的。2.java的多重继承:接口的组合使用。使用接口的核心原因:1)为了向上转型为不止一个的基类型,2)与抽象基类相同,防止客户端程序员创建该类的对象,并确保仅仅是建立一个接口。3.组合接口时带来的名字冲突:避免想要组合的不同接口中使用相同的方
阅读全文
摘要:多态——“封装”通过合并特征和行为来创建新的数据类型。“实现隐藏”则通过“私有化(private)”将接口和实现分离开来。多态的作用:消除类型之间的耦合关系。又名:动态绑定dynamicbinding/后期绑定latebinding或运行时绑定run-timebinding1.向上转型:将对某个对象的引用视为对其基类型引用的做法被称作“向上转型”,不用管导出类的存在,编写的代码只是与基类打交道。2.方法调用绑定:前期绑定(earlybinding)程序执行前进行绑定---由编译器和链接程序实现。后期绑定(latebinding)在运行时,根据对象的类型进行绑定。3.扩展性:多态——我们所做的代
阅读全文
摘要:复用类复用代码的两种形式:继承和组合1.组合语法(composition):将对象的引用置于新类中,编译器不是简单地为每个引用创建缺省对象,初始化这些引用:在以下位置进行:1)在定义对象的地方,(在构造器吧被调用之前被初始化)2)类的构造器中3)需要使用这些对象之前,(惰性初始化lazyinitialization)2.继承语法(inheritance):为了继承,一般的规则是将所有的数据成员都指定为private,将所有的方法指定为public,调用基类继承而来的方法,使用关键字super3.初始化基类:基类/导出类,当创建一个导出类的对象时,该对象包含了一个基类的子对象(subobject
阅读全文
摘要:隐藏具体实现——如何将变动的事物与保持不变的事物相互隔离。1.包的使用:通过使用Package,访问权限受到影响。包明的唯一性,使得java程序解析,通过classPath以及包名解析到对应的类文件。类名相同,产生冲突,通过包名限定,来处理冲突问题。2.java访问权限修饰符:(accessspecifier),public,protected,private包访问权限:没有指定访问权限,则默认为包访问权限。包中的类可以相互访问。Public接口访问权限:Private:你不可以去碰Protected:继承访问权限:创建新包,能访问父类的public跟protected成员;同一包内,能访问包
阅读全文
摘要:初始化与清除1. 以构造器确保初始化:构造器的命名(类名),创建对象时,将会为对象分贝存储空间,并调用相应的构造器,确保了在操作对象之前,对象已经被初始化了。2. 方法重载:(method overloading)构造器的重载;重载方法的区分,(参数的顺序不同---不建议,会使得代码难以维护)。3. 基本类型的重载:传入的实际参数类型“小于”方法中声明的形式参数类型,实际参数的类型就会被“提升”。Char型略有不同,若无法接受char参数,就会把char直接提升至int型。4. 以返回值区分重载方法:在java中,是行不通的。5. 缺省构造器:类中没有构造器时,编译器会自动创建一个缺省构造器;
阅读全文
摘要:1. java操作符:几乎所有的操作符都只能操作“基本类型(primitives)”。唯一的例外是“=”、“==”和“!=”,这些能操作所有的对象。除此之外,String类还支持“+”和“+=”。2. 优先级:操作符与括号决定表达式中计算的优先级。3. 赋值:“=”是指“取右边的值”。明白基本数据类型与对象赋值的区别。前一个是实际数值即内容的赋值,后者是指“引用”的赋值。4. 别名问题:对象的参数赋值—引用,引起的问题。5. 正则表达式(regular expression):参考JDK文档中的java.util.regex.Pattern。?表示可能有,也可能没有\d表示一个整数,在java
阅读全文
摘要:1.java不同于C,C++,纯粹的面向对象。通过“引用”操作对象。2.java的存储:1)寄存器2)堆栈(stack),java的对象引用存储于其中,java对象并不存储于其中,3)堆(heap):通用的内存池,存放所有的java对象。4)静态存储:是指存放在固定的位置5)常量存储:存放在程序代码内部,永远不会改变,而嵌入式系统中,常量跟代码是分开的,存放于ROM。6)非RAM存储:典型的例子,流对象和持久化对象3.基本类型:存放于堆栈中,类型所占用的存储空间已经被确定,是Java具有可移植性的原因之一。4.高精度数字:BigInteger和BigDecimal,它们没有对应的基本类型。5.
阅读全文
摘要:对象:拥有行为、状态、标识将对象作为服务提供者:通过此思想来进行编程将具体的实现隐藏(通过接口和实现相分离,类内部访问的控制)复用具体的实现(优先使用组合,后使用继承)理解is-a跟is-like-a的关系。多态的实现,可互换的对象(向上转型)java面向对象通过“后期绑定”,当向对象发送消息时,被调用的代码到运行时才能被确定,对存在的方法的参数和返回值执行类型检查(此类语言被称为弱语言),但并不知道确切被执行的代码。抽象基类和接口:抽象基类的子类必须实现父类的抽象方法,否则继承类仍然是个抽象类。接口提供了接口与实现的完美分离。对象的创建、使用和生命周期:java使用堆的内存池来动态地创建对象
阅读全文

浙公网安备 33010602011771号