![](https://img-blog.csdnimg.cn/20200402135815818.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java编程思想
java编程思想第四版阅读
NULL_ZGX
这个作者很懒,什么都没留下…
展开
-
Java编程思想__泛型(七完结)
动态类型安全因为可以向JavaSE5之前的代码传递泛型容器,所以旧式代码仍旧有可能会破坏你的容器,JavaSE5的 java.util.Collections 中有一组便利工具,可以解决在这种情况下的类型检查问题,它们是: 静态方法 checkedCollection() , checkedList() , checkedMap() , checkedSet() , checkedSortedMap() 和 checkedSortedSet()。 这些方法每一个都会将你希望动态检查的容器当做第一个.原创 2020-07-11 17:32:31 · 332 阅读 · 0 评论 -
Java编程思想__泛型(六)
捕获转换有一种情况特别需要使用<?> 而不是原生类型。 如果想一个使用 <?> 的方法传递原生类型,那么对编译器来说,可能会推断出实际的类型参数,是的这个方法可以回调另一个使用这个确切类型的方法。public class CaptureConversion { static <T> void f1(Holder<T> holder){ T holderT = holder.getT(); System.out原创 2020-07-09 15:23:32 · 221 阅读 · 0 评论 -
Java编程思想__泛型(五)
边界边界使得你可以在用于泛型的参数类型上设置限制条件。 尽管这使得你可以强制规定泛型可以应用的类型,但是其潜在的一个重要的效果是你可以按照自己的边界类型来调用方法。 因为擦除移除了类型信息,所以,可以用无边界泛型参数调用的方法只是那些可以用 Object调用的方法。但是如果能够将这个参数限制为某个类型子集,那么你就可以用这些类型子集来调用方法。 为了执行这种限制,Java 泛型重用了 extends 关键字。对你来说有一点很重要,既要理解 extends 关键字在泛型边界上下文环境中和在普通情况下原创 2020-06-28 15:53:50 · 255 阅读 · 0 评论 -
Java编程思想__泛型(四)
边界处的动作正是因为有了擦除,我们发现泛型最令人困惑的方面源自这样一个事实,即可以表示没有任何意义的事物。public class ArrayMaker<T> { private Class<T> tClass; public ArrayMaker(Class<T> tClass) { this.tClass = tClass; } public T[] create(int size){ re原创 2020-06-17 16:35:03 · 282 阅读 · 1 评论 -
Java编程思想__泛型(三)
下面是使用模板的C++示例, 你将注意到用于参数化类型的语法十分相似,因为Java是受C++的启发。template<class T> class Manipulator{ T obj; public: Manipulator(T x){ obj=x; } void maniput(){ obj.f(); } }class HasF{ public: void f(){ cout << "HasF原创 2020-06-11 11:55:37 · 343 阅读 · 0 评论 -
Java编程思想__泛型(二)
泛型还可以应用于内部类以及匿名内部类。public class Customer { private static long counter=1; private final long id=counter++; public Customer() { } @Override public String toString() { return "Customer{" + "id=" + id +原创 2020-06-06 16:40:29 · 206 阅读 · 0 评论 -
Java编程思想__泛型(一)
一般的类和方法,只能使用具体的类型,要么是基本类型,要么是自定义的类。如果要编写可以适用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。 在面向对象编程语言中,多态是一种泛化机制。 JavaSE5 的重大变化之一: 泛型的概念。泛型实现了参数化类型的概念,使代码可以应用于多种类型。泛型 这个术语的意思是 : 适用于许多许多的类型。 如果你了解其他语言(例如C++) 中的参数化类型机制,你就会发现,有些以前能够做到的事情,使用Java泛型机制缺无法做到。使用别人构建好的泛型类型相当容易。但是如果你原创 2020-06-04 17:51:00 · 404 阅读 · 0 评论 -
Java编程思想__类型信息
运行时类型信息使得你可以在程序运行时发现和使用类型信息。什么是RTTI运行时类型识别(RTTI, Run_Time Type Identification) 是Java中非常有用的机制,在Java运行时,RTTI 维护类的相关信息。为什么需要RTTI最通用的类型(泛型)是基类Shape , 而派生出具体类有 Circle , Square 和 Triangle 。如下图 ...原创 2020-05-22 11:24:08 · 620 阅读 · 0 评论 -
Class.forName("Gum")为什么加载不到当前类
今天看到java编程思想,示例上使用 Class.forName("xx")来进行加载类,书上的运行结果和我实际运行结果不一致,经过问度娘最终发现了问题所在。书上示例为:接下来我运行程序做了个实验package classtype;/** * @author Administrator * @version 1.0 * @date 2020/5/11 14:04 */ class Candy { static { System.out.prin..原创 2020-05-11 14:48:16 · 1655 阅读 · 1 评论 -
Java编程思想__字符串
可以证明,字符串操作是计算机程序设计中最常见的行为。不可变StringString 对象时不可变的。查看JDK文档你就会发现,String 类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象则丝毫未动。public class Immutable { static String upca...原创 2020-05-09 16:34:44 · 352 阅读 · 0 评论 -
Java编程思想__通过异常处理错误
Java 的基本理念是 结构不佳的代码不能运行。 发现错误的理想时机是在编译阶段,也就是你试图运行程序之前。然而,编译期间并不能找出你的所有错误,余下的问题必须在运行期间解决。这就是需要错误源能通过某种方式,把适当的信息传递给某个接受者__该接受者将指导如何正确处理这个问题。 改进的错误恢复机制是提供 代码健壮性的最强力的方式。错误恢复在我们所编写的每一个程序中都是最基本的要素,但是在Java...原创 2020-04-28 11:57:58 · 682 阅读 · 0 评论 -
Java编程思想__持有对象
如果一个程序只包含固定数量的且生命周期都是已知的对象,那么这是一个非常简单的程序。 通常,程序总是根据运行时才知道的某些条件去创建新对象。这次之前,不会知道所需对象的数量,甚至不知道确切的类型。为了解决这个普通的编程问题,需要在任意时刻和任意位置创建任意数量的对象。所以,就不能依靠创建命名的引用来持有每一个对象:myType aReference因为你不知道实际上会需要多少这样的引用。...原创 2020-04-26 13:56:33 · 245 阅读 · 0 评论 -
Java编程思想__接口
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。抽象类和抽象方法Java提供了一个叫做 抽象方法 的机制,这种方法是不完整的,仅有声明而没有方法体。如下abstract void f();包含抽象方法的类叫做 抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的(否则编译器就会报错) 如果从一个抽象类继承,并想创建该新类的对象,那么就必须为抽象方法...原创 2020-04-18 09:52:21 · 283 阅读 · 0 评论 -
Java编程思想__多态
在面向对象的程序设计语言中, 多态是继数据抽象和继承之后第三个基本特征。 多态通过分离 做什么 和 怎么做, 从另一角度将接口和实现分离开来。多态不但能改善代码的组织结构和可读性,还能够创建可扩展的程序__即无论在项目最初创建时还是在需要添加新功能时都可以 生长 程序。 封装 通过合并特征和行为来创建新的数据类型。实现隐藏 则通过将细节 私有化 把接口和实现分离开来。在论向上转型对...原创 2020-04-14 11:50:55 · 220 阅读 · 0 评论 -
Java编程思想__复用类
复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言, 仅仅能够复制代码并对之加以改变是不够的,它还必须能够做更多的事情。 新的类是由现有类的对象所组成,这种方法称为 组合。 按照现有类型来创建新类。无需改变现有类的形式,采用现有类的形式并在其中添加新代码。被称为 继承。组合语法组合,只需将对象引用置于新类中即可。public class WateSource...原创 2020-04-11 14:38:20 · 171 阅读 · 0 评论 -
Java编程思想__访问权限控制
访问控制( 或隐藏具体实现)与最初的实现并不恰当 有关。 Java提供了访问修饰词,以供类库开发人员向客户端程序员指明那些是可用的,那些是不可用的。访问权限控制的等级,从最大权限到最小的权限依次为: public , protected , 包访问权限(没有关键词) 和 private 。 ...原创 2020-04-10 11:58:13 · 227 阅读 · 0 评论 -
Java编程思想--控制执行流程和初始化与清理
在Java 中,涉及的关键字包括 if-else ,while ,do-while ,for , return , break 以及选择语句 switch,然而, Java并不支持 goto 语句(该语句引起许多反对意见,但它仍是解决某些特殊问题的最便利的方法)。在Java中,仍然可以进行类似 goto那样的跳转,但比起典型的 goto ,有了很多限制。 所有的条件语句都利用条件表达式的...原创 2020-04-09 14:02:52 · 272 阅读 · 0 评论 -
Java编程思想-操作符
在最底层,Java中的数据是通过使用操作符来操作的。使用Java操作符操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不同,但效果是相同的。加号和一元的正号(+), 减号和一元的符号(-), 乘号(*) ,除号(/) 以及赋值号(=)的用法与其他编程语言类似。 操作符作用于操作数,生成了一个新值。另外,有些操作符可能会改变操作数自身的值, 这被称为 副作用。那...原创 2020-04-07 13:37:05 · 281 阅读 · 0 评论 -
java编程思想-一切都是对象
1.一切都是对象 尽管Java是基于C++的,但是相比之下,Java 是一种更 纯粹 的面向对象程序设计语言。 C++和 Java 都是混合/杂合型语言。但是, Java 的设计者认为这种杂合型并不像在C++中那么重要。杂合型语言允许多种编程风格,C++之所以称为一种杂合型语言主要是因为它支持与C语言的向后兼容。因为C++是C的一个超集,所以势必包括许多C语言不具备的特...原创 2020-04-03 15:44:02 · 315 阅读 · 0 评论