Java 读书笔记 15泛型

泛型

泛型的来源,首先我们知道类是存在聚合的,就是这个类有其他类的对象;那么问题来了,我今天用你,明天用别人;怎么办呢?

1
2
public class Automobile { //普通模式有这么一个类
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Holder1 {
private Automobile a; //类间聚合;但是你必须编译的时候就定义啊;
public Holder1(Automobile a) //完全不能改变的时候
{
this.a=a;
}
Automobile get()
{
return a;
}
private Object b; //定义Object可以通过向下转型的方式储存其他对象,但是自然是麻烦的;
public Holder1(Object b)
{
this.b=b;
}
public void setB(Object b)
{
this.b = b;
}
public Object getB() {
return b;
}
}

more >>

Java 读书笔记 14.1-14.6 RTTI

RTTI

Runtime Type Information
好吧,时隔多日我又来啃这块骨头了;

RTTI顾名思义 运行时类型信息;编译的时候不知道,只有当具体运行时才知道是什么类型信息;Java编程思想好像也没说是怎么具体实现的;我也只能管中窥豹了;

首先,我们知道多态,那么多态是啥呢?
维基百科说:
多态也可定义为“一种将不同的特殊行为和单个泛化记号相关联的能力”

这就让我想起了继承关系;不论是哪个子类都可以用父类表示;编译时是父类,运行时就变成子类了;这就是RTTI了;厉害吧;

more >>

Java 读书笔记 14.7 动态代理

动态代理

这一章的难度加上翻译的水准使得我实在好像是在看天书啊,所以分开写了;

静态代理

首先我们来看看静态代理:

1
2
3
4
5
public interface Sell //说呢,从古至今都有这么一个卖的接口,谁都可以卖东西;
{
void sell();
void ad();
}

more >>

Java 读书笔记13 字符串

字符串

不可变的字符串

早就听说java字符串是不变的;那么到底是怎么回事呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Immutable {
public static String upcase(String s)
{
return s.toUpperCase();
}
public static void main(String a[])
{
String q ="howdy";
System.out.println(q); //howdy
//String qq = new String("aaaa");
String qq = upcase(q);
System.out.println(qq);//HOWDY
System.out.println(q);//howdy
}
}

more >>

Java 读书笔记12 异常处理

异常处理

这章偏向实际,笔记没法记;真正多用就会了

try-catch-finally 规则(异常处理语句的语法规则):

1) 必须在 try 之后添加 catch 或 finally 块。try 块后可同时接 catch 和 finally 块,但至少有一个块。
2) 必须遵循块顺序:若代码同时使用 catch 和 finally 块,则必须将 catch 块放在 try 块之后。
3) catch 块与相应的异常类的类型相关。
4) 一个 try 块可能有多个 catch 块。若如此,则执行第一个匹配块。即Java虚拟机会把实际抛出的异常对象依次和各个catch代码块声明的异常类型匹配,如果异常对象为某个异常类型或其子类的实例,就执行这个catch代码块,不会再执行其他的 catch代码块
5) 可嵌套 try-catch-finally 结构。
6) 在 try-catch-finally 结构中,可重新抛出异常。
7) 除了下列情况,总将执行 finally 做为结束:JVM 过早终止(调用 System.exit(int));在 finally 块中抛出一个未处理的异常;计算机断电、失火、或遭遇病毒攻击。

more >>