计算机
类型
可以朗读
语音朗读
324千字
字数
2022-07-01
发行日期
展开全部
主编推荐语
深入讲解Java核心原理与应用实践。
内容简介
本书分为四大部分:
第1~6章,初步认识Java的基础语法及主流编程工具的使用;
第7~11章,详解Java面向对象编程语言的语法、核心编程思想、基础API等;
第12~17章,介绍使用Java进行高级应用开发所需的API和基础原理;
第18、19章,介绍了Java8~Java17版本的新特性。
本书核心内容基于目前企业应用主流的Java 8进行讲解,读者可以直接进阶到近的长期支持版本Java 17。本书遵循深入浅出的原则编写,既有生动活泼的生活化案例讲解,又有干货满满的源码级分析,可以让读者轻松领会Java技术精髓,快速掌握Java开发技能。本书为每一个知识点的讲解都配备了案例,代码量庞大,如果读者跟随本书案例练习会大大提升自身的代码编写能力。
目录
- 版权信息
- 内容简介
- 前言
- 第1章 Java语言概述
- 1.1 Java语言的发展简史
- 1.2 Java语言的发展前景
- 1.3 Java语言的技术体系平台
- 1.4 Java语言的特点
- 1.5 Java语言的核心机制之JVM
- 1.6 Java语言的开发环境和运行环境
- 1.7 本章小结
- 第2章 第一个Java程序:HelloWorld
- 2.1 开发的前期准备
- 2.1.1 JDK的下载
- 2.1.2 JDK的安装
- 2.1.3 JDK的目录介绍
- 2.1.4 配置环境变量
- 2.2 第一个Java程序
- 2.2.1 Java程序开发步骤
- 2.2.2 第一个Java程序的剖析
- 2.2.3 几个初学者易犯的错误
- 2.3 Java注释
- 2.3.1 单行注释
- 2.3.2 多行注释
- 2.3.3 文档注释
- 2.4 文本编辑器的介绍
- 2.4.1 下载与安装
- 2.4.2 语言环境设置
- 2.4.3 开发Java程序
- 2.4.4 字符编码设置
- 2.4.5 默认开发语言设置
- 2.5 案例:打印个人信息
- 2.6 本章小结
- 第3章 基础语法
- 3.1 关键字和保留字
- 3.1.1 关键字
- 3.1.2 保留字
- 3.1.3 特殊值
- 3.2 标识符
- 3.2.1 标识符的命名规则
- 3.2.2 标识符的命名规范
- 3.2.3 案例:标识符辨析
- 3.3 变量
- 3.3.1 变量的声明与使用
- 3.3.2 变量的注意事项
- 3.4 数据类型
- 3.4.1 计算机数据存储方式
- 3.4.2 整型
- 3.4.3 浮点型
- 3.4.4 字符型
- 3.4.5 布尔型
- 3.4.6 案例:用变量保存个人信息
- 3.5 数据类型的转换
- 3.5.1 自动类型转换
- 3.5.2 强制类型转换
- 3.5.3 案例:基础练习
- 3.6 运算符和标点符号
- 3.6.1 算术运算符
- 3.6.2 赋值运算符
- 3.6.3 比较运算符
- 3.6.4 逻辑运算符
- 3.6.5 位运算符
- 3.6.6 条件运算符
- 3.6.7 运算符的优先级
- 3.6.8 标点符号
- 3.7 本章案例
- 3.7.1 案例:实现算术运算
- 3.7.2 案例:求一个三位数字各个位数上的和
- 3.7.3 案例:交换两个变量的值
- 3.7.4 案例:判断某个年份是否是闰年
- 3.7.5 案例:将小写字母转为对应的大写字母
- 3.8 本章小结
- 第4章 流程控制语句结构
- 4.1 顺序结构
- 4.1.1 顺序结构的特点
- 4.1.2 输出语句
- 4.1.3 输入语句
- 4.1.4 案例:从键盘中输入个人信息
- 4.2 分支结构之if…else
- 4.2.1 单分支条件判断if
- 4.2.2 案例:2月份的总天数
- 4.2.3 双分支条件判断if…else
- 4.2.4 案例:平年、闰年
- 4.2.5 多分支条件判断 if…else if
- 4.2.6 案例:征婚
- 4.2.7 案例:解方程
- 4.3 分支结构之switch-case
- 4.3.1 分支结构switch-case
- 4.3.2 分支结构与条件判断的区别
- 4.3.3 案例:判断这一天是当年的第几天
- 4.4 循环结构
- 4.4.1 while语句
- 4.4.2 案例:趣味折纸
- 4.4.3 do…while语句
- 4.4.4 案例:猜数字
- 4.4.5 for语句
- 4.4.6 案例:水仙花数
- 4.4.7 三种循环语句的对比
- 4.4.8 嵌套循环
- 4.4.9 案例:九九乘法表
- 4.4.10 案例:完数
- 4.5 跳转语句
- 4.5.1 break语句
- 4.5.2 continue语句
- 4.5.3 return语句
- 4.5.4 案例:素数
- 4.6 综合案例
- 4.7 本章小结
- 第5章 数组
- 5.1 数组概述
- 5.2 一维数组
- 5.2.1 一维数组的声明
- 5.2.2 一维数组的初始化
- 5.2.3 数组元素默认值
- 5.2.4 一维数组的遍历
- 5.2.5 一维数组内存分析
- 5.2.6 案例:遍历英文字母大小写
- 5.2.7 案例:打鱼还是晒网
- 5.3 数组的算法
- 5.3.1 元素特征值统计
- 5.3.2 最值查找
- 5.3.3 顺序查找
- 5.3.4 二分查找
- 5.3.5 冒泡排序
- 5.3.6 快速排序
- 5.3.7 数组的复制
- 5.3.8 元素的反转
- 5.4 动态数组的实现
- 5.4.1 数组元素的增加
- 5.4.2 数组元素的删除
- 5.5 多维数组
- 5.5.1 多维数组的声明
- 5.5.2 多维数组的初始化
- 5.5.3 案例:杨辉三角
- 5.5.4 案例:矩阵转置
- 5.6 本章小结
- 第6章 开发工具IntelliJ IDEA
- 6.1 IntelliJ IDEA概述
- 6.2 下载与安装
- 6.2.1 下载
- 6.2.2 安装
- 6.3 初始化设置
- 6.4 快速创建并运行Java工程
- 6.5 详细设置
- 6.5.1 字体大小设置
- 6.5.2 字符编码设置
- 6.5.3 大小写不敏感设置
- 6.5.4 自动导包
- 6.5.5 启动退出设置
- 6.5.6 自动更新
- 6.6 快速开发
- 6.6.1 代码模板
- 6.6.2 快捷键
- 6.7 多模块的IDEA工程
- 6.8 本章小结
- 第7章 面向对象编程基础
- 7.1 面向对象与面向过程
- 7.2 类与对象
- 7.2.1 类与对象的关系
- 7.2.2 类的声明
- 7.2.3 对象的创建
- 7.3 类的成员之成员变量
- 7.3.1 成员变量的声明
- 7.3.2 成员变量的访问
- 7.3.3 成员变量默认值
- 7.3.4 对象的内存分析
- 7.3.5 成员变量与局部变量的区别
- 7.3.6 案例:商品类与对象
- 7.3.7 案例:银行账户类与对象
- 7.4 类的成员之方法
- 7.4.1 方法的声明
- 7.4.2 方法的调用
- 7.4.3 方法的传参机制
- 7.4.4 案例:圆类方法设计与调用
- 7.4.5 案例:数组工具类方法设计与调用
- 7.5 方法的重载
- 7.5.1 重载方法的声明和调用
- 7.5.2 案例:求三角形面积
- 7.6 特殊参数
- 7.6.1 命令行参数
- 7.6.2 可变参数
- 7.6.3 案例:n个字符串拼接
- 7.7 方法的递归调用
- 7.7.1 递归调用
- 7.7.2 案例:猴子吃桃
- 7.7.3 案例:走台阶
- 7.8 对象数组的使用
- 7.8.1 对象数组
- 7.8.2 对象数组的内存分析
- 7.8.3 案例:员工信息管理
- 7.9 本章小结
- 第8章 面向对象编程进阶
- 8.1 类的成员之构造器
- 8.1.1 构造器的声明
- 8.1.2 构造器的使用
- 8.1.3 案例:矩形类构造器的设计
- 8.2 面向对象的基本特征之封装性
- 8.2.1 封装的体现
- 8.2.2 访问权限修饰符
- 8.2.3 案例:矩形类的封装
- 8.3 this关键字
- 8.3.1 this关键字的使用场景
- 8.3.2 案例:矩形类代码的改进
- 8.3.3 案例:银行账户类的改进
- 8.3.4 什么是JavaBean
- 8.4 包的使用
- 8.4.1 包的声明
- 8.4.2 使用其他包的类
- 8.4.3 常用包介绍
- 8.4.4 案例:员工信息管理
- 8.5 面向对象的基本特征之继承性
- 8.5.1 为什么需要继承
- 8.5.2 如何实现类的继承
- 8.5.3 类继承性的特点
- 8.5.4 方法的重写
- 8.5.5 super关键字
- 8.5.6 案例:员工和学生信息管理
- 8.6 面向对象基本特征之多态性
- 8.6.1 对象的多态性表现
- 8.6.2 多态性的应用
- 8.6.3 向上转型与向下转型
- 8.6.4 instanceof关键字
- 8.6.5 案例:图形对象管理
- 8.6.6 企业面试题
- 8.7 类的成员之代码块
- 8.7.1 代码块的语法
- 8.7.2 类的初始化
- 8.7.3 案例:类初始化
- 8.7.4 对象的初始化
- 8.7.5 案例:对象初始化
- 8.7.6 企业面试题
- 8.8 本章小结
- 第9章 面向对象高级编程
- 9.1 final关键字
- 9.2 native关键字
- 9.3 abstract关键字
- 9.3.1 抽象方法
- 9.3.2 抽象类
- 9.3.3 案例:模板设计模式
- 9.3.4 案例:员工工资系统
- 9.4 接口
- 9.4.1 接口的好处
- 9.4.2 接口的声明
- 9.4.3 接口的扩展与实现
- 9.4.4 Java 8对接口的改进
- 9.4.5 案例:排序接口Sortable
- 9.5 内部类
- 9.5.1 成员内部类
- 9.5.2 案例:汽车与发动机
- 9.5.3 局部内部类
- 9.5.4 匿名内部类
- 9.5.5 案例:排序接口Comparator
- 9.6 枚举
- 9.6.1 使用class定义枚举类
- 9.6.2 使用enum定义枚举类
- 9.6.3 案例:星期枚举类
- 9.7 注解
- 9.7.1 注解的使用
- 9.7.2 元注解
- 9.7.3 自定义注解
- 9.7.4 注解的新特性
- 9.8 案例:不可扩容与可扩容数组容器
- 9.9 本章小结
- 第10章 异常和异常处理
- 10.1 异常体系结构
- 10.1.1 什么是异常
- 10.1.2 异常的分类
- 10.1.3 常见的异常和错误类型
- 10.1.4 异常信息的查看
- 10.2 异常处理
- 10.2.1 try-catch-finally
- 10.2.2 案例:数组元素的查找
- 10.2.3 关键字:throws
- 10.2.4 案例:倒计时几秒
- 10.2.5 关键字:throw
- 10.2.6 案例:取款和存款异常
- 10.2.7 Java 7对异常处理的改进
- 10.3 异常类型的扩展
- 10.3.1 自定义异常类型
- 10.3.2 案例:登录异常
- 10.4 本章小结
- 第11章 常用类
- 11.1 Object类
- 11.1.1 toString方法
- 11.1.2 equals方法
- 11.1.3 hashCode方法
- 11.1.4 getClass方法
- 11.1.5 clone方法
- 11.1.6 finalize方法
- 11.2 包装类
- 11.2.1 数值类型
- 11.2.2 Character类型
- 11.2.3 Boolean类型
- 11.2.4 装箱与拆箱
- 11.2.5 案例:员工信息管理
- 11.2.6 案例:计算两个整数的和
- 11.2.7 包装类的缓存对象
- 11.3 String类
- 11.3.1 字符串的特点
- 11.3.2 字符串对象的内存分析
- 11.3.3 案例:企业面试题
- 11.3.4 String类的常见方法
- 11.3.5 案例:String算法考查
- 11.4 可变字符序列
- 11.4.1 可变字符序列的常用方法
- 11.4.2 字符串与可变字符序列的区别
- 11.4.3 案例:字符串指定部分反转
- 11.5 Arrays类
- 11.5.1 toString方法:转换字符串
- 11.5.2 sort方法:自然排序
- 11.5.3 sort方法:定制排序
- 11.5.4 binarySearch方法:查找
- 11.5.5 copyOf方法:数组复制
- 11.5.6 equals方法:判断数组的元素是否相等
- 11.5.7 案例:左奇右偶
- 11.5.8 案例:动态数组
- 11.6 数学相关类
- 11.6.1 Math类
- 11.6.2 BigInteger类
- 11.6.3 BigDecimal类
- 11.6.4 Random类
- 11.6.5 案例:企业面试题
- 11.7 日期类
- 11.7.1 第一代日期类
- 11.7.2 第二代日期类
- 11.7.3 第三代日期类
- 11.8 本章小结
- 第12章 集合
- 12.1 集合概述
- 12.1.1 数组回顾
- 12.1.2 集合框架集
- 12.2 Collection集合
- 12.2.1 Collection集合的方法
- 12.2.2 案例:增加和删除元素
- 12.2.3 foreach循环遍历
- 12.2.4 Iterator迭代器遍历
- 12.2.5 集合元素的删除
- 12.2.6 案例:员工信息管理
- 12.3 List集合
- 12.3.1 List接口的方法
- 12.3.2 案例:元素的增删改查
- 12.3.3 List接口的实现类
- 12.3.4 List集合的遍历
- 12.3.5 案例:企业面试题
- 12.4 Set集合
- 12.4.1 HashSet和LinkedHashSet
- 12.4.2 案例:员工信息管理
- 12.4.3 TreeSet
- 12.4.4 案例:企业面试题
- 12.5 Map集合
- 12.5.1 Map接口的方法
- 12.5.2 Map集合的遍历
- 12.5.3 Map接口的实现类
- 12.5.4 案例:企业面试题
- 12.6 深入源码分析
- 12.6.1 Set的源码分析
- 12.6.2 Iterator的源码分析
- 12.6.3 ArrayList的源码分析
- 12.6.4 LinkedList的源码分析
- 12.6.5 HashMap的源码分析
- 12.6.6 modCount变量
- 12.7 本章小结
- 第13章 泛型
- 13.1 泛型的概念
- 13.1.1 无泛型带来的问题
- 13.1.2 泛型的引入
- 13.2 泛型类或泛型接口
- 13.2.1 泛型类或接口的声明
- 13.2.2 泛型类或接口的使用
- 13.2.3 延续父类或接口的泛型
- 13.2.4 设定泛型的上限
- 13.2.5 案例:矩形对象管理
- 13.2.6 案例:员工信息管理
- 13.2.7 案例:随机验证码
- 13.3 泛型方法
- 13.3.1 泛型方法的声明
- 13.3.2 设定泛型形参的上限
- 13.3.3 案例:数组工具类
- 13.4 类型通配符
- 13.4.1 类型通配符的使用
- 13.4.2 类型通配符的上限
- 13.4.3 类型通配符的下限
- 13.4.4 泛型方法与类型通配符
- 13.5 泛型擦除
- 13.6 泛型嵌套
- 13.7 Collections工具类
- 13.8 案例:企业面试题
- 13.9 本章小结
- 第14章 IO流
- 14.1 File类
- 14.1.1 获取文件或目录信息
- 14.1.2 操作文件
- 14.1.3 操作目录
- 14.1.4 案例:递归列出目录的下一级
- 14.1.5 案例:递归列出目录下的所有Java源文件
- 14.1.6 案例:递归删除非空目录
- 14.1.7 案例:获取指定目录的总大小
- 14.2 IO流的分类和设计
- 14.2.1 IO流类的体系结构
- 14.2.2 常见IO流
- 14.2.3 抽象基类的常用方法
- 14.3 案例演示
- 14.3.1 输出纯文本数据
- 14.3.2 读取纯文本数据
- 14.3.3 按行读取
- 14.3.4 复制文件基本版
- 14.3.5 复制文件提升效率版
- 14.3.6 读写纯文本数据的同时进行编码和解码
- 14.3.7 操作Java各种数据类型的数据
- 14.3.8 保存对象
- 14.3.9 按行输出文本内容
- 14.3.10 复制或剪切整个目录
- 14.3.11 IO流使用步骤小结
- 14.4 System类与IO流
- 14.4.1 System类中的IO流
- 14.4.2 Scanner类与IO流
- 14.5 IO流的关闭问题
- 14.5.1 正确关闭IO流
- 14.5.2 新try…catch结构
- 14.6 本章小结
- 第15章 多线程
- 15.1 线程概述
- 15.1.1 进程
- 15.1.2 线程
- 15.2 线程的创建和启动
- 15.2.1 继承Thread类
- 15.2.2 实现Runnable接口
- 15.2.3 二者的区别
- 15.3 线程的生命周期
- 15.4 Thread类的方法
- 15.4.1 获取和设置线程信息
- 15.4.2 线程的控制
- 15.4.3 案例:倒计时
- 15.4.4 案例:线程让步
- 15.4.5 案例:龟兔赛跑
- 15.4.6 案例:守护线程
- 15.4.7 案例:停止线程
- 15.5 线程同步
- 15.5.1 线程安全问题
- 15.5.2 同步代码块
- 15.5.3 同步方法
- 15.5.4 释放锁与否的操作
- 15.5.5 死锁
- 15.6 等待唤醒机制
- 15.6.1 案例:初级快餐店
- 15.6.2 案例:快餐店升级
- 15.6.3 案例:交替打印数字
- 15.7 单例设计模式
- 15.7.1 饿汉式
- 15.7.2 懒汉式
- 15.8 本章小结
- 第16章 网络编程
- 16.1 网络基础知识
- 16.1.1 网络的分类
- 16.1.2 网络协议
- 16.1.3 IP地址
- 16.1.4 端口号
- 16.1.5 URL访问互联网资源
- 16.2 TCP Socket网络编程
- 16.2.1 Socket介绍
- 16.2.2 基于TCP的网络通信程序结构
- 16.2.3 案例:一个客户端与服务器端的单次通信
- 16.2.4 案例:多个客户端与服务器端的多次通信
- 16.2.5 案例:多个客户端上传文件
- 16.2.6 案例:多个客户端群聊
- 16.3 UDP Socket网络编程
- 16.3.1 基于UDP的网络编程
- 16.3.2 案例:用UDP发送消息
- 16.3.3 MulticastSocket多点广播
- 16.3.4 案例:基于MulticastSocket的群聊
- 16.4 本章小结
- 第17章 反射
- 17.1 类的加载、链接和初始化
- 17.1.1 类的加载
- 17.1.2 类的链接
- 17.1.3 类的初始化
- 17.2 类加载器
- 17.2.1 四种类加载器
- 17.2.2 双亲委托模型
- 17.2.3 自定义类加载器
- 17.2.4 加载资源文件
- 17.3 反射的根源
- 17.3.1 Class类剖析
- 17.3.2 获取类信息
- 17.4 反射的应用
- 17.4.1 动态创建对象
- 17.4.2 动态操作属性
- 17.4.3 动态调用方法
- 17.4.4 动态操作数组
- 17.5 代理设计模式
- 17.5.1 静态代理模式
- 17.5.2 动态代理模式
- 17.6 本章小结
- 第18章 Lambda表达式与Stream API
- 18.1 Lambda表达式
- 18.1.1 Lambda表达式语法
- 18.1.2 案例:实现Comparator接口
- 18.1.3 类型推断
- 18.1.4 Lambda表达式的简化
- 18.2 函数式接口
- 18.2.1 函数式接口的概念
- 18.2.2 案例:消费型接口
- 18.2.3 案例:断定型接口
- 18.2.4 案例:功能型接口
- 18.2.5 案例:员工信息管理
- 18.3 Lambda表达式再简化
- 18.3.1 方法引用
- 18.3.2 构造器引用
- 18.3.3 数组构造引用
- 18.4 强大的Stream API
- 18.4.1 创建Stream对象
- 18.4.2 Stream中间操作
- 18.4.3 终止Stream操作
- 18.5 本章小结
- 第19章 Java 9~Java 17新特性
- 19.1 最新几个Java版本概述
- 19.1.1 新特性简介
- 19.1.2 版本更新说明
- 19.2 语法新特性
- 19.2.1 接口中允许私有方法
- 19.2.2 钻石操作符与匿名内部类结合
- 19.2.3 try语法改进
- 19.2.4 局部变量类型推断
- 19.2.5 switch语句
- 19.2.6 文本块
- 19.2.7 instanceof支持模式匹配
- 19.2.8 record
- 19.2.9 NullPointerException
- 19.2.10 密封类
- 19.2.11 隐藏类
- 19.3 API改进
- 19.3.1 String类
- 19.3.2 集合相关类
- 19.3.3 Stream API
- 19.3.4 Files及IO流
- 19.3.5 Optional类
- 19.3.6 支持压缩数字格式化
- 19.3.7 支持日期周期格式化
- 19.3.8 @Deprecated注解
- 19.4 其他新特性
- 19.4.1 模块化
- 19.4.2 jshell命令
- 19.4.3 垃圾回收器
- 19.4.4 更简化的编译运行程序
- 19.5 本章小结
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。