
Java编程思想读书笔记
文章平均质量分 75
个人阅读Java编程思想时的读书笔记。
月下栖影
努力搬砖。
展开
-
第20章 注解
单元测试是对类中的每个方法提供一个或多个测试的一种实践,其目的是为了有规律的测试一个类的各个部分是否具备正确的行为。也称为元数据,为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻方便的使用这些数据。TYPE_PARAMETER:1.8版本开始,描述类、接口或enum参数的声明。TYPE_USE:1.8版本开始,描述一种类、接口或enum的使用声明 |** ** | SOURCE:在源文件中有效(即源文件保留)** ** | 允许子类继承父类中的注解 |@Deprecated:过时的。原创 2024-03-08 09:00:00 · 467 阅读 · 0 评论 -
第19章 枚举类型
枚举在Java中是一个小功能,它所带来的价值是在某些方面可以优雅的解决某些问题。原创 2024-03-07 09:37:57 · 329 阅读 · 0 评论 -
第18章 Java I/O系统
java文件读写框架内容,包含io和nio内容。原创 2024-03-05 09:00:00 · 1358 阅读 · 0 评论 -
第17章 容器深入研究
Java集合的深入学习,基于Java编程思想的学习笔记。原创 2024-03-04 09:00:00 · 1145 阅读 · 0 评论 -
第16章 数组
数组在早期版本中是必须的,但是随着泛型和自动装箱技术的出现,容器几乎完全可以替代数组了,在开发中应该使用容器,除非是对性能有极高的要求。原创 2024-03-03 11:10:25 · 261 阅读 · 0 评论 -
第15章 泛型
可以看到,很多通过符组合,表示的意思是,其代表某种意思,但是我们不知道这个意思是什么,其大部分用途是在方法的形参上,让它代表这个意思,然后通过实参,传入具体的类型。泛型最大的价值体现在容器类的使用中;在容器中获得Object对象并转型,出现错误并无法发现并不常见;将容器对象合理命名可以很好的避免这种情况;如此显著和复杂的特性(泛型)并非仅仅为了解决转型的错误;泛型更重要的目的在于表达性;正如泛型的名字,目的是创建出更通用的代码。原创 2024-03-02 09:00:00 · 905 阅读 · 0 评论 -
第14章 类型信息
在很多时候,我们需要判断对象是否为null,书中提供了一种思路,创建单例的空对象,来使所用的变量都不会为null,这样可以避免空指针异常,然而,这并不是完美的,很多情况下,我们需要区别它是否是空对象,这也是变相的判断是否为null。当程序创建第一个对类的静态成员的引用时,就会加载该类,包括静态方法,创建对象。类加载器实际上是一条类加载器链,但是只有一个原生类加载器,原生的加载可信类,一般是从本地磁盘加载的。类是程序的一部分,每个类都有一个Class对象,该对象是由类加载器产生的。限定为某一类型的做法。原创 2024-03-01 09:00:00 · 681 阅读 · 0 评论 -
第13章 字符串
底层是创建StringBuilder对象,使用append()方法,连接字符串,其存在的问题是当处于循环状态时,每次循环都会创建一个StringBuilder对象,因此,速度会变慢。当打印对象时,会调用该对象的toString()方法,当一个对象与String类型相加时,会调用该对象的toString方法,将该对象转为String类型,因此会导致递归调用。在第0行创建了StringBuilder对象,而从15到28行的循环体并没有创建对象,因此,与上种方法对比,速度会更快。"指定,匹配表达式最少字符数。原创 2024-02-29 09:38:40 · 397 阅读 · 0 评论 -
第12章 通过异常处理错误
/ 对于异常来说,最重要的就是类名,一般默认构造器就够用了super(msg);try {// 默认调用try {throw new MyException("说明信息");// 输出到指定流/**/a.txtcom.ding.five.MyException: 说明信息异常与记录日志// 返回指定命名的日志对象,如果存在直接返回,否则创建后返回// 下面两步的操作是将错误信息输入到StringWriter中// 将错误信息打印/*原创 2024-02-28 11:34:26 · 664 阅读 · 0 评论 -
第11章 持有对象
数组将索引与对象联系起来,保存类型明确的对象,可以是多维的,数组一旦生成,容量就不能改变;Collection保存单一元素,Map保存相关联的键值对。可以自动调整大小,不能持有基本类型,但是可以自动包装;List将索引与对象关联,是排好序的容器;大量随机访问使用ArrayList,经常从表中间插入或删除,使用LinkedList;各种Queue和栈的行为,由LinkedList提供支持;Map是将对象与对象相关联的设计。原创 2024-02-28 11:33:07 · 719 阅读 · 0 评论 -
第10章 内部类
可以看到,局部内部类和匿名内部类没有什么区别,它使用的场景有两个:需要使用具名构造器,或者是需要不止一个对象。原创 2024-02-28 11:32:02 · 294 阅读 · 0 评论 -
第9章 接口
java中用实现接口表达拥有某种功能,用继承表现is-a的关系,显然飞行动物不是空中行为,飞行器也不能继承飞行动物,用实现接口更能很好的表达。另外,由于java中的单继承限制,假如现在要创建A类,它需要同时实现B类和C类中的功能,但是B类和C类都是相互独立的,此时通过继承就无法实现了。interface关键字使抽象的概念更向前了一步,只做了声明,没有提供任何的实现,表示“所有实现了该接口的类看起来都像这样”。从另一种角度来说,继承关系中,子类在初始化时会初始化基类,降低性能,而接口不存在这个问题。原创 2024-02-22 16:47:49 · 290 阅读 · 0 评论 -
第8章 多态
结合8.1和8.2的案例可以得出以下结论:只与基类通信,其一可以得到正确的结果;其二,程序是可扩展的,而不用更改现有代码。原创 2024-02-22 16:46:54 · 178 阅读 · 0 评论 -
第7章 复用类
Java并没有提供直接的支持,它是继承和组合之间的中庸之道,方式是将成员对象置于新类中,同时暴露该成员对象的所有方法。**称为向上转型的原因:**类继承图的绘制是将根置于顶端,子类置于下方,所以子类向父类的转换称为向上转型。final类不能被继承,同时隐含了方法为final,因为类不能被继承,所有也不存在被重写的情况。**再论组合与继承:**继承应当慎用,如果新类需要向上转型,则继承是需要的,否则应当使用组合。组合:在新的类中产生现有类的对象,该方法是复用了现有程序代码的功能,而非它的形式。原创 2024-02-22 16:46:21 · 442 阅读 · 0 评论 -
第6章 访问权限控制
使用户不要碰触不该碰触的部分;让类库设计者可以更改类的内部工作方式。原创 2024-02-22 16:45:30 · 479 阅读 · 0 评论 -
第5章 初始化与清理
当无构造器时,编译器会自动创建一个无参构造器;当定义了构造器时(无论是否有参数)编译器都不会再创建构造器。static方法中没有this关键字,通过类直接调用,这也正是它的用处。此时无法确认是哪个方法。原创 2024-02-22 16:43:26 · 437 阅读 · 0 评论 -
第4章 控制执行流程
break和continue只作用于内部迭代,当有多个迭代嵌套时,可以使用标签的形式,从内部改变外部的迭代。原创 2024-02-22 16:41:55 · 339 阅读 · 0 评论 -
第3章 操作符
基本数据类型赋值是赋的本身,对象赋的是内存地址。对其的理解为变量是一块内存空间,右边的内存空间是什么,左边的变量的内存空间就会是什么,因为基本数据类型右边装的就是其本身,所以左边也会是其本身,而变量是内存地址,所以右边也会是内存地址。原创 2024-02-22 16:40:26 · 396 阅读 · 0 评论