Think In Java
ivalue2333
He wept, for there were no more worlds to conquer.
展开
-
Thinking in Java:第一章-对象导论(目前没得对象啊)
目前大四上学期,秋招过去没多久,趁这个时间,系统看一看Thinking in Java。 在对象导论这一块其实没有太多系统性的东西,大概谈谈一些理解就可以了。 1: 编程语言,人类的语言是是一种基于共识的(协议),以人类的角度的对客观世界的描述。有的语言对一些的事物描述很简练,而在同一个问题上有的语言描述却很复杂。编程语言也是一种为了描述客观世界的,从机器和人的角度出发创建出来的。为什么要原创 2017-12-11 14:12:00 · 214 阅读 · 0 评论 -
Thinking in Java:第二十章-注解
1:注解(也被成为元数据),为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后的某个时刻方便的使用这些数据。Java SE5中预先定义了一些元数据,但一般来说,主要还是需要程序员自己添加新的注解,并按照自己的方式使用它们。 2:@Target:定义你的注解将用于什么地方(例如一个方法或者一个域),@Retention:用来定义你的注解在哪一级可以使用,在源代码中(SOURCE),类文原创 2018-02-04 17:55:20 · 179 阅读 · 0 评论 -
Thinking in Java:第十六章-数组
1:数组是一种效率最高的存储和随机访问对象引用序列的方式 2:返回一个数组:IceCream /** * Created By Kevin Gauguin On 2018/1/27 * 能确保返回的数组中不包含相同的元素 */ public class IceCream { private static Random random = new Random(47); p原创 2018-01-27 21:34:04 · 141 阅读 · 0 评论 -
Thinking in Java:第十八章-IO系统
1:输入输出,通过继承,任何来自InputStream 和 Reader 而派生出来的类都含有名为read()的基本方法,任何来自OutputStream 和 Writer 而派生出来的类都含有名为 write() 的基本方法。任何和输入有关的类都继承自InputStream, 任何和输出有关的类都应该继承自OutputStream。 InputStream的作用是用来表示那些从不同数据源产生输原创 2018-02-03 18:14:37 · 121 阅读 · 0 评论 -
Thinking in Java:第十七章-容器深入研究
1:继承AbstractList实现自己的List:CountIntegerList public class CountIntegerList extends AbstractList{ private int size; public CountIntegerList(int size) { this.size = (size < 0 ? 0 : size原创 2018-02-02 18:38:47 · 347 阅读 · 0 评论 -
Thinking in Java:第十五章-泛型
1:泛型实现了参数化类型的概念,使代码可以应用于多种类型,“泛型”的含义就是“适用于好多好多的类型”。 2:实现自己的内部链式存储机制:LinkedStack // 使用泛型设计的一个简单的栈 public class LinkedStack { private class Node { U item; Node next; N原创 2018-01-24 15:41:17 · 166 阅读 · 0 评论 -
Thinking in Java:第十三章-字符串与正则表达式
1:String的定义:public final class String implements java.io.Serializable, Comparable, CharSequence 2:String 对象不可变的,String 类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的Sring 对象,以包含修改后的字符串内容,而最初的String对象不变。 3:Stri原创 2017-12-30 11:51:28 · 243 阅读 · 0 评论 -
Thinking in Java:第十二章-通过异常处理错误
1:当抛出异常后,有几件事随之发生,当前执行路径被终止,并从当前环境中弹出对异常对象的引用。此时,异常处理机制接管程序,并开始寻找一个恰当的地方来继续执行程序。这个恰当的地方就是异常处理程序,它的任务是将程序从错误中恢复,以使得程序继续运行。 2: 恢复模型:操作系统有支持的恢复模型,但是最终在程序中还是选择了“终止模型”的代码,因为恢复模型会导致耦合,恢复性的程序需要了解异常抛出的地点,这势必原创 2017-12-28 09:46:41 · 214 阅读 · 0 评论 -
Thinking in Java:第九章-接口
1:包含抽象方法的类叫做抽象类,如果一个类包含一个或多个抽象方法,该类九必须被设定为抽象的。 2:接口 interface不仅仅一个嫉妒抽象的类,因为它允许人们通过创建一个能够被向上转型为多种基类的类型,来实现类似多重继承变种的特性。接口可以包含域,但是这些域隐式的是static 和 final 3:使用接口的原因:为了能够向上转型为多个基类型。使用接口的第二个原因与使用抽象类相同:防止客户端原创 2017-12-19 11:00:51 · 145 阅读 · 0 评论 -
Thinking in Java:第八章-多态
1:多态:不管导出类的存在,编写的代码至于基类打交道。这样的程序是可以扩展的,因为从通用的基类继承出来的新的数据类型,从而添加一些功能。那些操纵基类接口的方法不需要任何改动就可以应用于新类。 2:后期绑定(oop的编译器):因为在oop中,当向对象发送消息时,被调用的代码直到运行时才确定。编译器确保被调用方法存在,并对调用参数和返回值执行类型检查(无法提供此类保障的称为弱类型的)。为了执行后期绑原创 2017-12-18 10:24:10 · 270 阅读 · 0 评论 -
Thinking in Java:第七章-复用类
1:组合:在新有类中产生现有类的对象,复用了现有程序代码的功能。 2:继承:按照现有类的形式来创建新类。 3:代理:。。。 4:域对象初始化位置 3.1在定义对象的地方,比构造器更早 3.2在类的构造器中 3.3在正要使用这些对象之前 5:当创建一个导出类的对象时,该对象包含了一个基类的子对象。构造函数的调用是从基类“向外”扩散的。 6:@Override 注解,这表示原创 2017-12-15 11:26:48 · 215 阅读 · 0 评论 -
Thinking in Java:第六章-访问控制权限
1:访问权限修饰符:如何把变动的事物和保持不变的事务区分开来。 2:访问权限修饰符:类库开发人员向客户端开发人员指明哪些是可用的,哪些是不可用的。 3:访问权限的控制通常称为具体实现的隐藏,把数据和行为方法包装进类中,以及具体实现的因隐藏。被共同称为封装。 4:类既不可以是private,也不可以是protected,(但是内部类可以使private和protected) 5:访问权限控制原创 2017-12-15 11:00:00 · 208 阅读 · 0 评论 -
Thinking in Java:第十一章-持有对象
1:java容器类都可以自动的调整自己的尺寸。因此,与数组不同,可以将任意数目的对象放置到容器中。 2:程序的输出是从Object默认的toString()方法产生的,该方法打印类名,后面跟随该对象的散列码的无符号十六进制表示。(看看源码就知道了)。 3:Arrays.asLlist() 方法接受一个数组或是一个用逗号分隔的元素列表,并将其转换为一个List对象,Collections.add原创 2017-12-23 15:38:58 · 267 阅读 · 0 评论 -
Thinking in Java:第五章-初始化与清理
1:初始化和清理是设计安全的两个问题。(内存) 2:java使用构造器在用户有能力操作对象之前初始化。 3:人类的语言具有冗余性,即使漏掉几个词,也可以根据语境推测出语义。机器的语言要求精确性。 4:重载方法:相同的函数名,不同的参数列表,不能用返回值类型来区分重载函数。 5:this关键字:表示“调用方法的那个对象”。 6:使用本地方法分配的内存块java垃圾收集器不能回收这部分内存。原创 2017-12-14 11:48:38 · 240 阅读 · 0 评论 -
Thinking in Java:第三章-操作符
1:移位操作符 左移操作符: 右移操作符:>>,高位使用“符号扩展”,符号为正在高位插入0,符号为负在高位插入1。 “无符号右移操作符”:>>>,不论正负,在高位插入0。 2:类型转换 窄化转换:将能容纳更多信息的数据类型转换成无法容纳那么多信息的类型,必须显式转换 扩展转换:可以隐式转换原创 2017-12-14 10:32:10 · 159 阅读 · 0 评论 -
Thinking in Java:第十章-内部类
1:内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起。并控制位于内部的类的可视性。 2:如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象,那么必须具体的指明这个对象的类型:OutClass.InnerClass。当生成一个内部类对象时,此对象与制造它的外围对象之间就有了一种联系,所以它能访问其外围对象的所有成员。 3:每个内部类都可以独立的继承一个(接口的)实习原创 2017-12-21 11:56:43 · 217 阅读 · 0 评论 -
Thinking in Java:第二章-一切都是对象
第二章也没有系统性的东西,谈谈理解吧。 1:创建的对象存储位置 (1)堆栈:这里放对象引用,通过移动栈顶指针来分配和释放内存。 (2)堆:这是一个通用的内存池,存放所有的对象。 2:流对象:将对象转化为字节流。 持久化对象:对象被存放在磁盘。 3:内存泄漏(Memory Leak) 是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪原创 2017-12-12 11:36:05 · 181 阅读 · 0 评论 -
Thinking in Java:第二十一章-并发
1:概述:对于某些问题,能够并发的执行程序中的多个部分,则会变得非常方便甚至非常必要 2:并发的多面性:为了使程序运行的更快,你必须学会如何利用这些额外的处理器,而这正是并发赋予你的能力。从性能的角度来说,如果没有任务会被阻塞,那么在单处理器中使用并发就没有任何意义。 3: 定义任务:LiftOff /** * Created By Percy Gauguin On 2018/2/6 *原创 2018-02-07 14:59:18 · 186 阅读 · 0 评论