(第44册)Java程序设计应用开发

news2024/11/29 13:41:33

书名:Java程序设计应用开发    书号:978-7-113-29847-0

作者:张西广,夏敏捷,罗菁 编著  出版日期:20231

     目前学习和关注 Java 语言的人越来越多,Java 语言已是目前世界上最为流行的程序开发语言之一。由于具有功能丰富、表达能力强、使用方便灵活、执行效率高、跨平台、可移植性好等优点,Java 成为编程学习的首选语言之一。

     学习编程是一个实践的过程,而不仅仅是看书、看资料的过程,动手编写、调试程序才是至关重要的。通过实际的编程以及积极思考,读者可以很快掌握编程技术,在编程过程中能够积累许多宝贵的实践经验,这对编程人员来说尤为重要。

     本书主要介绍Java语言的基础知识,包括Java语言基本数据类型、逻辑控制语句、面向对象程序设计、异常处理、Java常用类、Java集合、图形化用户界面、多线程、网络编程、I/O(输入/输出)和数据库开发等知识,读者通过学习可以掌握Java语言的基本知识内容和程序编写方法。本书从基本的程序设计思想入手,逐步展开Java语言教学。对每个知识点,使用多个实用例子进行描述和说明,例子选取贴近生活,增加读者对知识点的理解。本书注重程序设计能力的培养和项目实践,每章后提供综合性案例实践,同时纳入了Java的新功能,增强了实用性,使读者掌握Java的精髓。

  本书最大的特色在于以开发案例为导向,让读者对 Java 语言学习充满乐趣,在案例设计开发过程中,不知不觉地学会这些技术;通过学习本书,读者将学会 Java 编程技术和技巧,学会面向对象的设计技术,了解程序设计的相关知识。本书部分案例如酒店客房管理、网络五子棋游戏、Java 图形处理、JDBC 应用案例,由于篇幅限制进行数字化处理,读者可扫二维码阅读设计思路和相关代码。

《Java程序设计应用开发》    1

第1章  Java概述    1

1.1  认识Java. 1

1.1.1  什么是Java. 1

1.1.2  Java语言的特点... 3

1.1.3  Java语言的应用... 4

1.2  JDK的使用... 5

1.2.1  JDK的安装... 5

1.2.2  Java程序运行机制... 8

1.2.3  Java程序的开发过程... 10

1.3  Java语言的集成开发环境... 11

1.3.1  Eclipse. 11

1.3.2  NetBeans. 17

1.3.3  IntelliJ IDEA.. 17

第2章  Java编程基础    18

2.1  标识符与数据类型... 18

2.1.1  关键字... 18

2.1.2  标识符... 18

2.1.3  数据类型... 19

2.2  常量与变量... 20

2.2.1  常量... 20

2.2.2  变量... 22

2.3  运算符和表达式... 23

2.3.1  算术运算符和算术表达式... 24

2.3.2  赋值运算符和赋值表达式... 25

2.3.3  关系运算符和关系表达式... 26

2.3.4  逻辑运算符和逻辑表达式... 27

2.3.5  位运算符和位运算表达式... 27

2.3.6  条件运算符和条件表达式... 30

2.3.7  运算符优先级... 30

2.3.8  类型转换... 31

2.3.9  打印语句... 32

2.3.10  Java语言注释... 33

2.4  逻辑控制语句... 33

2.4.1  选择结构语句... 34

2.4.2  循环结构语句... 37

2.4.3  循环的嵌套... 43

2.4.4  跳转语句... 44

2.4.5  三种循环的比较... 46

2.5  Java数组和应用... 46

2.5.1  Java数组定义和创建... 47

2.5.2  使用数组... 49

2.5.3  多维数组... 53

*2.5.4  Arrays类... 56

2.6  Java方法... 58

2.6.1 什么是方法... 58

2.6.2 方法的重载... 59

2.7  习题... 60

第3章  Java面向对象基础    62

3.1  面向对象程序设计的思想和概念... 62

3.1.1  类和对象的概念... 62

3.1.2  面向对象的三大特性... 63

3.1.3  面向对象和面向过程的区别... 64

3.2  Java语言的类和对象... 67

3.2.1  类的定义... 67

3.2.2 对象的创建与使用... 68

3.3  构造方法... 71

3.4  this关键字... 75

3.3.1  使用this关键字访问成员变量... 75

3.3.2  使用this关键字调用构造方法... 76

3.5  static关键字... 77

3.5.1  静态成员变量... 77

3.5.2  静态方法... 78

3.5.3  静态代码块... 79

3.6  包... 80

3.7  应用案例——模拟猜拳游戏... 82

.. 86

习题... 86

第4章  Java面向对象高级特性    87

4.1  继承... 87

4.1.1  继承的基本概念... 87

4.1.2  继承的实现... 88

4.1.3  子类的构成... 91

4.1.4  成员的访问权限控制... 93

4.1.5  方法的重写... 96

4.1.6  子类对象的构造... 98

4.2  final关键字... 100

4.2.1  final类... 100

4.2.2  final方法... 100

4.2.3  final关键字修饰变量... 100

4.3  多态... 101

4.3.1  多态性的概念... 101

4.3.2  对象类型的转换... 103

4.3.3  instanceof关键字... 104

4.3.4  多态的好处... 105

4.4  抽象类和接口... 106

4.4.1  抽象类和抽象方法... 106

4.4.2  接口... 108

4.4.3  接口的用法... 109

4.5  Object类... 113

4.5.1  toString()方法... 113

4.5.2  equals()方法... 115

4.6  内部类... 116

4.6.1 成员内部类... 116

4.6.2 方法内部类... 117

4.6.3  匿名内部类... 118

4.7  应用案例——学生和教师信息管理程序... 119

习题... 122

第5章  Java异常处理    123

5.1  异常概述... 123

5.2  Java异常类介绍... 124

5.2.1  Java异常类层次结构... 124

5.2.2  常用异常类... 125

5.3  Java捕获异常... 127

5.3.1  try...catch语句捕获异常... 127

5.3.2  try...catch...finally语句捕获异常... 128

5.3.3  多catch语句捕获异常... 129

5.3.4  try语句嵌套捕获异常... 130

5.4  Java抛出异常... 131

5.4.1  throws抛出异常... 131

5.4.2  throw抛出异常... 132

5.4  Java自定义异常... 133

习题... 134

第6章  Java 常用类    135

6.1  字符串类... 135

6.1.1  String类的初始化... 135

6.1.2  String类的常见操作... 136

6.1.3  StringBuffer类... 142

6.1.4  StringBuilder类... 143

6.2  Math类与Random类... 144

6.2.1  用Math类实现数值运算... 144

6.2.2  实现随机数... 146

6.3  包装类... 147

6.4.1  认识包装类... 147

6.4.2 通过包装类进行数据转换... 147

6.4  常用系统类... 150

6.4.1  System类... 150

6.4.2  Runtime类... 151

6.5  日期类... 153

6.5.1  Date类... 153

6.5.2  Calendar类... 153

6.5.3  SimpleDateFormat格式化日期... 155

6.6  查看Java API文档... 156

6.7  应用案例——猜单词游戏... 157

习题... 159

第7章  Java集合    160

7.1  集合概述... 160

7.2  List集合... 161

7.2.1  ArrayList 162

7.2.2  LinkedList 165

7.2.3  Vector 166

7.2.4  遍历集合... 168

7.2  Set集合... 170

7.2.1  HashSet 171

7.2.2  TreeSet 174

7.3  Map集合... 176

7.3.1  HashMap. 177

7.3.2  TreeMap. 179

7.4  泛型简化集合操作... 179

7.4.1  泛型的意义... 180

7.4.2  泛型的使用... 180

7.5  使用Collections类对集合进行处理... 182

7.6  应用案例——教学课程管理... 184

习题... 185

第8章  图形用户界面开发    186

8.1  AWT和Swing简介... 186

8.1.1 AWT简介... 186

8.1.2  Swing基础... 187

8.2  创建窗口... 188

8.2.1  用JFrame框架类开发窗口... 188

8.2.2  用JDialog对话框类开发窗口... 190

8.3  Swing组件... 191

8.3.1  按钮(JButton)... 191

8.3.2  单选按钮(JRadioButton)... 192

8.3.3  复选框(JCheckBox)... 194

8.3.4  组合框(JComboBox)... 195

8.3.5  列表框(JList)... 196

8.3.6  文本框(JTextField和JPasswordField)和标签(JLabel)... 198

8.3.7  面板(JPanel)... 199

8.3.8  消息提示框(JOptionPane)... 201

8.3.9  菜单... 202

8.4  布局管理器... 204

8.4.1  布局管理器概述... 204

8.4.2  流布局管理器FlowLayout 204

8.4.3  边界布局BorderLayout 205

8.4.4  网格布局管理器GridLayout 206

8.4.5  卡片布局管理器CardLayout 207

8.4.6  空布局管理器(绝对布局)... 208

8.5  常用事件处理... 209

8.5.1  事件处理机制... 209

8.5.2  鼠标事件处理... 210

8.5.3  键盘事件处理... 213

8.5.4  动作事件处理... 215

8.5.5  选项事件处理... 217

8.6  应用案例——用户管理系统的登录和用户注册... 218

1.  保存注册信息... 219

2.  登录界面... 219

3.  用户注册... 221

习题... 223

第9章  多线程    225

9.1  线程的概念... 225

9.1.1  进程... 225

9.1.1  多线程... 226

9.2  线程的创建... 227

9.2.1  继承Thread类创建线程... 227

9.2.2  实现Runnable接口创建线程... 232

9.2.3  创建线程的两种方法的比较... 233

9.3  线程的调度与线程控制... 233

9.3.1  线程优先级与线程调度策略... 233

9.3.2  线程的基本控制... 235

*9.4  线程同步... 236

9.4.1  多线程并发操作中的问题... 236

9.4.2  对象锁及其操作... 238

*9.4.3  同步方法... 240

*9.4.4  死锁... 241

9.5  应用案例——使用多线程模拟龟兔赛跑... 242

习题... 244

第10章  Java网络程序设计    245

10.1  网络编程基础... 245

10.1.1  互联网TCP/IP协议... 245

10.1.2  IP协议... 246

10.1.3  TCP和UDP协议... 246

10.1.4  端口... 246

10.1.6  Socket 246

10.2  UDP编程... 248

10.2.1  UDP简介... 248

10.2.2  DatagramPacket类... 249

10.2.3  DatagramSocket类... 250

10.3  TCP编程... 252

10.3.1  Socket技术... 252

10.3.2  InetAddress类简介... 253

10.3.3  ServerSocket类... 254

10.3.4  Socket类... 257

习题... 259

第11章  I/O(输入/输出)    260

11.1  认识I/O(输入/输出)操作... 260

11.2  File类... 260

11.2.1 创建File对象... 261

11.2.2 File类的常用方法... 261

11.3  文件操作... 265

11.3.1  字节流... 265

11.3.2  FileInputStream读文件... 267

11.3.3  FileOutputStream写文件... 269

11.3.4  DataInputStream和DataOutputStream.. 270

11.3.5  字符流... 271

11.3.6  FileReader和FileWriter 274

11.3.7  缓冲流... 275

11.4  应用案例——查单词软件... 276

习题... 278

第12 章  JDBC技术    279

12.1  数据库概述... 279

12.1.1  MySQL数据库... 279

12.1.2  MySQL安装配置... 280

12.1.3  安装可视化工具... 281

12.1.4  创建数据库... 281

12.2  SQL语法... 282

12.3 JDBC.. 284

12.3.1  JDBC体系结构... 284

12.3.2  JDBC驱动程序的实现方式... 285

12.4  JDBC连接数据库... 285

12.4.1  JDBC API的主要类和接口... 286

12.4.2  连接数据库... 287

12.5  JDBC访问数据库... 289

12.5.1  Statement对象... 289

12.5.2  PreParedStatement 290

12.5.3  管理结果集... 294

习题   298

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/523850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用于半监督体积医学图像分割的动量对比体素表示学习

文章目录 Momentum Contrastive Voxel-Wise Representation Learning for Semi-supervised Volumetric Medical Image Segmentation摘要本文方法Voxel-Wise Contrastive ObjectiveDimensional Contrastive ObjectiveConsistency Loss总损失 实验结果 Momentum Contrastive Voxe…

可以白嫖的语音识别开源项目whisper的搭建详细过程 | 如何在Linux中搭建OpenAI开源的语音识别项目Whisper

原文来自我个人的博客。 1、前提条件 服务器为GPU服务器。点击这里跳转到我使用的GPU服务器。我搭建 whisper 选用的是 NVIDIA A 100显卡,4GB显存。 Python版本要在3.8~3.11之间。 输入下面命令查看使用的Python版本。 python3 -V2、安装Anaconda 为啥要安装A…

ORACLE数据库长连接客户端持久的CLOSE_WAIT

前言 根据以往的项目构造,业务层数据库基本使用长连接形式进行批量操作。大部分周期有执行的链接基本正常。再长期的内测中也没有发生CLOSE_WAIT的现象。 上线后采用的数据库使用了新的版本,发现产生CLOSE_WAIY。根据开发经验和网上搜索,发…

『手撕 Mybatis 源码』01 - 基本原理与搭建

MyBatis的架构设计 Api接口层:提供API 增加、删除、修改、查询等接口,通过API接口对数据库进行操作 例如下面这些操作 sqlSession.selectOne(statementId, param); mapperProxy.findByCondition(param);数据处理层:解析sql根据调用请求完成…

机器学习模型的评估

(1)数据划分 将可用数据划分为三部分:训练集、验证集和测试集。在训练数据上训练模型。在验证数据上评估模型。模型准备上线之前,在测试数据上最后测试一次 不将数据划分为两部分,即训练集和测试集?在训练…

Java基础(二十三):反射机制

Java基础系列文章 Java基础(一):语言概述 Java基础(二):原码、反码、补码及进制之间的运算 Java基础(三):数据类型与进制 Java基础(四):逻辑运算符和位运算符 Java基础(五):流程控制语句 Java基础(六)&#xff1…

Linux内存管理 (1):内核镜像线性映射的建立

文章目录 1. 前言2. 分析背景3. 内核镜像线性映射的建立过程3.1 预备工作:内核解压缩3.2 建立内核镜像区域的线性映射3.2.1 定位内核入口3.2.2 建立内核线性映射前的其它启动工作3.2.2.1 将 CPU 设为 SVC 模式,且禁用 IRQ FIQ 中断3.2.2.2 获取处理器类…

【C++】实现 priority_queue --- 反函数

priority_queue 实际上是以 堆 的规则组织起来的数组&#xff0c;是一颗完全二叉树 **反函数 !!! 堆的向上向下调整 #pragma oncenamespace xiong {//反函数template<class T>struct less{bool operator()(const T& x, const T& y){return x < y;}};templat…

python列表逆序排列的方法

python中的列表是可以直接进行逆序排列的&#xff0c;但是在 python中&#xff0c;逆序排列也是有一定规则的&#xff0c;一般是按升序排序&#xff0c;也就是从左到右。比如 list[1,2,3,4]&#xff1b; 注意&#xff1a;顺序相同的元素可以放在同一行&#xff1b; 在 python中…

嵌入式电路基础

电路基础 器件基础基本电路术语与符号 信号浮动三态门&#xff08;三态缓冲器&#xff09;上下拉电阻基本元件与逻辑OC/OD门&#xff08;掌握原理&#xff0c;用途&#xff09;开放收集器&#xff08;OC门&#xff0c;NPN型三极管&#xff09;掌握原理、用途漏极开路&#xff0…

C++ STL—vector,map,set,list,deque等

STL是什么 STL是标准模板库&#xff0c;包括算法、容器和迭代器。 算法&#xff1a;包括排序、复制等常用算法容器&#xff1a;数据存放形式&#xff0c;包括序列式容器和关联式容器&#xff0c;序列式容器就是list,vector&#xff0c;关联式容器就是set,map等迭代器是在不暴…

考研复试刷题第八天:日期累加 【日期问题】

本来以为和上次那个简单题一样的&#xff0c;没啥难度&#xff0c;就是循环就完事了&#xff0c;结果超时了 超时代码: #include <iostream> using namespace std;//平年各个月份都多少天&#xff1f; int mouths [13] {0,31,28,31,30,31,30,31,31,30,31,30,31 };//判…

Spring事务深度学习

jdbcTemp Spring 框架对 JDBC 进行封装&#xff0c;使用 JdbcTemplate 方便实现对数据库操作。 JdbcTemp的使用 对应依赖 <!-- MySQL驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><ve…

已知相机内外参通过COLMAP进行稀疏/稠密模型重建操作过程

在https://colmap.github.io/faq.html#reconstruct-sparse-dense-model-from-known-camera-poses 中介绍了已知相机内外参如何通过COLMAP进行稀疏和稠密模型重建的过程&#xff0c;这里按照说明操作一遍&#xff1a; 在instant-ngp中&#xff0c;执行scripts/colmap2nerf.py时…

request页面代码逻辑

一. 封装请求基地址 在src目录下面建一个api文件夹 然后在文件夹里面新建一个专门放用户请求的use.js 用axios发送请求 在use.js文件夹里导入request 在src目录新建发送请求的页面并导入封装好的请求 然后把这个请求封装成一个函数&#xff0c;这个函数里需要传入两个参数。 …

Xavier或TX2配置ipv4地址

输入ifconfig查看本地ipv4地址&#xff0c;发现并没有设置&#xff0c;无法通过以太网与其他主机通信。下面来配置系统的以太网地址。 1、编辑文件/etc/network/interfaces: sudo gedit /etc/network/interfaces2、用下面的内容来替换有关eth0的行&#xff0c;并且将ip地址等信…

Java中抽象类和接口的区别,一文弄懂,图文并茂

目录 前言 1. 抽象类 1.1 定义 1.2 示例 1.3 使用 1.3.1代码-抽象类 1.3.2代码-抽象类继承类使用 1.3.3输出结果为&#xff1a; 1.4UML类图展示类间的关系 2. 接口 2.1 定义 2.2 示例 2.2.1代码-接口 2.3 使用 2.3.1代码-接口实现 2.3.2代码-接口实现类使用 2…

【Linux】驱动内核调试,没有几板斧,怎么能行?

目录 前言&#xff1a; 一、基础打印工具 &#xff08;1&#xff09;printk---最常用 ①Log Buffer: ②Console&#xff1a; ③RAM Console&#xff1a; &#xff08;2&#xff09;动态打印 ①动态打印与printk之间的区别联系 ②动态打印常用的例子 ③动态打印转为pri…

C语言实战 - 贪吃蛇(图形界面)

由于本人精力有限&#xff0c;暂时先把素材和代码放上&#xff0c;等以后有空再补教程。 目录 效果预览 准备工作 EasyX图形库 音频素材 代码编写 Transfer.h文件 game.cpp文件 main.c文件 效果预览 先来看一下最终成品效果 贪吃蛇图形界面 准备工作 EasyX图形库 这…

[230513] TPO72 | 2022年托福阅读真题第1/36篇 | 10:45

Invading Algae 目录 Invading Algae 全文 题目 Paragraph 1 P1 段落大意 问题1 Paragraph 2 P2 段落大意 问题2 *问题3* Paragraph 3 P3 段落大意 问题4 Paragraph 4 P4 段落大意 Paragraph 5 P5 段落大意 *问题5* *问题6* 问题7 问题8 问题9…