剑指Java:核心原理与应用实践

剑指Java:核心原理与应用实践

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

深入讲解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:核心原理与应用实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
边缘计算原理与实践 电子书
本书对边缘计算的发展历史与趋势、几种典型的边缘计算技术的基本架构与原理进行了阐述,并对边缘计算涉及的关键技术与最新进展、部署方案、应用场景与实践进行了详细讲解。本书涉及的内容广泛、技术思想凝炼,突出核心原理和关键技术的阐述,同时力图深入讲解边缘计算开源平台的使用过程。本书对从事边缘计算技术研发的专业人士、网络运营管理人员、相关专业高校学生以及对边缘计算技术感兴趣的读者,都具有一定的参考价值。
深度学习原理与 TensorFlow实践 电子书
本书介绍了深度学习原理与TensorFlow实践。着重讲述了当前学术界和工业界的深度学习核心知识:机器学习概论、神经网络、深度学习。着重讲述了深度学习的实现以及深度学习框架TensorFlow:Python编程基础、TensorFlow编程基础、TensorFlow模型、TensorFlow编程实践、TensorFlowLite和TensorFlow.js、TensorFlow案例--医学应用和S
推荐系统技术原理与实践 电子书
本书系统介绍推荐系统的技术理论和实践。首先介绍推荐系统的基础知识;然后介绍推荐系统常用的机器学习和深度学习模型;接着重点介绍推荐系统的4层级联架构,包括召回、粗排、精排和重排,以及谷歌、阿里巴巴等大型互联网公司在4层级联架构中的模型设计和实现原理;紧接其后介绍多目标排序在推荐系统中的应用,具体介绍阿里巴巴、谷歌等大型互联网公司的实践;最后从不同角度审视推荐系统,介绍公平性问题、知识蒸馏、冷启动等各
Java EE核心框架实战(第2版) 电子书
本书宗旨 提高读者学习Java EE的效率,增强其项目实战能力。本书摒弃了软件公司中不常用或不实用的技术,而是采用近200个开发案例,为读者讲解了开发商业软件的知识,帮助读者进行“精要”式的学习,汲取Java EE的思想,正确地进行项目实战。 本书特色 不留遗漏——覆盖主流Java EE轻量级框架 直击要害——实战化案例精准定位开发细节 学以致用——精要式项目确保开发/ 学习不脱节 潜移默化——研磨式知识讲解参透技术要点 提升效率——垂直式技术精解不绕弯路 循序提升——渐进式知识点统排确保连贯 以点概面——解决方案式项目,知识独立却又体系完整 成功案例——全面经过项目过程锤炼,提升学习/ 开发效率
Java Web云应用开发 电子书
本书以开源的OpenStack技术为基础,按照“任务驱动、能力递进”的思路,以“Web云网盘项目”的开发为主线,全面介绍了使用JavaWeb技术开发Web云网盘系统的方法和主要步骤。本书将Web云网盘的项目分解为Web云网盘概要设计、开发环境搭建、JavaEE基础知识、云存储OpenStackSwift服务构建、开发登录注册模块、开发文件列表模块、开发文件操作模块、开发功能扩展模块、部署发布9个子