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

『Thinking in Java 读书笔记』—— 8-多态

  |  

Thinking in java 读书笔记

前言

记得刚接触Java的时候,整天被老师灌输的就是「封装」、「继承」、「抽象」和「多态」,因为这是面向对象语言基本的特征。尴尬的是,直到大学毕业了也没有彻底搞懂…

多态通过分离「做什么」和「怎么做」,从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能创建可扩展的程序–即无论在项目最初创建时还是需要添加新功能都可以生长的程序。

「封装」通过合并特征和行为来创建新的数据类型,实现隐藏则通过将细节私有化把接口和实现分离开来,这种类型的组织机制对那些拥有过程化程序设计背景的人来说,更容易理解。而「多态」的作用则是消除类型之间的耦合关系。

『Thinking in Java 读书笔记』—— 7-复用类

  |  

Thinking in java 读书笔记

复用代码是 Java 众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够复制diamante并对之加以改变是不够的,它还必须能够做更多的事情。

组合用法

这个用户最为常用,即在新建的类中,持有别的对象的引用。假设你需要某个对象,它要具有多个 String 对象,几个基本类型数据,以及另一个了类的对象,这种使用在开发中最为常见。对于非基本类型的对象,必须将其引用置于新的类中。

『Thinking in Java 读书笔记』—— 6-访问权限控制

  |  

Thinking in java 读书笔记

前言

我还记得第一次面试的时候,就是问 publicprotectedprivate的区别,当时技术很渣,虽然知道是什么意思,但是表述的不是那么清楚,当时搞得自己很紧张,后面的问题也没有回答的很好。。。

访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关

Java 访问权限修饰词

public

使用关键字public关键字,就意味着public之后紧跟着的成员声明自己对每个人都是可用的,尤其是使用类库的客户程序员更是如此。

protected

继承访问权限,通过继承可以利用一个现有类~我们将其称为基类,基类的创建者会希望有某个特定成员,把它的访问权限赋予派生类而不是所有类。protected也提供包访问权限,也就是说,相同包内的其他类也可以访问protected元素。

private

除了包含该成员的类之外,其他任何类都无法访问这个成员,等于说是隔离了自己。

『Thinking in Java 读书笔记』—— 5-初始化与清理

  |  

Thinking in java 读书笔记

随着计算机革命的发展,不安全的编码方式逐渐成为编程代价高昂的主因之一。

前言

初始化和清理是涉及程序安全的了两个问题,如果处理不好的话,很容易在运行的时候出现奔溃,造成很不好的用户体验。首先初始化,在开发的过程中,每当创建基本类型或者是其他对象,都会下意识的初始化,虽然全局变量会默认有个初始值,局部变量编译时期就会报错,但是我们还是要养成创建同时初始化的好习惯。至于清理,不像 C/C++内存需要自己分配和释放,Java内置的虚拟机,已经帮助我们完成这件事情了,但是在开发的过程中,还是要注意一些资源的释放,免得造成内存泄漏等异常。

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

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