疯狂Java讲义精粹(第2版)

疯狂Java讲义精粹(第2版)

程序语言
本站提供《 疯狂Java讲义精粹(第2版) 》 的PDF格式电子书为程序自动采集自网络,如损害了您的利益,请申请删除。

本书介绍

《疯狂Java讲义精粹(第2版)》是《疯狂Java讲义精粹》的第2版,《疯狂Java讲义精粹(第2版)》相比《疯狂Java讲义》更浅显易懂,讲解更细致,本书同样介绍了Java 8的新特性,《疯狂Java讲义精粹(第2版)》大部分示例程序都采用Lambda表达式、流式API进行了改写,因此务必使用Java 8的JDK来编译、运行。 
《疯狂Java讲义精粹(第2版)》尽量浅显、直白地介绍Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程。覆盖了java.lang、java.util、java.text、java.io和java.nio包下绝大部分类和接口。《疯狂Java讲义精粹(第2版)》全面介绍了...
(展开全部)
《疯狂Java讲义精粹(第2版)》是《疯狂Java讲义精粹》的第2版,《疯狂Java讲义精粹(第2版)》相比《疯狂Java讲义》更浅显易懂,讲解更细致,本书同样介绍了Java 8的新特性,《疯狂Java讲义精粹(第2版)》大部分示例程序都采用Lambda表达式、流式API进行了改写,因此务必使用Java 8的JDK来编译、运行。 
《疯狂Java讲义精粹(第2版)》尽量浅显、直白地介绍Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程。覆盖了java.lang、java.util、java.text、java.io和java.nio包下绝大部分类和接口。《疯狂Java讲义精粹(第2版)》全面介绍了Java 8的新的接口语法、Lambda表达式、方法引用、构造器引用、函数式编程、流式编程、新的日期、时间API、并行支持、改进的类型推断、重复注解、JDBC 4.2新特性等新特性。 
《疯狂Java讲义精粹(第2版)》为打算认真掌握Java编程的读者而编写,适合各种层次的Java学习者和工作者阅读。《疯狂Java讲义精粹(第2版)》专门针对高校课程进行过调整,尤其适合作为高校教育、培训机构的Java教材。

目录

第1章 Java语言概述与开发环境 1
 1.1 Java语言的发展简史 2
 1.2 Java程序运行机制 4
 1.2.1 高级语言的运行机制 4
 1.2.2 Java程序的运行机制和JVM 4
 1.3 开发Java的准备 5
 1.3.1 下载和安装Java 8的JDK 5
 不是说JVM是运行Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢? 6
 1.3.2 设置PATH环境变量 8
 为什么不安装公共JRE呢? 7
 为什么选择用户变量?用户变量与系统变量有什么区别? 9
 1.4 第一个Java程序 9
 1.4.1 编辑Java源代码 9
 1.4.2 编译Java程序 10
 当编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 10
 1.4.3 运行Java程序 11
 1.4.4 根据CLASSPATH环境变量定位类 11
 1.5 Java程序的基本规则 12
 1.5.1 Java程序的组织形式 12
 1.5.2 Java源文件的命名规则 13
 1.5.3 初学者容易犯的错误 13
 1.6 何时开始使用IDE工具 15
 我想学习Java编程,到底是学习Eclipse好,还是学习NetBeans好呢? 16
 1.7 本章小结 16
 本章练习 16
 第2章 数据类型和运算符 17
 2.1 注释 18
 2.1.1 单行注释和多行注释 18
 2.1.2 文档注释 19
 API文档是什么? 19
 为什么要学习查看API文档的方法? 21
 2.2 标识符和关键字 24
 2.2.1 分隔符 24
 2.2.2 标识符规则 25
 2.2.3 Java关键字 26
 2.3 数据类型分类 26
 什么是变量?变量有什么用? 26
 2.4 基本数据类型 27
 2.4.1 整型 27
 2.4.2 字符型 29
 什么是字符集? 29
 2.4.3 浮点型 31
 2.4.4 数值中使用下画线分隔 32
 2.4.5 布尔型 32
 2.5 基本类型的类型转换 33
 2.5.1 自动类型转换 33
 2.5.2 强制类型转换 34
 2.5.3 表达式类型的自动提升 35
 2.6 直接量 36
 2.6.1 直接量的类型 36
 2.6.2 直接量的赋值 37
 2.7 运算符 38
 2.7.1 算术运算符 38
 2.7.2 赋值运算符 40
 2.7.3 位运算符 41
 2.7.4 扩展后的赋值运算符 43
 2.7.5 比较运算符 43
 2.7.6 逻辑运算符 44
 2.7.7 三目运算符 45
 2.7.8 运算符的结合性和优先级 46
 2.8 本章小结 47
 本章练习 47
 第3章 流程控制与数组 48
 3.1 顺序结构 49
 3.2 分支结构 49
 3.2.1 if条件语句 49
 3.2.2 增强后的switch分支语句 53
 3.3 循环结构 54
 3.3.1 while循环语句 55
 3.3.2 do while循环语句 56
 3.3.3 for循环 57
 3.3.4 嵌套循环 59
 3.4 控制循环结构 60
 3.4.1 使用break结束循环 60
 3.4.2 使用continue忽略本次循环剩下语句 61
 3.4.3 使用return结束方法 62
 3.5 数组类型 63
 3.5.1 理解数组:数组也是一种类型 63
 int[]是一种类型吗?怎么使用这种类型呢? 63
 3.5.2 定义数组 63
 3.5.3 数组的初始化 64
 能不能只分配内存空间,不赋初始值呢? 64
 3.5.4 使用数组 65
 为什么要我记住这些异常信息? 66
 3.5.5 foreach循环 66
 3.6 深入数组 68
 3.6.1 没有多维数组 68
 我是否可以让图3.3中灰色覆盖的数组元素再次指向另一个数组?这样不就可以扩展成三维数组,甚至扩展成更多维的数组吗? 69
 3.6.2 Java 8增强的工具类:Arrays 70
 3.7 本章小结 73
 本章练习 73
 第4章 面向对象(上) 74
 4.1 类和对象 75
 4.1.1 定义类 75
 构造器不是没有返回值吗?为什么不能用void声明呢? 77
 4.1.2 对象的产生和使用 77
 4.1.3 对象、引用和指针 78
 4.1.4 对象的this引用 79
 4.2 方法详解 83
 4.2.1 方法的所属性 83
 4.2.2 方法的参数传递机制 83
 4.2.3 形参个数可变的方法 87
 4.2.4 递归方法 88
 4.2.5 方法重载 89
 为什么方法的返回值类型不能用于区分重载的方法? 90
 4.3 成员变量和局部变量 90
 4.3.1 成员变量和局部变量 90
 4.3.2 成员变量的初始化和内存中的运行机制 94
 4.3.3 局部变量的初始化和内存中的运行机制 95
 4.3.4 变量的使用规则 96
 4.4 隐藏和封装 97
 4.4.1 理解封装 97
 4.4.2 使用访问控制符 97
 4.4.3 package、import和import static 100
 4.4.4 Java的常用包 104
 4.5 深入构造器 105
 4.5.1 使用构造器执行初始化 105
 构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象? 106
 4.5.2 构造器重载 106
 为什么要用this来调用另一个重载的构造器?我把另一个构造器里的代码复制、粘贴到这个构造器里不就可以了吗? 107
 4.6 类的继承 108
 4.6.1 继承的特点 108
 4.6.2 重写父类的方法 109
 4.6.3 super限定 110
 4.6.4 调用父类构造器 112
 为什么我创建Java对象时从未感觉到java.lang. Object类的构造器被调用过? 114
 4.7 多态 115
 4.7.1 多态性 115
 4.7.2 引用变量的强制类型转换 116
 4.7.3 instanceof运算符 117
 4.8 初始化块 118
 4.8.1 使用初始化块 118
 4.8.2 初始化块和构造器 120
 4.8.3 静态初始化块 120
 4.9 本章小结 123
 本章练习 123
 第5章 面向对象(下) 124
 5.1 Java 8增强的包装类 125
 Java为什么要对这些数据进行缓存呢? 128
 5.2 处理对象 129
 5.2.1 打印对象和toString方法 129
 5.2.2 ==和equals方法 130
 上面程序中判断obj是否为Person类的实例时,为何不用obj instanceof Person来判断呢? 134
 5.3 类成员 134
 5.3.1 理解类成员 134
 5.3.2 单例(Singleton)类 135
 5.4 final修饰符 136
 5.4.1 final成员变量 136
 5.4.2 final局部变量 138
 5.4.3 final修饰基本类型变量和引用类型变量的区别 139
 5.4.4 可执行“宏替换”的final变量 139
 5.4.5 final方法 141
 5.4.6 final类 142
 5.5 抽象类 142
 5.5.1 抽象方法和抽象类 142
 5.5.2 抽象类的作用 145
 5.6 Java 8改进的接口 146
 5.6.1 接口的概念 146
 5.6.2 Java 8中接口的定义 147
 5.6.3 接口的继承 149
 5.6.4 使用接口 149
 5.6.5 接口和抽象类 151
 5.7 内部类 152
 5.7.1 非静态内部类 152
 非静态内部类对象和外部类对象的关系是怎样的? 155
 5.7.2 静态内部类 156
 为什么静态内部类的实例方法也不能访问外部类的实例属性呢? 157
 接口里是否能定义内部接口? 158
 5.7.3 使用内部类 158
 既然内部类是外部类的成员,那么是否可以为外部类定义子类,在子类中再定义一个内部类来重写其父类中的内部类呢? 160
 5.7.4 局部内部类 160
 5.7.5 Java 8改进的匿名内部类 161
 5.8 Java 8新增的Lambda表达式 164
 5.8.1 Lambda表达式入门 164
 5.8.2 Lambda表达式与函数式接口 166
 5.8.3 方法引用与构造器引用 168
 5.8.4 Lambda表达式与匿名内部类的联系和区别 171
 5.8.5 使用Lambda表达式调用Arrays的类方法 172
 5.9 枚举类 172
 5.9.1 手动实现枚举类 173
 5.9.2 枚举类入门 173
 5.9.3 枚举类的成员变量、方法和构造器 175
 5.9.4 实现接口的枚举类 177
 枚举类不是用final修饰了吗?怎么还能派生子类呢? 178
 5.9.5 包含抽象方法的枚举类 178
 5.10 修饰符的适用范围 179
 5.11 本章小结 180
 本章练习 180
 第6章 Java基础类库 181
 6.1 与用户互动 182
 6.1.1 运行Java程序的参数 182
 6.1.2 使用Scanner获取键盘输入 183
 6.2 系统相关 185
 6.2.1 System类 185
 6.2.2 Runtime类 187
 6.3 常用类 188
 6.3.1 Object类 188
 6.3.2 Objects类 189
 6.3.3 String、StringBuffer和StringBuilder类 190
 6.3.4 Math类 193
 6.3.5 ThreadLocalRandom与Random 195
 6.3.6 BigDecimal类 196
 6.4 Java 8的日期、时间类 199
 6.4.1 Date类 199
 6.4.2 Calendar类 199
 6.4.3 Java 8新增的日期、时间包 202
 6.5 Java 8新增的日期、时间格式器 204
 6.5.1 使用DateTimeFormatter完成格式化 205
 6.5.2 使用DateTimeFormatter解析字符串 206
 6.6 本章小结 206
 本章练习 206
 第7章 Java集合 207
 7.1 Java集合概述 208
 7.2 Collection和Iterator接口 209
 7.2.1 使用Lambda表达式遍历集合 211
 7.2.2 使用Java 8增强的Iterator遍历集合元素 211
 7.2.3 使用Lambda表达式遍历Iterator 213
 7.2.4 使用foreach循环遍历集合元素 213
 7.2.5 使用Java 8新增的Predicate操作集合 214
 7.2.6 使用Java 8新增的Stream操作集合 215
 7.3 Set集合 217
 7.3.1 HashSet类 217
 hashCode()方法对于HashSet是不是十分重要? 219
 7.3.2 LinkedHashSet类 221
 7.3.3 TreeSet类 222
 7.4 List集合 227
 7.4.1 Java 8改进的List接口和ListIterator接口 227
 7.4.2 ArrayList和Vector实现类 231
 7.4.3 固定长度的List 231
 7.5 Queue集合 232
 7.5.1 PriorityQueue实现类 232
 7.5.2 Deque接口与ArrayDeque实现类 233
 7.5.3 LinkedList实现类 235
 7.5.4 各种线性表的性能分析 236
 7.6 Java 8增强的Map集合 236
 7.6.1 Java 8为Map新增的方法 238
 7.6.2 Java 8改进的HashMap和Hashtable实现类 239
 7.6.3 LinkedHashMap实现类 242
 7.6.4 使用Properties读写属性文件 243
 7.6.5 SortedMap接口和TreeMap实现类 244
 7.6.6 各Map实现类的性能分析 246
 7.7 HashSet和HashMap的性能选项 246
 7.8 操作集合的工具类:Collections 247
 7.8.1 排序操作 247
 7.8.2 查找、替换操作 250
 7.8.3 同步控制 251
 7.8.4 设置不可变集合 251
 7.9 烦琐的接口:Enumeration 252
 7.10 本章小结 253
 本章练习 253
 第8章 泛型 254
 8.1 泛型入门 255
 8.1.1 编译时不检查类型的异常 255
 8.1.2 使用泛型 255
 8.1.3 泛型的“菱形”语法 256
 8.2 深入泛型 257
 8.2.1 定义泛型接口、类 257
 8.2.2 从泛型类派生子类 259
 8.2.3 并不存在泛型类 260
 8.3 类型通配符 260
 8.3.1 使用类型通配符 262
 8.3.2 设定类型通配符的上限 262
 8.3.3 设定类型形参的上限 264
 8.4 泛型方法 264
 8.4.1 定义泛型方法 265
 8.4.2 泛型方法和类型通配符的区别 267
 8.4.3 “菱形”语法与泛型构造器 268
 8.4.4 设定通配符下限 269
 8.4.5 泛型方法与方法重载 271
 8.4.6 Java 8改进的类型推断 272
 8.5 擦除和转换 272
 8.6 泛型与数组 274
 8.7 本章小结 275
 第9章 异常处理 276
 9.1 异常概述 277
 9.2 异常处理机制 278
 9.2.1 使用try...catch捕获异常 278
 9.2.2 异常类的继承体系 279
 9.2.3 多异常捕获 282
 9.2.4 访问异常信息 282
 9.2.5 使用finally回收资源 283
 9.2.6 异常处理的嵌套 285
 9.2.7 自动关闭资源的try语句 286
 9.3 Checked异常和Runtime异常体系 287
 9.3.1 使用throws声明抛出异常 287
 9.4 使用throw抛出异常 289
 9.4.1 抛出异常 289
 9.4.2 自定义异常类 290
 9.4.3 catch和throw同时使用 291
 9.4.4 增强的throw语句 292
 9.4.5 异常链 293
 9.5 Java的异常跟踪栈 294
 9.6 异常处理规则 296
 9.6.1 不要过度使用异常 296
 9.6.2 不要使用过于庞大的try块 297
 9.6.3 避免使用Catch All语句 298
 9.6.4 不要忽略捕获到的异常 298
 9.7 本章小结 298
 本章练习 298
 第10章 Annotation(注解) 299
 10.1 基本Annotation 300
 10.1.1 限定重写父类方法:@Override 300
 10.1.2 标示已过时:@Deprecated 301
 10.1.3 抑制编译器警告:@SuppressWarnings 302
 10.1.4 “堆污染”警告与@SafeVarargs 302
 10.1.5 Java 8的函数式接口与@FunctionalInterface 303
 10.2 JDK的元Annotation 304
 10.2.1 使用@Retention 304
 10.2.2 使用@Target 305
 10.2.3 使用@Documented 305
 10.2.4 使用@Inherited 306
 10.3 自定义Annotation 307
 10.3.1 定义Annotation 307
 10.3.2 提取Annotation信息 308
 10.3.3 使用Annotation的示例 310
 10.3.4 Java 8新增的重复注解 314
 10.3.5 Java 8新增的Type Annotation 316
 10.4 编译时处理Annotation 317
 10.5 本章小结 320
 第11章 输入/输出 321
 11.1 File类 322
 11.1.1 访问文件和目录 322
 11.1.2 文件过滤器 324
 11.2 理解Java的IO流 324
 11.2.1 流的分类 325
 11.2.2 流的概念模型 326
 11.3 字节流和字符流 327
 11.3.1 InputStream和Reader 327
 11.3.2 OutputStream和Writer 329
 11.4 输入/输出流体系 330
 11.4.1 处理流的用法 330
 11.4.2 输入/输出流体系 331
 11.4.3 转换流 333
 怎么没有把字符流转换成字节流的转换流呢? 334
 11.4.4 推回输入流 334
 11.5 重定向标准输入/输出 336
 11.6 RandomAccessFile 337
 11.7 NIO.2 340
 11.7.1 Path、Paths和Files核心API 341
 11.7.2 使用FileVisitor遍历文件和目录 342
 11.7.3 使用WatchService监控文件变化 343
 11.7.4 访问文件属性 344
 11.8 本章小结 346
 本章练习 346
 第12章 多线程 347
 12.1 线程概述 348
 12.1.1 线程和进程 348
 12.1.2 多线程的优势 349
 12.2 线程的创建和启动 349
 12.2.1 继承Thread类创建线程类 350
 12.2.2 实现Runnable接口创建线程类 351
 12.2.3 使用Callable和Future创建线程 352
 12.2.4 创建线程的三种方式对比 354
 12.3 线程的生命周期 354
 12.3.1 新建和就绪状态 354
 12.3.2 运行和阻塞状态 356
 12.3.3 线程死亡 357
 12.4 控制线程 358
 12.4.1 join线程 358
 12.4.2 后台线程 359
 12.4.3 线程睡眠:sleep 360
 12.4.4 线程让步:yield 360
 12.4.5 改变线程优先级 362
 12.5 线程同步 363
 12.5.1 线程安全问题 363
 12.5.2 同步代码块 365
 12.5.3 同步方法 366
 12.5.4 释放同步监视器的锁定 368
 12.5.5 同步锁(Lock) 369
 12.5.6 死锁 371
 12.6 线程通信 372
 12.6.1 传统的线程通信 372
 12.6.2 使用Condition控制线程通信 376
 12.6.3 使用阻塞队列(BlockingQueue)控制线程通信 378
 12.7 线程池 380
 12.7.1 Java 8改进的线程池 381
 12.7.2 Java 8增强的ForkJoinPool 382
 12.8 线程相关类 386
 12.8.1 ThreadLocal类 386
 12.8.2 包装线程不安全的集合 387
 12.8.3 线程安全的集合类 388
 12.9 本章小结 389
 本章练习 389
 第13章 网络编程 390
 13.1 网络编程的基础知识 391
 13.1.1 网络基础知识 391
 13.1.2 IP地址和端口号 392
 13.2 Java的基本网络支持 393
 13.2.1 使用InetAddress 393
 13.2.2 使用URLDecoder和URLEncoder 393
 13.2.3 URL、URLConnection和URLPermission 395
 13.3 基于TCP协议的网络编程 401
 13.3.1 TCP协议基础 401
 13.3.2 使用ServerSocket创建TCP服务器端 401
 13.3.3 使用Socket进行通信 402
 13.3.4 加入多线程 404
 13.3.5 记录用户信息 407
 13.3.6 半关闭的Socket 414
 13.3.7 使用NIO实现非阻塞Socket通信 415
 13.3.8 使用AIO实现非阻塞通信 420
 上面程序中好像没用到④⑤号代码的get()方法的返回值,这两个地方不调用get()方法行吗? 424
 13.4 使用代理服务器 427
 13.4.1 直接使用Proxy创建连接 427
 13.4.2 使用ProxySelector自动选择代理服务器 428
 13.5 本章小结 431
 本章练习 431
 · · · · · · 

下载链接

0条评论
添加一条新回复

最热下载

  • JavaEE开发的颠覆者:Spring Boot实战

    ``` 在当今Java EE 开发中,Spring 框架是当之无愧的王者。而Spring Boot 是Spring 主推的基于“习惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Java EE 开发变得异常简单。 《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 当你学完《JavaEE开发的颠覆者: Spring Boot实战》后,你将能使用Spring Boot 解决Java EE 开发中所遇到的绝大多数问题。 ```

  • Kafka并不难学

    ``` 《Kafka并不难学!入门、进阶、商业实战》基于Kafka 0.10.2.0以上版本,采用“理论+实践”的形式编写。全书共68个实例。 《Kafka并不难学!入门、进阶、商业实战》共分为4篇:第1篇,介绍了消息队列和Kafka、安装与配置Kafka环境;第2篇,介绍了Kafka的基础操作、生产者和消费者、存储及管理数据;第3篇,介绍了更高级的Kafka知识及应用,包括安全机制、连接器、流处理、监控与测试;第4篇,是对前面知识的综合及实际应用,包括ELK套件整合实战、Spark实时计算引擎整合实战、Kafka Eagle监控系统设计与实现实战。 《Kafka并不难学!入门、进阶、商业实战》的每章都配有同步教学视频(共计155分钟)。视频和图书具有相同的结构,能帮助读者快速而全面地了解每章的内容。本书还免费提供所有案例的源代码。这些代码不仅能方便读者学习... (展开全部) 《Kafka并不难学!入门、进阶、商业实战》基于Kafka 0.10.2.0以上版本,采用“理论+实践”的形式编写。全书共68个实例。 《Kafka并不难学!入门、进阶、商业实战》共分为4篇:第1篇,介绍了消息队列和Kafka、安装与配置Kafka环境;第2篇,介绍了Kafka的基础操作、生产者和消费者、存储及管理数据;第3篇,介绍了更高级的Kafka知识及应用,包括安全机制、连接器、流处理、监控与测试;第4篇,是对前面知识的综合及实际应用,包括ELK套件整合实战、Spark实时计算引擎整合实战、Kafka Eagle监控系统设计与实现实战。 《Kafka并不难学!入门、进阶、商业实战》的每章都配有同步教学视频(共计155分钟)。视频和图书具有相同的结构,能帮助读者快速而全面地了解每章的内容。本书还免费提供所有案例的源代码。这些代码不仅能方便读者学习,也能为以后的工作提供便利。 《Kafka并不难学!入门、进阶、商业实战》结构清晰、案例丰富、通俗易懂、实用性强。特别适合Kafka系统的初学者和进阶读者作为自学教程。另外,本书也适合社会培训学校作为培训教材,还适合大中专院校的相关专业作为教学参考书。 邓杰 资深大数据全栈开发者,极客学院讲师,开源爱好者,博客园博主。 开发了Kafka系统监控管理工具——Kafka Eagle,将其发布在Github上,深受业界开发者赞誉。 作为极客学院特邀讲师期间,制作了多个技术视频,讲授Hadoop技术、Kafka技术等课程,广受学员好评。 ```

  • Spring Boot 2精髓

    ``` Spring Boot是目前Spring技术体系中炙手可热的框架之一,既可用于构建业务复杂的企业应用系统,也可以开发高性能和高吞吐量的互联网应用。Spring Boot框架降低了Spring技术体系的使用门槛,简化了Spring应用的搭建和开发过程,提供了流行的第三方开源技术的自动集成。 本书系统介绍了Spring Boot 2的主要技术,侧重于两个方面,一方面是极速开发一个Web应用系统,详细介绍Spring Boot框架、Spring MVC、视图技术、数据库访问技术,并且介绍多环境部署、自动装配、单元测试等高级特性;另一方面,当系统模块增加,性能和吞吐量要求增加时,如何平滑地用Spring Boot实现分布式架构,也会在本书后半部分介绍,包括使用Spring实现RESTful架构,在Spring Boot框架下使用Redis、MongoDB、Z... (展开全部) Spring Boot是目前Spring技术体系中炙手可热的框架之一,既可用于构建业务复杂的企业应用系统,也可以开发高性能和高吞吐量的互联网应用。Spring Boot框架降低了Spring技术体系的使用门槛,简化了Spring应用的搭建和开发过程,提供了流行的第三方开源技术的自动集成。 本书系统介绍了Spring Boot 2的主要技术,侧重于两个方面,一方面是极速开发一个Web应用系统,详细介绍Spring Boot框架、Spring MVC、视图技术、数据库访问技术,并且介绍多环境部署、自动装配、单元测试等高级特性;另一方面,当系统模块增加,性能和吞吐量要求增加时,如何平滑地用Spring Boot实现分布式架构,也会在本书后半部分介绍,包括使用Spring实现RESTful架构,在Spring Boot框架下使用Redis、MongoDB、ZooKeeper、Elasticsearch等流行技术,使用Spring Session实现系统水平扩展,使用Spring Cache提高系统性能。 ```

  • Spring Boot实战

    ``` 本书以Spring应用程序开发为中心,全面讲解如何运用Spring Boot提高效率,使应用程序的开发和管理更加轻松有趣。作者行文亲切流畅,以大量示例讲解了Spring Boot在各类情境中的应用,内容涵盖起步依赖、Spring Boot CLI、Groovy、Grails、Actuator。对于Spring Boot开发应用中较为繁琐的内容,附录奉上整理完毕的表格,一目了然,方便读者查阅。 Craig Walls Pivotal高级工程师,Spring Social及Spring Sync项目领导者,著名技术博主,畅销书《Spring实战》作者。他致力于推广Spring框架,笔耕不辍,亦时常作为演讲嘉宾出席各类相关会议。 译者简介: 丁雪丰  资深开发及运维工程师,活跃的技术图书译者,致力于推动优秀技术在国内的发展,出版了《Spring攻略》《MongoDB实战》《RESTful Web Service Cookbook中文版》等6部译著。 ```

  • C Primer Plus(第6版)

    ``` 《C Primer Plus(第6版)中文版》详细讲解了C语言的基本概念和编程技巧。 《C Primer Plus(第6版)中文版》共17章。第1、2章介绍了C语言编程的预备知识。第3~15章详细讲解了C语言的相关知识,包括数据类型、格式化输入/输出、运算符、表达式、语句、循环、字符输入和输出、函数、数组和指针、字符和字符串函数、内存管理、文件输入输出、结构、位操作等。第16章、17章介绍C预处理器、C库和高级数据表示。本书以完整的程序为例,讲解C语言的知识要点和注意事项。每章末设计了大量复习题和编程练习,帮助读者巩固所学知识和提高实际编程能力。附录给出了各章复习题的参考答案和丰富的参考资料。 《C Primer Plus(第6版)中文版》可作为C语言的教材,适用于需要系统学习C语言的初学者,也适用于巩固C语言知识或希望进一步提高编程技术的程序员。 Stephen Prata曾在加利福尼亚的马林学院(肯特菲尔德)教授天文学、物理学和程序设计课程,现已退休。他在加州理工学院获得学士学位,在加州大学伯克利分校获得博士学位。他接触程序设计,是为了利用计算机给星团建模。Stephen撰写和与他人合著了十几本书籍,其中包括C++ Primer Plus和Unix Primer Plus。 ```

  • 循序渐进Linux 第2版

    ``` 循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》从基础知识入手,系统讲解了Linux系统结构、shell、主流服务器搭建及故障排除、用户权限管理、磁盘存储管理、文件系统管理、内存管理和系统进程管理等关键技术,深入研究了系统性能优化思路、系统性能评估与优化、集群技术、负载均衡等Linux热点主题。 《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》强调学习方法以及技术能力的培养,在每个知识点后都给出了大量操作案例,包括了详细的操作步骤,具有很强的可操作性,并对案例进行分析,提供了解决问题的思路和方法,做到了授人以渔。 《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》适合希望系统、全面学习Linux技术的初学者作为教材,也适合L... (展开全部) 循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》从基础知识入手,系统讲解了Linux系统结构、shell、主流服务器搭建及故障排除、用户权限管理、磁盘存储管理、文件系统管理、内存管理和系统进程管理等关键技术,深入研究了系统性能优化思路、系统性能评估与优化、集群技术、负载均衡等Linux热点主题。 《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》强调学习方法以及技术能力的培养,在每个知识点后都给出了大量操作案例,包括了详细的操作步骤,具有很强的可操作性,并对案例进行分析,提供了解决问题的思路和方法,做到了授人以渔。 《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》适合希望系统、全面学习Linux技术的初学者作为教材,也适合Linux系统管理员、数据库管理人员、网络安全管理人员、系统集成人员和系统架构师参考。 高俊峰,网名南非蚂蚁,Linux专家,知名IT作家。毕业于西安电子科技大学通信工程专业。曾就职于新浪网、阿里云(原万网),任职系统架构师。具有多年的自动化运维和管理经验,擅长Linux、集群应用、Mysql、Oracle等方面的系统管理、性能调优,规划设计,实战经验丰富。曾出版《循序渐进Linux》、《高性能Linux服务器构建实战》等畅销Linux书籍。 ```

  • 只是为了好玩:Linux之父林纳斯自传

    ``` 本书是Linux之父Linus Torvalds的自传。 Linux之父Linus Torvalds的自传,也是Linus唯一一本书。Linus以调侃的语气讲述了自己的成长经历,在他看来,一切都是为了好玩儿,兴趣引发革命。书中内容共分为五章,一部分是Linus自己写的,一部分是合著者David Diamond的评论。 林纳斯•托瓦兹 当今世界最著名的程序员、黑客,开源操作系统Linux之父。生于芬兰,毕业于赫尔辛基大学,1997年~2003年任职于美国加州硅谷的全美达公司,现受聘于开放源代码开发实验室,全力开发Linux内核。2004年,他被《时代周刊》评为世界最有影响力的人之一。 大卫•戴蒙 职业撰稿人,曾为《纽约时报》《连线》《美国周末》及许多刊物供稿。 林纳斯•托瓦兹 当今世界最著名的程序员、黑客,开源操作系统Linux之父。生于芬兰,毕业于赫尔辛基大学,1997年~2003年任职于美国加州硅谷的全美达公司,现受聘于开放源代码开发实验室,全力开发Linux内核。2004年,他被《时代周刊》评为世界最有影响力的人之一。 大卫•戴蒙 职业撰稿人,曾为《纽约时报》《连线》《美国周末》及许多刊物供稿。 译者简介: 陈少芸 出生时经医生证实为80后晚期,毕业于广东财经大学。做事情常出于“我不懂所以我想知道”的好奇心,在笔译学界颇负“陈少芸是谁啊没听说过”的盛名。 ```

  • Vue.js实战

    ``` 本书以Vue.js 2为基础,以项目实战的方式来引导读者渐进式学习Vue.js。本书分为基础篇、进阶篇和实战篇三部分。基础篇主要是对 Vue.js 核心功能的介绍;进阶篇主要讲解前端工程化Vue.js的组件化、插件的使用;实战篇着重开发了两个完整的示例,所涉及的内容涵盖Vue.js绝大部分API。通过阅读本书,读者能够掌握Vue.js框架主要API的使用方法、自定义指令、组件开发、单文件组件、Render函数、使用webpack开发可复用的单页面富应用等。 本书示例丰富、侧重实战,适用于刚接触或即将接触Vue.js的开发者,也适用于对Vue.js有过开发经验,但需要进一步提升的开发者。 梁灏,网名 Aresn,基于 Vue.js 的开源 UI 组件库 iView 的作者。目前在大数据公司 TalkingData 负责可视化基础架构。创办了程序员社区 TalkingCoder。 ```

  • 剑指Offer

    ``` 《剑指Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程,讨论面试流程中每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结了程序员面试的知识点;高质量的代码,讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量的代码除了能够完成基本的功能之外,还能考虑到特殊情况并对非法输入进行合理的处理;解决面试题的思路,总结在编程面试中解决难题的常用思路,如果在面试过程中遇到了复杂的难题,应聘者可以利用画图、举例和分解复杂问题3种方法化繁为简,先形成清晰的思路再动手编程;优化时间和空间效率,介绍如何优化代码的时间效率和空间效率,读完这一章读者将学会常用的优化时间效率及空间换时间的常用算... (展开全部) 《剑指Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程,讨论面试流程中每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结了程序员面试的知识点;高质量的代码,讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量的代码除了能够完成基本的功能之外,还能考虑到特殊情况并对非法输入进行合理的处理;解决面试题的思路,总结在编程面试中解决难题的常用思路,如果在面试过程中遇到了复杂的难题,应聘者可以利用画图、举例和分解复杂问题3种方法化繁为简,先形成清晰的思路再动手编程;优化时间和空间效率,介绍如何优化代码的时间效率和空间效率,读完这一章读者将学会常用的优化时间效率及空间换时间的常用算法,从而在面试中找到最优的解法;面试中的各种能力,本章总结应聘者在面试过程中如何表现学习能力和沟通能力,并通过具体的面试题讨论如何培养知识迁移能力、抽象建模能力和发散思维能力;两个面试案例,这两个案例总结了应聘者在面试过程中哪些举动是不好的行为,而哪些表现又是面试官所期待的行为。 何海涛,现思科高级软件工程师,曾先后就职于Autodesk和微软。分别于2003年和2006年于浙江大学获得计算机专业学士和硕士学位。主要关注程序员求职应聘领域、以及软件设计、开发和调试技术。著有《剑指Offer——名企面试官精讲典型编程题》一书。 ```

  • Linux设备驱动程序 第3版

    ``` 本书揭示了如何给大多数的设备编写驱动程序的信息,这些信息迄今仅通过口头或者隐晦的源代码注释被共享。你不必是一个内核高手就可以理解并享受本书,所需要的只是C以及Unix系统调用方面的背景知识。在不需要特殊的硬件设备就能编译和运行的详细示例的指引下,你将学会如何给字符设备、块设备和网络接口编写驱动程序。PCI、USB和tty(终端)子系统都单列一章。本书为那些对操作系统的工作机制好奇的人提供了地址空间、异步事件和I/O等方面的阐述。 Jonahan Corbet早在1981年就开始接触BSD Unix的源代码。那时,科罗拉多大学的一名讲师让他“修正”其中的分页算法。从那时起直到现在。他深入研究了他所遇到的每一个系统,其中包括VAX、Sun、Arden以及x86系统的驱动程序。他在1993年第一次接触Linux系统,从此以后一直从事Linux的开发。Corbet先生是《Linux Weekly News》的创始人和执行主编。他和妻子及两个孩子生活在科罗多州的玻尔得市。 ```

  • 企业IT架构转型之道:阿里巴巴中台战略思想与架构实战

    ``` 在当今整个中国社会都处于互联网转型的浪潮中,不管是政府职能单位、业务规模庞大的央企,还是面临最激烈竞争的零售行业都处于一个重要的转折点,这个转折对企业业务模式带来了冲击,当然也给企业的信息中心部门带来了挑战:如何构建IT系统架构更好地满足互联网时代下企业业务发展的需要。阿里巴巴的共享服务理念以及企业级互联网架构建设的思路,给这些企业带来了不少新的思路,这也是我最终决定写这本书的最主要原因。本书从阿里巴巴启动中台战略说起,详细阐述了共享服务理念给企业业务发展带来的业务价值。接着会分享阿里巴巴在建设共享服务体系时如何进行技术框架的选择,哪些重要的技术平台支撑起了共享服务体系,这也是迄今为止对阿里巴巴集团中间件体系对外最全面系统的介绍。除了技术层面之外,本书还分享了阿里巴巴内部的一些经验和实践,如组织的架构和体制如何更好地支持共享服务体系的持续发展。 钟华(花名:古谦)阿里巴巴中间件首席架构师,15年中间件领域行业经验。对传统企业IT建设和互联网架构都有较为深入的理解,有着扎实的理论基础和丰富的实战经验,多次作为总架构师协助大型传统企业打造业务中台项目,为企业实现“互联网+”转型提供了科学的发展方向和强有力的技术支持,项目涉及政府、制造业、金融、交通、媒体等多个领域。 ```

  • Python金融实战

    Python凭借其简单、易读、可扩展性以及拥有巨大而活跃的科学计算社区,在需要数据分析和处理大量数据的金融领域得到了广泛而迅速的应用,并且成为越来越多专业人士最佳的编程语言之一。