您的位置:首页 图书列表 Java无难事——详解Java编程核心思想与技术
收藏
评价
Java无难事——详解Java编程核心思想与技术
商品编号:3874571
ISBN:9787121396038
出版社:电子工业出版社
作者: 孙鑫|责编:高洪霞
出版日期:2020-11-01
开本:28
装帧:暂无
中图分类:TP312.8
页数:14828
册数:1
大约重量:4010(g)
购买数量:
-
+
库存:1
配送:
预计72小时发货
甲虎价: 156.04 (8.3折)
原价:¥188.00
图书简介
图书目录
作者简介
图书评价
《Java无难事》让你学习Java再无难事!本书系统地讲解了Java开发人员需要掌握的核心知识,按照中国人的思维习惯,由浅入深、循序渐进、引导式地带领你快速掌握Java知识。全书秉承作者一贯的写作风格,对知识的讲解让你知其然且知其所以然。全书语言通俗易懂、幽默风趣,在内容安排上由浅入深,在知识讲解上深入浅出,为你节省脑细胞,让你轻松愉快地掌握Java知识。看书累了,没关系,还有视频。同步学习视频并不是书中内容的重复,而是有力的补充和完善。本书还讲解了依赖注入(IoC/DI)容器、面向切面编程(AOP)、对象关系映射(ORM)框架的实现原理,同时还给出了并发编程领域中经常用到的线程池的实现。本书涵盖了从Java5到Java11的所有重要新特性,不仅适合初学Java编程的读者,也适合有一定经验的读者,甚至对于正在从事Java开发工作的读者也适用。
章Java初窥
1.1Java的起源
1.2Java能做什么
1.3相关概念
1.3.1JDK
1.3.2Java家族的三个成员
1.3.3Java1、Java2和Java5
1.3.4JRE
1.4安装JDK
1.4.1下载JDK11(JavaSE11)
1.4.2安装JDK
1.4.3下载帮助文档
1.5Java的特性
1.5.1简单
1.5.2面向对象
1.5.3健壮
1.5.4安全
1.5.5结构中立
1.5.6可移植
1.5.7高性能
1.5.8解释执行
1.5.9平台无关
1.5.10多线程
1.5.11动态
1.6Java跨平台的原理
1.6.1Java源文件的编译过程
1.6.2Java解释器运行机制
1.6.3Java字节码的执行方式
1.6.4理解JVM
1.7个程序
1.7.1了解JDK
1.7.2编写个Java程序
1.8扫清Java征途中的两块绊脚石
1.8.1有用的PATH
1.8.2难缠的CLASSPATH
1.9交互式编程环境JShell
1.10为Java程序打包
1.10.1JAR文件
1.10.2将字节码文件打包到
JAR包中
1.10.3将目录中所有文件打包到
JAR文件中
1.10.4清单文件
1.11总结
1.12实战练习
第2章初识Java语言
2.1标识符
2.2数据类型
2.2.1整数类型
2.2.2浮点类型
2.2.3字符(char)型
2.2.4布尔(boolean)型
2.2.5String类型
2.3变量和字面常量
2.3.1变量
2.3.2字面常量
2.4类型转换的奥秘
2.5运算符
2.5.1赋值运算符
2.5.2自增和自减运算符
2.5.3算术运算符
2.5.4关系运算符
2.5.5布尔运算符
2.5.6位运算符
2.5.7移位运算符
2.5.8一元和二元运算符
2.5.9三元运算符
2.5.10优先级
2.6表达式与语句
2.7程序结构
2.7.1分支语句
2.7.2循环语句
2.8数组
2.8.1数组类型与声明数组
2.8.2创建数组
2.8.3使用数组
2.8.4匿名数组
2.8.5多维数组
2.8.6数组的初始值和越界
2.9分隔符
2.10注释
2.10.1传统注释
2.10.2JavaDoc注释
2.11Java中的关键字
2.12总结
2.13实战练习
第3章进入对象的世界
3.1面向对象思想
3.2对象的状态和行为
3.2.1对象都有一组固定的行为
3.2.2注意思维习惯
3.3面向对象编程的难点
3.4Java的类与对象
3.5字段(field)与方法
3.5.1字段
3.5.2方法
3.5.3方法的参数与返回值
3.6构造方法与new关键字
3.7方法重载
3.8特殊变量this
3.9关键字static
3.9.1静态字段
3.9.2静态方法
3.9.3static语句块
3.10常量
3.11枚举(enum)
3.11.1原始的枚举实现
3.11.2枚举类型
3.11.3枚举值的比较
3.11.4自定义枚举值
3.12总结
3.13实战练习
第4章不错面向对象编程
4.1继承
4.2方法的覆盖(override)
4.3多态(polymorphism)
4.3.1何为多态
4.3.2多态的实际应用
4.3.3Java编译器如何实现多态
4.3.4类型转换
4.3.5协变返回类型
4.3.6在构造方法中调用被覆盖的
方法
4.4特殊变量super
4.4.1访问父类被子类覆盖的方法或
隐藏的变量
4.4.2调用父类构造方法
4.5封装与private
4.6对外发布的接口――public
4.7再谈final
4.7.1final类
4.7.2final方法
4.7.3final参数
4.8对象的销毁
4.9面向对象的四个基本特性
4.10总结
4.11实战练习
第5章包和访问控制
5.1在包中的类
5.2导入类
5.3静态导入
5.4静态导入枚举类型
5.5访问控制
5.5.1类的访问说明符
5.5.2类成员的访问说明符
5.6总结
5.7实战练习
第6章抽象类与接口
6.1抽象方法和抽象类
6.2接口
6.3接口中的数据成员
6.4接口的继承与实现
6.5接口的应用
6.6深入接口――通信双方的协议
6.7接口的默认方法和静态方法
6.7.1默认方法
6.7.2静态方法
6.8接口的私有方法
6.9总结
6.10实战练习
第7章内部类(InnerClass)
7.1创建内部类
7.2访问外部类
7.3内部类与接口
7.4局部内部类
7.5匿名内部类
7.5.1创建匿名内部类
7.5.2匿名内部类的构造方法
7.6静态内部类
7.7内部类的继承与覆盖
7.7.1内部类的继承
7.7.2内部类的覆盖
7.8内部类规则总结
7.9回调与事件机制
7.9.1回调(callback)
7.9.2事件(event)
7.10总结
7.11实战练习
第8章异常处理
8.1什么是异常
8.2捕获异常
8.3使用finally进行清理
8.4抛出异常与声明异常
8.5RuntimeException
8.6创建自己的异常体系结构
8.7try-with-resources
8.7.1自动关闭资源
8.7.2声明多个资源
8.7.3catch多个异常
8.7.4使用更具包容性的类型
检查重新抛出异常
8.8总结
8.9实战练习
第9章深入字符串
9.1String类
9.2==运算符与equals方法
9.3compareTo方法
9.4字符串拼接
9.5操作字符串
9.5.1获取字符串的长度
9.5.2查找字符或字符串
9.5.3判断字符串的开始与结尾
9.5.4获取指定索引位置的字符
9.5.5截取子字符串
9.5.6分割字符串
9.5.7替换字符或字符串
9.5.8合并字符串
9.5.9重复字符串
9.5.10大小写转换
9.5.11去除字符串首尾空白
9.5.12判断字符串是否为空
9.5.13提取字符串的行流
9.5.14与字节数组相互转换
9.6StringBuffer类和
StringBuilder类
9.7格式化输出
9.7.1格式说明符
9.7.2参数索引
9.7.3格式说明字符
9.7.4宽度和精度
9.7.5标志字符
9.7.6生成格式化的String对象
9.8正则表达式
9.8.1正则表达式的优点
9.8.2一切从模式开始
9.8.3创建正则表达式
9.8.4量词
9.8.5String类的正则表达式方法
9.8.6Pattern和Matcher
9.8.7邮件地址验证
9.8.8获取组匹配的内容
9.8.9替换字符串
9.9总结
9.10实战练习
0章Java应用
10.1再论引用类型
10.1.1引用类型――数组
10.1.2方法传参
10.2操作数组
10.2.1数组的复制
10.2.2数组的排序
10.2.3搜索数组中的元素
10.2.4填充数组
10.3基本数据类型与封装类
10.3.1基本数据类型与封装类对象的互相转换
10.3.2封装类对象与字符串的互相转换
10.3.3基本数据类型与字符串的互相转换
10.3.4自动装箱与拆箱
10.4对象的克隆
10.5国际化与本地化
10.5.1Locale
10.5.2资源包
10.5.3消息格式化
10.6总结
10.7实战练习
1章泛型
11.1为什么需要泛型
11.2泛型与基本数据类型
11.3泛型类中的数组
11.4元组
11.5泛型接口
11.5.1一个简单的泛型接口
11.5.2匿名内部类实现泛型接口
11.5.3map机制的实现
11.6泛型方法
11.6.1简单的泛型方法
11.6.2完善映射机制的实现
11.7通配符类型
11.7.1通配符的子类型限定
11.7.2通配符的超类型限定
11.8类型参数的限定
11.9深入泛型机制
11.10泛型的一些问题
11.10.1接口的二次实现
11.10.2方法重载
11.10.3泛型类型的实例化
11.10.4异常
11.11使用泛型的限制
11.12类型参数的命名约定
11.13总结
11.14实战练习
2章Lambda表达式
12.1理解Lambda表达式
12.2Lambda表达式的语法
12.3函数式接口
12.4内置函数式接口
12.5方法引用
12.6构造方法引用
12.7数组引用
12.8总结
12.9实战练习
3章集合类
13.1集合框架中的接口与实现类
13.1.1集合框架中的接口
13.1.2集合框架中的实现类
13.1.3Collection类型的集合
13.1.4Map类型的集合
13.2迭代
13.2.1Iterator接口
13.2.2迭代器与“foreach”循环
13.2.3新增的forEach方法
13.2.4ListIterator接口
13.2.5迭代与回调
13.3数据结构简介
13.3.1链表
13.3.2栈
13.3.3队列
13.4List
13.4.1ArrayList
13.4.2LinkedList
13.4.3List集合类的性能
13.5Set
13.5.1HashSet
13.5.2TreeSet
13.5.3LinkedHashSet
13.5.4Set集合类的性能
13.6Queue
13.6.1Queue接口
13.6.2PriorityQueue类
13.6.3Deque接口
13.7Collections类
13.7.1排序集合中的元素
13.7.2获取优选和最小元素
13.7.3在集合中搜索
13.7.4获取包装器集合
13.8再探Comparator接口
13.9深入Map类型
13.9.1Map接口
13.9.2Map的工作原理
13.9.3HashMap
13.9.4TreeMap
13.9.5LinkedHashMap
13.9.6Map性能测试
13.10遗留的集合
13.10.1Enumeration接口
13.10.2Vector类
13.10.3Stack类
13.10.4Hashtable类
13.10.5Properties类
13.10.6BitSet类
13.11集合工厂方法
13.11.1of方法
13.11.2copyOf方法
13.12总结
13.13实战练习
4章Stream
14.1什么是Stream
14.2创建流
14.3并行流与串行流
14.4有序流和无序流
14.5中间操作
14.5.1筛选和截断
14.5.2映射
14.5.3排序
14.5.4peek
14.6终端操作
14.6.1遍历
14.6.2查找与匹配
14.6.3优选/最小与计数
14.6.4收集统计信息
14.6.5reduce
14.6.6collect
14.7并行流的性能
14.8总结
14.9实战练习
5章Class类与反射API
15.1Class<T>类
15.2获取类型信息
15.2.1获取方法和字段信息
15.2.2获取基类和接口信息
15.2.3获取枚举信息
15.2.4获取泛型信息
15.2.5获取注解信息
15.3检测类型
15.4使用Class和反射创建类的对象
15.5使用反射调用对象的方法
15.6使用反射修改对象的字段
15.7依赖注入容器
15.8动态代理
15.9ClassLoader
15.9.1类加载器的分类
15.9.2类加载器的加载机制
15.9.3自定义类加载器
15.10适可而止
15.11方法句柄
15.12服务加载器
15.13总结
15.14实战练习
6章注解(Annotation)
16.1预定义的注解
16.1.1@Override
16.1.2@Deprecated
16.1.3@SuppressWarnings
16.1.4@SafeVarargs
16.1.5@FunctionalInterface
16.2自定义注解
16.3元注解
16.3.1@Documented
16.3.2@Retention
16.3.3@Target
16.3.4@Inherited
16.3.5@Repeatable
16.4注解与反射
16.5编写注解处理器
16.5.1依赖注入容器的注解实现
16.5.2使用注解生成数据库表
16.6总结
16.7实战练习
7章多线程
17.1基本概念
17.1.1程序和进程
17.1.2线程
17.2Java对多线程的支持
17.3Java线程
17.3.1Thread类
17.3.2创建任务
17.3.3让步
17.3.4休眠
17.3.5优先级
17.3.6加入一个线程
17.3.7捕获线程的异常
17.3.8后台线程
17.3.9线程组
17.3.10线程的状态
17.4线程同步
17.4.1错误地访问共享资源
17.4.2同步语句块
17.4.3同步方法
17.4.4死锁
17.5线程本地存储
17.5.1使用ThreadLocal类
17.5.2ThreadLocal的实现原理
17.6生产者与消费者
17.7线程的终止
17.7.1取消一个任务
17.7.2在阻塞中中止
17.7.3注意清理
17.8线程池
17.9总结
17.10实战练习
8章Java常用工具类
18.1java.lang.Math类
18.2随机数
18.2.1Math.random方法
18.2.2Random类
18.2.3ThreadLocalRandom类
18.3大数字运算
18.3.1BigInteger
18.3.2BigDecimal
18.4日期时间工具
18.4.1Date类
18.4.2DateFormat类
18.4.3SimpleDateFormat类
18.4.4Calendar类
18.5Java8新增的日期/时间API
18.5.1新的日期/时间类
18.5.2构造日期/时间对象
18.5.3格式化和解析日期/时间字符串
18.5.4操作日历字段
18.5.5计算时间间隔
18.5.6使用Instant计算某项操作花费的时间
18.5.7判断闰年
18.5.8与Date和Calendar的相互转换
18.6Optional类
18.6.1创建Optional类的实例
18.6.2判断Optional的值是否存在
18.6.3获取Optional的值
18.6.4过滤与映射
18.6.5得到Stream对象
18.6.6为什么要使用Optional
18.6.7OptionalInt、OptionalLong和OptionalDouble
18.7Base64编解码
18.8Timer类
18.9Runtime类与单例设计模式
18.10总结
18.11实战练习
9章JavaI/O操作
19.1File类
19.1.1分隔符
19.1.2创建文件夹
19.1.3文件操作
19.1.4搜索目录中的文件
19.1.5移动文件
19.1.6临时文件
19.2流式I/O
19.3输入输出流
19.3.1InputStream
19.3.2OutputStream
19.3.3字节数组输入/输出流
19.3.4文件输入/输出流
19.3.5过滤流
19.3.6缓冲的输入/输出流
19.3.7数据输入/输出流
19.3.8管道流
19.3.9复制文件
19.4JavaI/O库的设计原则
19.5Reader和Writer
19.6InputStreamReader和OutputStreamWriter
19.7字符集与中文乱码问题
19.7.1字符集
19.7.2对乱码产生过程的分析
19.7.3Charset类
19.8RandomAccessFile类
19.9标准I/O
19.9.1从标准输入中读取数据
19.9.2Scanner
19.9.3I/O重定向
19.10对象序列化
19.10.1使用对象流实现序列化
19.10.2对象引用的序列化
19.10.3序列化过滤器
19.10.4定制序列化
19.10.5替换对象
19.10.6使用Externalizable接口定制序列化
19.10.7序列化版本
19.11NIO
19.11.1缓冲区(Buffer)
19.11.2通道(Channel)
19.11.3使用通道复制文件
19.11.4视图缓冲区
19.11.5字节顺序
19.11.6直接和非直接缓冲区
19.11.7分散和聚集
19.11.8字符缓冲区的问题
19.11.9内存映射文件
19.11.10对文件加锁
19.11.11管道
19.12Files类与Path接口
19.12.1Path接口
19.12.2读写文件
19.12.3遍历目录
19.12.4小结
19.13异步文件通道
19.13.1写入数据
19.13.2读取数据
19.14总结
19.15实战练习
第20章Java并发编程
20.1Callable和Future接口
20.2新的任务执行框架
20.2.1Executor接口
20.2.2ExecutorService接口
20.2.3Executors工具类
20.2.4ThreadFactory
20.2.5ScheduledExecutorService
20.2.6批量执行任务
20.2.7CompletionService接口
20.2.8ThreadPoolExecutor类
20.3锁对象
20.3.1Lock接口
20.3.2重入互斥锁
20.3.3读写锁
20.3.4StampedLock
20.4条件对象
20.5同步工具类
20.5.1CountDownLatch
20.5.2CyclicBarrier
20.5.3Semaphore
20.5.4Exchanger
20.6线程安全的集合
20.6.1写时拷贝
20.6.2阻塞队列
20.6.3延迟队列
20.6.4传输队列
20.6.5ConcurrentHashMap
20.6.6ConcurrentSkipListMap
20.7Fork/Join框架
20.8CompletableFuture
20.8.1异步执行任务
20.8.2构造异步任务链
20.8.3结果转换
20.8.4组合异步任务
20.8.5任务链完成时的结果处理和异常处理
20.9原子操作
20.9.1AtomicInteger类
20.9.2LongAdder
20.10变量句柄
20.11总结
20.12实战练习
第21章Eclipse开发工具
21.1Eclipse简介
21.2下载并安装
21.3Eclipse开发环境介绍
21.4配置Eclipse
21.4.1配置JDK
21.4.2配置字体
21.4.3配置和使用快捷键
21.4.4配置字符集
21.5开发Java程序
21.6调试代码
21.7JUnit单元测试
21.8导入现有的Eclipse项目
21.9总结
21.10实战练习
第22章图形界面编程
22.1AWT
22.1.1个AWT应用程序
22.1.2关闭窗口
22.1.3向窗口内添加组件
22.2布局管理器
22.2.1BorderLayout
22.2.2FlowLayout
22.2.3GridLayout
22.2.4CardLayout
22.2.5GridBagLayout
22.2.6组合多个布局管理器
22.3事件模型
22.3.1按钮点击事件的处理
22.3.2事件监听器
22.3.3观察者模式
22.4Swing
22.4.1基本的框架窗口
22.4.2添加文本域和菜单栏
22.4.3菜单功能
22.4.4弹出菜单
22.5Swing与并发
22.6使用WindowBuilder快速
开发图形界面程序
22.6.1安装WindowBuilder
22.6.2用户登录界面
22.6.3注册事件监听器
22.7总结
22.8实战练习
第23章Java网络编程
23.1网络基础知识
23.1.1计算机网络
23.1.2IP地址
23.1.3协议
23.1.4网络的状况
23.1.5网络异质性问题的解决
23.1.6ISO/OSI七层参考模型
23.1.7数据封装
23.1.8TCP/IP模型
23.1.9端口
23.1.10套接字(Socket)
23.1.11客户机/服务器模式
23.2基于TCP的套接字编程
23.2.1服务器程序
23.2.2客户端程序
23.2.3多线程的服务器程序
23.2.4套接字超时
23.3基于UDP的套接字编程
23.3.1接收端
23.3.2发送端
23.3.3获取发送端的信息
23.4非阻塞的套接字编程
23.4.1SocketChannel
23.4.2ServerSocketChannel
23.4.3Selector
23.4.4非阻塞的服务器程序
23.4.5非阻塞的客户端程序
23.5URL和URLConnection
23.5.1URL类
23.5.2URLConnection类
23.5.3一个实用的下载程序
23.6HTTPClientAPI
23.6.1HttpClient
23.6.2HttpRequest
23.6.3HttpResponse
23.6.4异步发送多个请求
23.6.5启用HttpClient的日志记录功能
23.7总结
23.8实战练习
第24章数据库访问
24.1JDBC驱动程序的类型
24.1.1JDBC-ODBC桥
24.1.2部分本地API的Java驱动程序
24.1.3JDBC网络纯Java驱动程序
24.1.4本地协议的纯Java驱动程序
24.2安装数据库
24.3下载MySQLJDBC驱动
24.4JDBCAPI
24.5加载并注册数据库驱动
24.5.1Driver接口
24.5.2加载与注册JDBC驱动
24.5.3服务加载
24.6建立到数据库的连接
24.7访问数据库
24.7.1Statement
24.7.2ResultSet
24.7.3PreparedStatement
24.7.4CallableStatement
24.7.5元数据
24.8事务处理
24.9可滚动和可更新的结果集
24.9.1可滚动的结果集
24.9.2可更新的结果集
24.10行集
24.10.1行集的标准实现
24.10.2行集的事件模型
24.10.3CachedRowSet
24.11JDBC数据源和连接池
24.12总结
24.13实战练习
第25章Java平台模块系统
25.1Java平台的模块
25.2模块的物理结构
25.3创建模块
25.4模块依赖
25.5导出包
25.6可传递的模块与静态依赖
25.7开放包
25.8限定导出和开放
25.9服务加载
25.10未命名模块
25.11自动模块
25.12为什么要引入模块系统
25.13总结
25.14实战练习
商品评价 (0)
为您推荐
方便
200万图书品种,一站式采购
高效
10分钟查单返单,48小时快速配货
放心
正版低价,假一赔三
在线客服
购物车
收藏夹
留言板
返回顶部