编辑推荐
深入讲解Java核心原理与应用实践。
内容简介
本书分为四大部分:
第1~6章,初步认识Java的基础语法及主流编程工具的使用;
第7~11章,详解Java面向对象编程语言的语法、核心编程思想、基础API等;
第12~17章,介绍使用Java进行高级应用开发所需的API和基础原理;
第18、19章,介绍了Java8~Java17版本的新特性。
本书核心内容基于目前企业应用主流的Java 8进行讲解,读者可以直接进阶到近的长期支持版本Java 17。本书遵循深入浅出的原则编写,既有生动活泼的生活化案例讲解,又有干货满满的源码级分析,可以让读者轻松领会Java技术精髓,快速掌握Java开发技能。本书为每一个知识点的讲解都配备了案例,代码量庞大,如果读者跟随本书案例练习会大大提升自身的代码编写能力。
作者简介
尚硅谷教育,一家专业的IT教育培训机构,开设了JavaEE、大数据、HTML5前端等多门学科,在互联网上发布的JavaEE、大数据、HTML5前端、区块链、C语言、Python等技术视频教程广受赞誉。
章节目录
版权信息
内容简介
前言
第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 本章小结
剑指Java:核心原理与应用实践是2022年由电子工业出版社出版,作者尚硅谷教育 编著。
得书感谢您对《剑指Java:核心原理与应用实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。