『Thinking in Java 读书笔记』—— 15-泛型

  |  

简单泛型

泛型的主要目的之一就是用来指定容器要持有什么类型的对象,而且由编译器你来保证类型的正确性,Java 泛型的核心概念,告诉编译器想使用什么类型,然后编译器帮你处理一切细节。

元组类库

比如要想实现一个元组(它是将一组对象直接打包存储存于其中的一个单一对象)类库,实现如下:

『Thinking in Java 读书笔记』—— 14-类型信息

  |  

Thinking in java 读书笔记

运行时类型信息使得你可以在程序运行时发现和使用类型信息。

Java 通过两种方式在运行时识别对象和类信息的,一种是 传统的RTTI,(RunTime Type Identification 运行时类型定义),假定我们在编译时已经知道了所有的类型。第二种是 反射机制,它允许在运行时发现和使用类信息。

为什么需要 RTTI

啥叫多态,父类方法在子类可能会被覆盖,但是由于方法是动态绑定的,所以即使是通过泛化的父类引用来调用方法,也是可以产生正确的行为,这就是多态。

『Thinking in Java 读书笔记』—— 13-字符串

  |  

Thinking in java 读书笔记

不可变 String

String 对象是不可变的,具有只读特性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Immutable {  
public static String upcase(String s) {
return s.toUpperCase();
}

public static void main(String[] args) {
String q = "howdy";
print(q); // howdy
String qq = upcase(q);
print(qq); // HOWDY
print(q); // howdy(原有 String 没有改变)
}
}
// out:
// howdy
// HOWDY
// howdy

『Thinking in Java 读书笔记』—— 12-通过异常处理错误

  |  

Thinking in java 读书笔记

Java 的基本理念是 「结构不佳的代码不能运行。

发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。这就需要错误源通过某种方式,把适当的信息传递给某个接受者—接收者将知道如何正确处理这个问题。

『Thinking in Java 读书笔记』—— 11-持有对象

  |  

Thinking in java 读书笔记

如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序。

通常,程序总是根据运行时才知道的某些条件去创建新对象,在此之前,不会知道所需对象的数量,甚至不知道确切的类型。为解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象。所以,就不能依靠创建命名的引用来持有每一个对象。

『Thinking in Java 读书笔记』—— 10-内部类

  |  

Thinking in java 读书笔记

可以将一个类的定义放在另一个类的定义内部,这就是内部类。

前言

内部类非常的有用,因为它允许你把一些逻辑相关的类组织在一块,并控制位于内部的类的可视性,内部类和组合是完全不同的概念,这点很重要。

『Thinking in Java 读书笔记』—— 9-接口

  |  

Thinking in java 读书笔记

接口和内部类为我们提供一种将接口与实现分离的更加结构化的方法。

接口

interface关键字使抽象的概念更买进一步,abstract关键字允许人们在类中创建一个或者多个没有任何定义的方法,但是没有提供任何相应的具体实现,这些实现是由此类创建者创建。interface这个关键字产生一个完全抽象类。它根本就没有具体的实现。

interface不仅仅是一个极度抽象的类,因为它允许人们通过创建一个能够被向上转型为多种基类的类型,来实现某种类似多重继承变种的特性。

您是第 位小伙伴 | 本站总访问量 | 已经写了 120.4k 字啦

载入天数...载入时分秒...