书籍详情

Java:从语言到程序

Java:从语言到程序

作者:刘新

出版社:电子工业出版社

出版时间:2022-03-01

ISBN:9787121362149

定价:¥59.80

购买这本书可以去
内容简介
  本书不仅介绍了Java的基本语法规则,还将J2SE平台提供的功能融合进来,着重介绍在此平台上如何编写有实际用途的程序,培养学生良好的编程习惯,提高学生的工程应用能力。本书在章节组织中以快速带领读者进入工程编程领域为目标。在编程工具的选择上,介绍了目前主流且免费的开发工具:VS Code。在介绍完Java基础的语法知识之后,立即开始介绍Java中的常用工具类,包括数组、字符串、数学类、系统类等。学完这一部分,读者已经可以编写有一定实用价值的程序了。在介绍完面向对象的高级特性之后,着重介绍了在工程开发中经常会遇见的一些问题,如字符编码的转换问题、文件的内容和属性的处理问题。在多线程章节中,着重介绍了线程的互斥和同步处理方法,这也是工程编程中的难点问题。整本教材中提供了大量的编程实例,大多数问题都以程序代码来讲解,代码编写遵循工程编程规范,充分体现了“talk is cheap, show me the code”的精神。
作者简介
  刘新,副教授,计算机专业,已在清华大学出版社(2009)、浙江大学出版社(2012)、机械工业出版社出版(2017)Java教材,均为独著或者主编。
目录
第?1?章 入门准备
1.1 Java?的运行环境与虚拟机
1.2 Java?的开发环境
1.2.1 JDK的安装
1.2.2 设置系统环境变量
1.2.3 编写一个简单的Java?应用程序
1.2.4 编译命令的使用
1.2.5 解释执行命令的使用
1.3 配置VS Code?集成开发工具
第?2?章 编程初探
2.1 Java?语言概述
2.1.1 Java?语言特点
2.1.2 Java?程序的构成
2.1.3 程序文本风格
2.2 数据及类型转换
2.2.1 基本数据类型
2.2.2 常量
2.2.3 变量
2.2.4 数据类型转换
2.3 运算符与表达式
2.3.1 算术运算符和算术表达式
2.3.2 关系运算符和关系表达式
2.3.3 逻辑运算符和逻辑表达式
2.3.4 条件运算符和条件表达式
2.3.5 位运算符和位运算表达式
2.3.6 赋值运算符和赋值表达式
2.3.7 表达式的求值顺序
2.4 流程控制语句
2.4.1 顺序语句
2.4.2 分支语句
2.4.3 循环语句
2.5 控制台输入和输出
2.5.1 控制台输入类Scanner
2.5.2 格式化输出?printf
2.6 应用实例
2.6.1 求公约数和小公倍数
2.6.2 Fibonacci?数列
2.6.3 拆分数字和进制转换
2.6.4 输出九九口诀表
第?3?章 面向对象入门
3.1 面向对象的基本概念
3.1.1 对象
3.1.2 类
3.1.3 消息
3.1.4 面向对象的?4?个基本特征
3.2 类与对象
3.2.1 类的声明和定义
3.2.2 对象的使用
3.3 成员变量
3.3.1 成员变量的定义
3.3.2 成员变量的访问权限
3.3.3 实例成员变量和静态成员变量
3.4 成员方法
3.4.1 方法的声明和定义
3.4.2 方法的调用
3.4.3 隐含参数?this
3.5 构造方法
3.5.1 无参数构造方法的定义和使用
3.5.2 带参数构造方法的定义和使用
3.5.3 this?关键字和构造方法的调用
3.6 静态方法
3.6.1 静态方法的声明和定义
3.6.2 静态方法和实例方法的区别
3.6.3 静态代码块
3.6.4 再论静态成员变量
3.7 main()方法和命令行参数
3.8 编程实例:学生类示例
第?4?章 常用工具类
4.1 数组
4.1.1 一维数组
4.1.2 for-each?循环
4.1.3 二维数组
4.1.4 编程实例?1:数组排序
4.1.5 编程实例?2:杨辉三角
4.2 字符串
4.2.1 String?对象
4.2.2 StringBuffer?对象
4.2.3 编程实例?3:字符串排序
4.3 Runtime?类
4.3.1 内存管理
4.3.2 执行其他程序
4.4 System?类
4.4.1 利用?currentTimeMillis()记录程序执行的时间
4.4.2 利用?exit()退出虚拟机
4.4.3 获取环境属性
4.5 Math?类
4.5.1 利用随机数求π值
4.5.2 利用三角函数求π值
4.5.3 指数和对数函数
4.5.4 取整函数
4.6 Random?类的使用
4.7 日历类
4.7.1 Date?类的使用
4.7.2 使用SimpleDateFormat?格式化输出时间
4.7.3 Calendar?类的特色
4.7.4 编程实例?4:利用GregorianCalendar?输出日历
4.7.5 JSR日期时间包
4.8 Formatter?类
4.8.1 Formatter?的简单使用
4.8.2 时间格式转换符详解
4.8.3 格式说明符语法图
4.9 类型包装器
第?5?章 面向对象高级特性
5.1 继承的基本原理
5.2 子类对父类的继承
5.3 继承机制
5.3.1 属性的隐藏
5.3.2 方法的覆盖
5.3.3 构造方法没有继承机制
5.3.4 父类变量引用子类对象
5.3.5 继承的内部处理
5.4 super?关键字
5.4.1 用?super?引用父类的成员
5.4.2 使用?super?调用父类的构造方法
5.5 接口与多重继承
5.5.1 接口的定义
5.5.2 接口的继承
5.5.3 接口的实现
5.6 重载
5.6.1 普通方法的重载
5.6.2 构造方法的重载
5.6.3 重载的解析
5.6.4 重载与覆盖的区别
5.7 运行时多态
5.7.1 实例方法的运行时多态
5.7.2 成员变量运行时的表现
5.7.3 静态方法运行时的表现
5.8 编程实例:图形类示例
第?6?章 包和特殊类
6.1 包
6.1.1 包的创建
6.1.2 包的使用
6.1.3 JAR文件的创建和使用
6.1.4 JDK中的常用包
6.2 抽象类与抽象方法
6.2.1 抽象方法的声明
6.2.2 抽象类的定义
6.2.3 抽象方法与回调函数
6.3 终类与终方法
6.4 内部类
6.4.1 内部类的定义
6.4.2 内部类访问外部类的成员
6.4.3 内部类之间的相互使用
6.4.4 在外部使用内部类
6.4.5 匿名内部类
6.4.6 内部类的作用
第?7?章 异常处理机制
7.1 异常机制简介
7.1.1 基本概念
7.1.2 异常处理的作用
7.1.3 Java?的异常处理机制
7.1.4 异常类的层次结构
7.2 异常处理类型
7.2.1 运行时异常
7.2.2 检查型异常
7.2.3 自定义异常
7.3 异常处理机制
7.3.1 捕获和处理异常
7.3.2 抛出异常
7.3.3 try-catch-finally?语句的嵌套
7.3.4 try-with-resource?语句
7.3.5 用户自定义异常
7.4 编程实例:使用异常机制来实现键盘输入
第?8?章 文件处理
8.1 文件和输入/输出流
8.2 字节流
8.2.1 InputStream?中的方法
8.2.2 OutputStream?中的方法
8.2.3 文件输入流FileInputStream
8.2.4 文件输出流FileOutputStream
8.2.5 编程实例?1:保存用户输入到文件
8.2.6 编程实例?2:显示文件内容
8.2.7 编程实例?3:文件的复制
8.2.8 顺序输入流
8.2.9 管道输入流
8.2.10 过滤输入/输出流
8.3 字符流
8.3.1 InputStreamReader?类中的方法
8.3.2 OutputStreamWriter?类中的方法
8.3.3 编程实例?4:保存键盘输入中文到文件
8.3.4 编程实例?5:文件编码转换
8.4 文件属性处理
8.4.1 File?类中的方法
8.4.2 编程实例?6:文件列表
8.5 随机访问文件
8.5.1 RandomAccessFile?类中的方法
8.5.2 编程实例?7:文件加密
8.6 序列化
第?9?章 多线程
9.1 线程的概念
9.1.1 多线程的特点
9.1.2 线程的状态
9.2 Thread?类
9.2.1 Thread?类的构造方法
9.2.2 Thread?类的常用方法
9.3 多线程程序的编写
9.3.1 利用Thread?的子类创建线程
9.3.2 实现Runnable?接口创建线程
9.3.3 使用?isAlive()和?join()等待子线程结束
9.3.4 设置线程优先级
9.4 线程的通信与协调
9.4.1 线程的互斥
9.4.2 线程的同步
9.4.3 暂停、恢复和停止线程
9.4.4 编程实例:生产者-消费者问题
9.5 利用Lock?接口实现线程互斥
第?10?章 网络程序设计
10.1 与网络相关的常用术语
10.2 InetAddress?类使用示例
10.2.1 编程实例?1:根据域名查找IP地址
10.3 URL类和URLConnection?类的使用
10.3.1 编程实例?2:用URL类实现一个简单的浏览器
10.3.2 编程实例?3:用URLConnection?类实现文件下载
10.4 Socket?的使用
10.4.1 客户端创建Socket?对象
10.4.2 服务器端创建ServerSocket?对象
10.4.3 编程实例?4:一对一的通信
10.4.4 编程实例?5:一对多的通信
10.4.5 编程实例?6:简单的聊天程序
10.5 UDP数据报通信
10.5.1 DatagramSocket?的使用方法
10.5.2 DatagramPacket?的使用方法
10.5.3 编程实例?7:用UDP实现的聊天程序
第?11?章* 运行时类型识别
11.1 RTTI的作用
11.2 用Class?类来加载对象
11.3 使用?getClass()方法获取类信息
11.4 使用类标记
11.5 使用关键字?instanceof?判断所属类
11.6 利用反射获取运行时类信息
11.6.1 使用?isInstance()方法判断所属类
11.6.2 获取成员方法信息
11.6.3 获取构造方法信息
11.6.4 获取类的成员属性
11.6.5 根据方法的名称来执行方法
11.6.6 创建新的对象
11.6.7 改变属性的值
11.6.8 使用数组
第?12?章* 泛型
12.1 泛型概述
12.1.1 编程实例?1:一个关于泛型的简单例子
12.1.2 编程实例?2:带两个类型参数的泛型类
12.2 泛型的基础知识
12.2.1 有界类型
12.2.2 通配符参数
12.2.3 泛型方法
12.2.4 泛型接口
12.3 泛型类的继承
12.3.1 以泛型类为父类
12.3.2 以非泛型类为父类
12.3.3 运行时类型识别
12.3.4 强制类型转换
12.3.5 继承规则
12.4 泛型的本质
12.4.1 擦拭
12.4.2 擦拭带来的错误
12.5 泛型的局限
12.5.1 不能使用基本类型
12.5.2 不能使用泛型类异常
12.5.3 不能使用泛型数组
12.5.4 不能实例化参数类型对象
第?13?章* 集合
13.1 集合接口与抽象类
13.1.1 Collection?接口
13.1.2 Iterator?接口
13.1.3 AbstractCollection?抽象类
13.1.4 几个常用术语
13.2 集合类的使用
13.2.1 顺序表(ArrayList)使用示例
13.2.2 链表(LinkedList)使用示例
13.2.3 优先队列(PriorityQueue)使用示例
13.2.4 哈希集合(HashSet)使用示例
13.2.5 哈希映射类(HashMap)使用示例
13.2.6 有序树(TreeSet)使用示例
13.2.7 有序树映射类(TreeMap)使用示例
13.3 常用算法
13.3.1 Collections?中的简单算法
13.3.2 排序
13.3.3 二分查找
13.4 遗留的类和接口
13.4.1 Enumeration?接口简介
13.4.2 向量类(Vector)简介
13.4.3 栈(Stack)使用示例
13.4.4 字典(Dictionary)简介
猜您喜欢

读书导航