软件测试---接口测试基础理论

本文详细介绍了软件开发中模块化单元的概念,重点阐述了接口测试的含义及其不同类型,涵盖了HTTP状态码、常用的接口请求方法GET和POST的示例,以及如何通过测试覆盖率指标来评估测试质量。此外,还讨论了Cookie、Session和Token在身份验证中的作用以及从URL输入到前端界面的整个过程。
摘要由CSDN通过智能技术生成

软件开发中常见的模块化单位

  • 在软件开发中,模块是指具有独立功能和责任的软件组件,它可以是一个类、一个函数或一个方法
  • 模块化是一种软件设计和开发的方法,通过将系统划分为多个模块,每个模块负责完成特定的任务,从而提高代码的可维护性、可重用性和可测试性。

接口测试的接口是什么

  • 在软件开发中,接口是指不同软件模块之间进行通信和交互的一种方式
  • 接口测试是对软件系统的接口进行测试,主要验证接口的功能、性能、可靠性等方面是否符合预期。接口测试的接口可以指以下几种类型:
    • 应用程序接口(API):API是一组定义了软件组件之间交互方式的规范。在接口测试中,通常会测试API的输入和输出是否符合预期,以及API的功能是否正常。
    • Web服务接口:Web服务接口是通过HTTP或其他协议进行通信的接口。接口测试可以验证Web服务接口的请求和响应是否正确,包括参数传递、数据格式、错误处理等。
    • 数据库接口:数据库接口是应用程序与数据库之间的连接方式。接口测试可以验证数据库接口的查询、插入、更新和删除等操作是否正确,以及数据的一致性和完整性。
    • 消息队列接口:消息队列接口用于在不同系统之间传递消息。接口测试可以验证消息队列接口的消息传递是否准确、顺序是否正确,以及消息的可靠性和稳定性。
    • 第三方接口:第三方接口是与外部系统或服务进行交互的接口,如支付接口、地图接口等。接口测试可以验证第三方接口的调用和返回结果是否符合预期,以及错误处理和异常情况的处理是否正确。
  • 通过对接口进行测试,可以确保不同模块之间的数据传递和功能调用的正确性,提高系统的稳定性和可靠性。

为什么需要做接口测试

  • 功能验证:接口测试可以验证接口的功能是否符合预期。通过发送合法和非法的请求,检查接口的响应是否正确,包括返回的数据、状态码、错误处理等。这有助于发现接口中的潜在问题和错误。
  • 兼容性测试:接口测试可以验证接口在不同环境和平台上的兼容性。例如,不同的操作系统、浏览器或设备可能对接口的请求和响应有不同的要求,接口测试可以确保接口在各种环境下都能正常工作。
  • 性能评估:接口测试可以评估接口的性能和可靠性。通过模拟并发请求、大数据量请求或长时间运行的请求,可以测试接口的响应时间、吞吐量和稳定性,以确保接口在高负载情况下仍能正常运行。
  • 安全性检查:接口测试可以检查接口的安全性。通过发送恶意请求、SQL注入、跨站脚本攻击等,可以测试接口的安全性和防护机制,以确保接口对潜在的安全威胁具有足够的防护能力。
  • 集成测试:接口测试可以验证不同模块之间的集成是否正确。通过测试接口的输入和输出,可以确保各个模块之间的数据传递和功能调用的正确性,提高整个系统的稳定性和可靠性。
  • 版本控制:接口测试可以帮助控制软件版本的变更。通过对接口进行测试,可以确保在进行版本更新或修改时,接口的功能和行为不会受到破坏或影响,保证系统的稳定性和一致性。

常见的HTTP状态码

  • 200 OK:表示请求成功。这是最常见的状态码,表示服务器成功处理了请求并返回了正确的结果。
  • 201 Created:表示请求成功并创建了新的资源。通常在进行资源的创建操作时返回,表示服务器已成功创建了请求中指定的资源。
  • 400 Bad Request:表示客户端发送的请求有错误。可能的错误包括请求参数缺失、格式错误、非法输入等。客户端需要修正请求后重新发送。
  • 401 Unauthorized:表示请求未经授权。客户端需要提供有效的身份验证信息或登录凭证才能访问受限资源。
  • 403 Forbidden:表示服务器拒绝了请求。客户端没有访问请求资源的权限,无法进行操作。
  • 404 Not Found:表示请求的资源不存在。服务器无法找到请求的资源,可能是因为URL错误、资源被删除或未发布等。
  • 500 Internal Server Error:表示服务器内部错误。服务器在处理请求时发生了意外错误,无法完成请求的处理。
  • 503 Service Unavailable:表示服务器暂时无法处理请求。可能是服务器过载、维护或临时故障等原因导致无法提供服务。

介绍一下HTTP网络协议

  • HTTP协议是Web通信的基础,它定义了客户端和服务器之间的通信规范
  • 通过遵循HTTP协议,可以实现可靠、高效的数据传输和交互,支持各种Web应用的开发和运行。
  • 它是一种无状态的、面向请求-响应的应用层协议
    • 无状态性:HTTP是一种无状态的协议,即服务器不会保留之前请求的任何状态信息。每个请求都是独立的,服务器只根据当前请求进行处理,不会记住之前的请求。
    • 请求-响应模型:HTTP使用请求-响应模型进行通信。客户端发送HTTP请求到服务器,服务器接收请求并返回HTTP响应。请求和响应都包含了一些元数据,如请求方法、URL、头部信息等。
    • URL:HTTP使用URL(Uniform Resource Locator)来标识资源的位置。URL由协议类型、主机名、端口号、路径和查询参数组成,用于定位服务器上的特定资源。
    • 请求方法:HTTP定义了一些常用的请求方法,如GET、POST、PUT、DELETE等。不同的请求方法用于执行不同的操作,如获取资源、提交数据、更新资源等。
    • 状态码:HTTP响应包含一个状态码,用于表示请求的处理结果。常见的状态码有200 OK(请求成功)、404 Not Found(资源未找到)、500 Internal Server Error(服务器内部错误)等。
    • 头部信息:HTTP请求和响应都包含一些头部信息,用于传递附加的元数据。头部信息可以包含请求的内容类型、响应的长度、缓存控制等。
    • 持久连接:为了提高性能,HTTP支持持久连接。通过在请求头部添加Connection: keep-alive,客户端和服务器可以在单个TCP连接上发送多个请求和响应,减少了连接的建立和关闭开销。
    • 安全性:为了保护数据的安全性,HTTP可以使用TLS(Transport Layer Security)或SSL(Secure Sockets Layer)进行加密和身份验证,形成HTTPS协议。

常用的接口请求方法

  • GET:用于获取资源,通过URL传递参数,请求的结果会被包含在响应体中返回。GET请求是幂等的,即多次请求同一个URL的结果应该是相同的,不会对服务器产生副作用。
  • POST:用于提交数据,将请求的数据包含在请求体中发送给服务器。POST请求通常用于创建新资源、提交表单数据等。相对于GET请求,POST请求不是幂等的,多次请求可能会对服务器产生副作用。
  • PUT:用于更新资源,将请求的数据包含在请求体中发送给服务器,并替换指定URL的资源。PUT请求是幂等的,多次请求同一个URL的结果应该是相同的。
  • DELETE:用于删除资源,指定URL删除服务器上的资源。DELETE请求是幂等的,多次请求同一个URL的结果应该是相同的。
  • PATCH:用于部分更新资源,类似于PUT请求,但是只更新指定URL的部分内容。
  • HEAD:与GET请求类似,但只返回响应头部,不返回响应体。HEAD请求常用于获取资源的元数据,如文件大小、修改时间等。
  • OPTIONS:用于获取服务器支持的请求方法、跨域请求时的预检请求等。服务器会返回支持的方法、头部信息等。

进行GET和POST接口测试

  • 验证接口返回的响应是否符合预期。包括状态码、响应体、响应头等的验证。对于GET接口,关注返回的数据是否正确;对于POST接口,关注返回的状态和结果是否符合预期。
  • 对于GET接口,关注URL中的查询参数,确保参数的正确性和完整性。对于POST接口,关注请求体中的参数,包括表单数据、JSON数据等。验证参数的类型、格式、范围等是否符合要求。

GET 接口测试:

  • 使用工具(如 Postman、Insomnia 等)创建一个新的请求。
  • 设置请求的 URL,选择 HTTP 方法为 GET。
  • 添加必要的请求参数(如查询参数)。【查询参数(Query Parameters)是GET请求中附加在URL路径后面的部分,它们以?符号开始,参数名和值之间用=连接,多个参数之间用&分隔。查询参数通常用于传递少量、临时的信息,这些数据不会被包含在请求主体(Request Body)中,而是直接暴露在URL中,因此不适宜传输敏感数据。】
  • 发送请求并查看返回的响应,验证响应状态码、响应数据等是否符合预期。
  • 可以根据需要进行多次请求以覆盖不同的测试场景。

POST 接口测试:

  • 使用工具创建一个新的请求。
  • 设置请求的 URL,选择 HTTP 方法为 POST。
  • 添加请求体(如 JSON 格式的数据)作为 POST 请求的参数。
  • 设置请求头(如 Content-Type)。
  • 发送请求并查看返回的响应,验证响应状态码、响应数据等是否符合预期。
  • 可以根据需要修改请求体内容,进行多次请求以覆盖不同的测试场景。

GET请求示例

import requests

url = 'http://example.com/api/user'
params = {'id': '123'}

response = requests.get(url, params=params)
print(response.text)
  • 这个示例使用了Pythonrequests库发送了一个GET请求。请求的URLhttp://example.com/api/user,查询字符串参数通过params参数传递,其中id参数的值为123。服务器返回的响应可以通过response.text获取。

POST请求示例

import requests
import json

url = 'http://example.com/api/login'
headers = {'Content-Type': 'application/json'}
data = {
    'username': 'example_user',
    'password': 'example_password'
}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
  • 这个示例同样使用了Pythonrequests库发送了一个POST请求。请求的URLhttp://example.com/api/login,请求头中指定了Content-Type为application/json,请求体中的数据通过data参数传递,其中包含了一个JSON对象,包含了用户名和密码的键值对。服务器返回的响应可以通过response.text获取。

常见的HTTP请求库或框架

除了Python的requests库,还有其他一些常用的HTTP请求库或框架,可以用于发送和处理HTTP请求。

  • urllib:Python标准库中的urllib模块提供了一些用于发送HTTP请求的功能,例如urllib.request模块可以用于发送GET和POST请求。
import urllib.request

url = 'http://example.com/api/user?id=123'
response = urllib.request.urlopen(url)
print(response.read().decode('utf-8'))
  • http.client:Python标准库中的http.client模块也提供了发送HTTP请求的功能,可以用于底层的HTTP通信。
import http.client

conn = http.client.HTTPSConnection("example.com")
conn.request("GET", "/api/user?id=123")
response = conn.getresponse()
print(response.read().decode('utf-8'))
  • httplib2:一个功能强大的HTTP请求库,支持各种HTTP方法和功能,包括缓存、认证等。
import httplib2

http = httplib2.Http()
response, content = http.request("http://example.com/api/user?id=123", "GET")
print(content.decode('utf-8'))
  • aiohttp:一个基于异步IO的HTTP客户端库,适用于异步编程环境。
import aiohttp
import asyncio

async def main():
    async with aiohttp.ClientSession() as session:
        async with session.get('http://example.com/api/user?id=123') as response:
            print(await response.text())

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

cookie、session、token

  • Cookie、Session和Token是常用的身份验证和状态管理机制

cookie

用途:

  • Cookie一种在客户端存储数据的机制,主要用于跟踪和识别用户。它可以存储用户的身份认证信息、用户偏好设置等。

机制:

  • 当用户访问一个网站时,服务器可以通过在响应头部中设置Set-Cookie字段来发送一个Cookie给客户端。
  • 客户端会将Cookie保存在本地,并在后续的请求中通过在请求头部中添加Cookie字段来发送Cookie给服务器。
  • 服务器可以读取和解析Cookie,从而识别用户和提供个性化的服务。

token

用途:

  • Token一种用于身份验证和授权的机制,主要用于保护API和资源的访问

机制:

  • 当用户进行身份验证成功后,服务器会生成一个Token,并将Token发送给客户端。
  • 客户端在后续的请求中通过在请求头部中添加Authorization字段来发送Token给服务器。
  • 服务器会验证Token的有效性,并根据Token中的信息来识别用户和授权访问。

session

用途:

  • Session用于在服务器端存储用户的会话信息,主要用于跟踪用户的状态和保持用户的登录状态

机制:

  • 当用户第一次访问网站时,服务器会为该用户创建一个唯一的会话标识(Session ID),并将该Session ID存储在服务器端。
  • 服务器会将Session ID发送给客户端,通常是通过在响应头部中设置Set-Cookie字段来发送一个包含Session ID的Cookie
  • 客户端在后续的请求中会将该Cookie发送给服务器。
  • 服务器根据Session ID来查找对应的会话数据,从而识别用户和维护用户的状态。

从浏览器键入URL到前端界面返回信息的整个过程

【整个过程涉及浏览器、网络、服务器和前端技术等多个方面,浏览器负责解析和渲染页面,网络负责数据传输,服务器负责处理业务逻辑和数据操作,前端技术则是构建页面和实现交互的关键。】

  1. 用户在浏览器地址栏输入URL
  2. 浏览器解析URL,提取出协议(如HTTP/HTTPS)、域名(如www.example.com)和路径(如/path/to/page)等信息。
  3. 浏览器进行DNS查询,将域名解析为IP地址。
  4. 浏览器与服务器建立TCP连接(三次握手)。
  5. 浏览器发送HTTP请求到服务器,请求中包含请求方法(如GET、POST)、请求头(如User-Agent、Accept-Encoding)和请求体(如果是POST请求)等信息。
  6. 服务器接收到请求后,根据请求的路径和参数进行处理,可能涉及数据库查询、业务逻辑处理等。
  7. 服务器处理完成后,生成HTTP响应,响应中包含状态码(如200、404)、响应头(如Content-Type、Set-Cookie)和响应体(如HTML、JSON)等信息。
  8. 服务器将HTTP响应发送回浏览器。
  9. 浏览器接收到响应后,根据响应头中的Content-Type等信息判断如何处理响应体。
  10. 如果是HTML文档,浏览器开始解析HTML,构建DOM树。
  11. 在解析HTML过程中,如果遇到外部资源(如CSS、JavaScript、图片等)的引用,浏览器会发起新的HTTP请求获取这些资源。
  12. 浏览器解析CSS,构建CSSOM树,然后将DOM树和CSSOM树合并成渲染树。
  13. 浏览器根据渲染树计算布局,确定每个元素的位置和大小。
  14. 浏览器进行绘制,将渲染树中的元素绘制到屏幕上,形成用户看到的界面。
  15. 如果HTML文档中包含JavaScript代码,浏览器会执行这些代码,可能会修改DOM树或CSSOM树,导致重新布局和绘制。
  16. 用户与界面交互,浏览器响应用户的操作,可能涉及事件处理、数据请求等。

如何判断测试覆盖率

  • 语句覆盖率(Statement Coverage):语句覆盖率是指被测试代码中被执行的语句占总语句数的比例。可以通过在测试过程中记录被执行的语句来计算语句覆盖率。
  • 分支覆盖率(Branch Coverage):分支覆盖率是指被测试代码中所有可能的分支路径被执行的比例。可以通过在测试过程中记录被执行的分支路径来计算分支覆盖率。
  • 条件覆盖率(Condition Coverage):条件覆盖率是指被测试代码中所有条件表达式的可能取值组合被覆盖的比例。可以通过在测试过程中针对不同的条件取值组合来计算条件覆盖率。
  • 路径覆盖率(Path Coverage):路径覆盖率是指被测试代码中所有可能的执行路径被覆盖的比例。可以通过在测试过程中记录被执行的路径来计算路径覆盖率。
  • 函数覆盖率(Function Coverage):函数覆盖率是指被测试代码中所有函数被调用的比例。可以通过在测试过程中记录被调用的函数来计算函数覆盖率。
  • 接口覆盖率(Interface Coverage):接口覆盖率是指被测试代码中所有接口的使用情况被覆盖的比例。可以通过在测试过程中记录接口的调用和使用情况来计算接口覆盖率。
  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只天蝎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值