《Java核心技术》笔记 第8章 泛型编程
泛型类和泛型方法有类型参数,这使得它们可以准确地描述用特定类型实例化时会发生什么。在有泛型类之前,程序员必须使用Object编写适用于多种类型的代码,这既烦琐又不安全。 在本章中,你将了解泛型编程的优势及挑战。 8.1 为何使用泛型编程 泛型编程(generic programming)意味着编写可用于多种不同类型的对象的代码。ArrayList就是一个例子(见5.3节)。 8.1.1...
泛型类和泛型方法有类型参数,这使得它们可以准确地描述用特定类型实例化时会发生什么。在有泛型类之前,程序员必须使用Object编写适用于多种类型的代码,这既烦琐又不安全。 在本章中,你将了解泛型编程的优势及挑战。 8.1 为何使用泛型编程 泛型编程(generic programming)意味着编写可用于多种不同类型的对象的代码。ArrayList就是一个例子(见5.3节)。 8.1.1...
对于异常情况,Java使用一种称为异常处理(exception handling)的错误捕获机制。本章的第1部分将介绍Java的异常。 在测试期间,需要运行大量检查以确保程序的正确性。但是这些检查可能非常耗时,在测试完成后也不必保留。本章的第2部分将介绍如何使用断言来选择性地启用检查。 当程序出现错误时,你可能希望记录出现的问题,以便日后分析。本章的第3部分将讨论标准Java日志框架。 ...
1.简介 Mockito是一个用于Java单元测试的mock框架,用于创建模拟对象(mock object)来替代真实对象,帮助开发者隔离外部依赖,从而专注于单元测试的逻辑。 官方网站:https://site.mockito.org/ 官方文档:https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/M...
1.简介 JUnit是一个Java单元测试框架,用于编写和运行可重复的自动化测试。 官方网站:https://junit.org/junit4/ 官方文档:https://github.com/junit-team/junit4/wiki API文档:https://junit.org/junit4/javadoc/latest/index.html 2.快速入门 http...
本章将介绍几种常用的高级技术:接口、lambda表达式、内部类和代理。 6.1 接口 6.1.1 接口的概念 接口(interface)用来描述类应该做什么(提供哪些方法),而不指定具体应该如何做(如何实现这些方法)。 通常,某个服务的提供者会说:“如果你的类符合某个特定接口,我就会履行这项服务。”下面给出一个具体的示例。Arrays类的sort()方法承诺对对象数组进行排序,但有一个条...
本章将学习面向对象程序设计的另一个基本概念:继承(inheritance)。继承的基本思想是可以基于已有的类创建新的类。继承已有的类就是复用(继承)这些类的方法和字段,而且可以添加新的方法和字段,以满足新的需求。这是Java编程中的一项核心技术。 5.1 类、超类和子类 回到上一章讨论的Employee类。假设经理的待遇与普通员工存在差异,经理除了领取薪水还能得到奖金。这种情形就需要使用继...
本章主要介绍: 面向对象程序设计入门; 如何创建Java标准库中类的对象; 如何编写自己的类。 4.1 面向对象程序设计概述 面向对象程序设计(object-oriented programming, OOP)是当今主流的程序设计范型,它取代了20世纪70年代的过程式程序设计(procedural programming)技术。由于Java是面向对象的,你必须熟悉OOP才能...
本章主要介绍如何在Java中实现基本编程概念,例如数据类型、分支和循环。 3.1 一个简单的Java程序 下面仔细分析一个最简单的Java程序——只是向控制台打印一条消息: 程序清单3-1 FirstSample/FirstSample.java 这个程序虽然很简单,但所有的Java应用都具有这种结构,因此值得花些时间来研究。首先,Java区分大小写。如果出现了大小写错误,程序将无法运...
本章主要介绍如何安装Java开发工具包(JDK)以及如何编译和运行Java程序。 2.1 安装Java开发工具包 过去,Oracle公司提供了最新、最完整的JDK版本。如今,很多不同的公司都为Linux、macOS和Windows提供了最新的OpenJDK构建版本,有些公司的许可证条件比Oracle更宽松。 发行版 官方网站 ...
1.2 Java“白皮书”的关键术语 Java的设计者编写了颇有影响力的“白皮书”,用来解释设计初衷和完成情况。他们还发布了一个简短的摘要,这个摘要按照下面11个关键术语进行组织: 简单性(Simple) 面向对象(Object-Oriented) 分布式(Distributed) 健壮性(Robust) 安全性(Secure) 体系结构中立(Architectur...