展开全部

主编推荐语

深入讲解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 本章小结
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    5.0

    大多数的 java 书籍都是流水式的罗列知识点和代码,但这本书不是。作者非常用心的、循序渐进的、理论和实践相结合的去讲解 java 的关键思想,把读者照顾得很周到。第一次领会到 java 书籍居然也有让人看得停不下来的精彩感受。

      转发
      评论

    出版方

    电子工业出版社

    电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。