摘要:
本文转载自知乎问题 "Java JDK动态代理Proxy类的原理是什么?" 下用户 "@胖君" 回答 1. 什么是代理? 先从代理开始讲。 代理这种设计模式其实很好理解,基本就是最简单的一个 “组合”。比如说下面这个例子,我们有 A 这个类,本来可以直接调用 A 类的 foo() 方法。但代理模式就 阅读全文
摘要:
字符串操作是计算机程序设计中最常见的行为。 13.1 不可变 String String 对象是不可变的。String 类中每一个看起来会修改 String 值的方法,实际上都是创建了一个全新的 String 对象去包含修改后的字符串内容;而最初的 String 对象则没有改变。 每当吧 Stirn 阅读全文
摘要:
Java 的基本理念是“结构不佳的代码不能运行”。 异常处理是 Java 中唯一正式的错误报告机制,并且通过编译器强制执行。 12.1 概念 异常机制会保证能够捕获错误,并且只需在一个地方(即 异常处理程序 中)处理错即可。 12.2 基本异常 异常情形 (exceptional condition 阅读全文
摘要:
如果一个程序只包含固定数量的且生命周期都是已知的对象,那么这是一个非常简单的程序。 Java 类库中提供一套 容器类 ,来存储比较复杂的一组对象。其中有 、`Set Queue Map Collection` 接口)。 11.1 泛型和类型安全的容器 在 Java SE5 之前的容器,编译器是允许向 阅读全文
摘要:
将一个类的定义放在另一个类的定义内部,这就是 内部类 。 10.1 创建内部类 内部类的名字是嵌套在外部类里面的 外部类可以有方法,返回一个指向内部类的调用。(外部类中可以调用内部类) 如果在外部类中,希望能在 除了静态方法之外 的任意位置创建某个内部类对象,那么可以向下面这样指明对象类型。 10. 阅读全文
摘要:
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 9.1 抽象类和抽象方法 Java 提供 抽象方法 机制,这种方法时不完整的,仅有声明,没有方法体。 包含抽象方法的类叫做 抽象类 。如果一个类包含一个或多个抽象方法,那么该类必须被限定为是抽象的(否则编译器报错)。 一个抽象类不完整 阅读全文
摘要:
在面向对象的程序设计语言中,多态是继 数据抽象 和 继承 之后的第三种基本特征。 多态分离了“ 做什么 ”和“ 怎么做 ”,让接口和实现分离开,改善了代码的可读性和组织结构,创建了 可拓展 的程序。 封装,通过合并特征和行为来创建新的数据类型。 实现隐藏,通过将细节“私有化”把接口和实现分离开来。 阅读全文
摘要:
Java 中复用代码的方法: 1. 组合:只需在新的类中产生现有类的对象。 2. 继承:按照现有类的类型来创建新的类,无需改变现有类的形式。 3. 代理:继承和组合之间的方式 7.1 组合语法 其实就是在一个类中引入其他类作为属性/域。 类中域为基本类型时会被自动初始化为0或 false,对象会被初 阅读全文
摘要:
访问控制的初衷,是为了将变动的事物与需要保持不变的事务区分开来。 public protected '' private 6.1 包:库单元 当编写一个 Java 源代码文件是,此文件被称为编译单元(或是转译单元)。 每个编译单元必须有一个后缀名.java,而编译单元内则可以有一个 public 类 阅读全文
摘要:
4.1 true & false 所有条件语句都利用条件表达式的真或假来决定执行路径。 Java 中不允许使用数字作为布尔值来使用。 4.2 if else 没啥记的 4.3 迭代 while/do...while/for 语句重复执行,知道其控制作用的布尔表达式得到假为止 Math.random( 阅读全文