资源搜
资源搜
👀 联系夏柔
🔥 投稿源码
资源搜

资源搜

  • 全部
  • 123盘
  • 阿里盘
  • 百度云
  • 迅雷
  • 夸克
  • 115
  • 蓝奏云
  • 其他
已收录34127条资源,仅供学习交流,请在24h内删除资源!

Java并发编程设计原则与模式_第二版 PDF

资源名称:Java并发编程设计原则与模式_第二版 PDF 内容简介: 本书全面介绍了如何使用Java 2平台进行并发编程,较上一版新增和扩展的内容包括: ·存储模型 ·取消 ·可移植的并行编程 ·实现并发控制的工具类 Java平台提供了一套广泛而功能强大的api,工具和技术。内建支持线程是它的一个强大的功能。这一功能为使用Java编程语言的程序员提供了解并发编程这一诱人但同时也非常具有挑战性的选择。 本书通过帮助读者理解有关并发编程的模式及其利弊,向读者展示了如何更精确地使用Java平台的线程模型。 这里,读者将通过使用java.lang.thread类、synchronized和volatile关键字,以及wait、notify和notifyall方法,学习如何初始化、控制和协调并发操作。此外,本书还提供了有关并发编程的全方位的详细内容,例如限制和同步、死锁和冲突、依赖于状态的操作控制、异步消息传递和控制流、协作交互,以及如何创建基于web的服务和计算型服务。 本书的读者对象是那些希望掌握并发编程的中高级程序员。从设计模式的角度,本书提供了标准的设计技巧,以创建和实现用来解决一般性并发编程问题的组件。贯串全书的大量示例代码详细地阐述了在讨论中所涉及到的并发编程理念的细微之处。 资源截图:
陌佑
百度云
百度云

RabbitMQ实战指南 PDF

资源名称:RabbitMQ实战指南 PDF  内容简介: 《RabbitMQ实战指南》从消息中间件的概念和RabbitMQ的历史切入,主要阐述RabbitMQ的安装、使用、配置、管理、运维、原理、扩展等方面的细节。《RabbitMQ实战指南》大致可以分为基础篇、进阶篇和高阶篇三个部分。基础篇首先介绍RabbitMQ的基本安装及使用方式,方便零基础的读者以最舒适的方式融入到RabbitMQ之中。其次介绍RabbitMQ的基本概念,包括生产者、消费者、交换器、队列、绑定等。之后通过Java语言讲述了客户端如何与RabbitMQ建立(关闭)连接、声明(删除)交换器、队列、绑定关系,以及如何发送和消费消息等。进阶篇讲述RabbitMQ的TTL、死信、延迟队列、优先级队列、RPC、消息持久化、生产端和消费端的消息确认机制等内容,以期读者能够掌握RabbitMQ的使用精髓。《RabbitMQ实战指南》中间篇幅主要从RabbitMQ的管理、配置、运维这三个角度来为读者提供帮助文档及解决问题的思路。高阶篇主要阐述RabbitMQ的存储机制、流控及镜像队列的原理,深入地讲述RabbitMQ的一些实现细节,便于读者加深对RabbitMQ的理解。《RabbitMQ实战指南》还涉及网络分区的概念,此内容可称为魔鬼篇,需要掌握前面的所有内容才可理解其中的门道。《RabbitMQ实战指南》最后讲述的是RabbitMQ的一些扩展内容及附录,供读者参考之用。 作者简介: 计算机硕士毕业,在互联网公司担任高级开发工程师,从事消息中间件的研究及开发,主要包括RabbitMQ和Kafka。 资源目录: 第1章 RabbitMQ简介 1.1 什么是消息中间件 1.2 消息中间件的作用 1.3 RabbitMQ的起源 1.4 RabbitMQ的安装及简单使用 1.4.1 安装Erlang 1.4.2 RabbitMQ的安装 1.4.3 RabbitMQ的运行 1.4.4 生产和消费消息 1.5 小结 第2章 RabbitMQ入门 2.1 相关概念介绍 2.1.1 生产者和消费者 2.1.2 队列 2.1.3 交换器、路由键、绑定 2.1.4 交换器类型 2.1.5 RabbitMQ运转流程 2.2 AMQP协议介绍 2.2.1 AMQP生产者流转过程 2.2.2 AMQP消费者流转过程 2.2.3 AMQP命令概览 2.3 小结 第3章 客户端开发向导 3.1 连接RabbitMQ 3.2 使用交换器和队列 3.2.1 exchangeDeclare方法详解 3.2.2 queueDeclare方法详解 3.2.3 queueBind方法详解 3.2.4 exchangeBind方法详解 3.2.5 何时创建 3.3 发送消息 3.4 消费消息 3.4.1 推模式 3.4.2 拉模式 3.5 消费端的确认与拒绝 3.6 关闭连接 3.7 小结 第4章 RabbitMQ进阶 4.1 消息何去何从 4.1.1 mandatory参数 4.1.2 immediate参数 4.1.3 备份交换器 4.2 过期时间(TTL) 4.2.1 设置消息的TTL 4.2.2 设置队列的TTL 4.3 死信队列 4.4 延迟队列 4.5 优先级队列 4.6 RPC实现 4.7 持久化 4.8 生产者确认 4.8.1 事务机制 4.8.2 发送方确认机制 4.9 消费端要点介绍 4.9.1 消息分发 4.9.2 消息顺序性 4.9.3 弃用QueueingConsumer 4.10 消息传输保障 4.11 小结 第5章 RabbitMQ管理 5.1 多租户与权限 5.2 用户管理 5.3 Web端管理 5.4 应用与集群管理 5.4.1 应用管理 5.4.2 集群管理 5.5 服务端状态 5.6 HTTP API接口管理 5.7 小结 第6章 RabbitMQ配置 6.1 环境变量 6.2 配置文件 6.2.1 配置项 6.2.2 配置加密 6.2.3 优化网络配置 6.3 参数及策略 6.4 小结 第7章 RabbitMQ运维 7.1 集群搭建 7.1.1 多机多节点配置 7.1.2 集群节点类型 7.1.3 剔除单个节点 7.1.4 集群节点的升级 7.1.5 单机多节点配置 7.2 查看服务日志 7.3 单节点故障恢复 7.4 集群迁移 7.4.1 元数据重建 7.4.2 数据迁移和客户端连接的切换 7.4.3 自动化迁移 7.5 集群监控 7.5.1 通过HTTP API接口提供监控数据 7.5.2 通过客户端提供监控数据 7.5.3 检测RabbitMQ服务是否健康 7.5.4 元数据管理与监控 7.6 小结 第8章 跨越集群的界限 8.1 Federation 8.1.1 联邦交换器 8.1.2 联邦队列 8.1.3 Federation的使用 8.2 Shovel 8.2.1 Shovel的原理 8.2.2 Shovel的使用 8.2.3 案例:消息堆积的治理 8.3 小结 第9章 RabbitMQ高阶 9.1 存储机制 9.1.1 队列的结构 9.1.2 惰性队列 9.2 内存及磁盘告警 9.2.1 内存告警 9.2.2 磁盘告警 9.3 流控 9.3.1 流控的原理 9.3.2 案例:打破队列的瓶颈 9.4 镜像队列 9.5 小结 第10章 网络分区 10.1 网络分区的意义 10.2 网络分区的判定 10.3 网络分区的模拟 10.4 网络分区的影响 10.4.1 未配置镜像 10.4.2 已配置镜像 10.5 手动处理网络分区 10.6 自动处理网络分区 10.6.1 pause-minority模式 10.6.2 pause-if-all-down模式 10.6.3 autoheal模式 10.6.4 挑选哪种模式 10.7 案例:多分区情形 10.8 小结 第11章 RabbitMQ扩展 11.1 消息追踪 11.1.1 Firehose 11.1.2 rabbitmq_tracing插件 11.1.3 案例:可靠性检测 11.2 负载均衡 11.2.1 客户端内部实现负载均衡 11.2.2 使用HAProxy实现负载均衡 11.2.3 使用Keepalived实现高可靠负载均衡 11.2.4 使用Keepalived+LVS实现负载均衡 11.3 小结 附录A 集群元数据信息示例 附录B /api/nodes接口详细内容 附录C 网络分区图谱 资源截图:
陌佑
百度云
百度云

Java8基础应用与开发

资源名称:Java8基础应用与开发 内容简介: 本书深入介绍了Java基础编程的相关方面,内容涵盖Java概述、Java语言基础、面向对象基础、Java常用的核心类、类之间的关系、接口、抽象类、异常、泛型与集合。书中所有代码都是基于Java 8环境下调试运行的,并对Java 8的一些新特性进行了全面介绍。 本书由浅入深对Java SE技术进行了系统讲解,并且重点突出、强调动手操作能力,以一个项目贯穿所有章节的任务实现,使得读者能够快速理解并掌握各项重点知识,全面提高分析问题、解决问题以及编码的能力。 本书适用面广,可作为高校、培训机构的Java教材,适用于计算机科学与技术、软件外包、计算机软件、计算机网络、电子商务等专业的程序设计课程的教材。 本书适合各种层次的Java学习者和工作者阅读。 资源截图:
陌佑
百度云
百度云

疯狂JAVA讲义精粹(第2版)PDF

资源名称:疯狂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 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基础类库 第7章 Java集合 第8章 泛型 第10章 Annotation(注解) 第11章 输入/输出 第12章 多线程 本章练习 第13章 网络编程 本章练习 资源截图:
陌佑
百度云
百度云

Java工程师修炼之道 PDF

资源名称:Java工程师修炼之道 PDF  内容简介: Java 开发一直是当前互联网领域最火热的开发技能之一,Java 工程师也一直是需求量非常大的开发职位。本书主要针对一名合格的Java 工程师的必备技能做了大纲性的总结和阐述。本书内容包括了工程化、常用开发框架、数据存储、数据传输、Java 编程高级知识、性能优化、安全技术等内容,基本涵盖了Java 工程师需要掌握的绝大部分技能点。 《Java工程师修炼之道》可以看作一本Java 工程师的入职指南,也可以看作一本串联Java 后端技能点的参考手册。通过精心编排的内容,刚入门的Java 工程师能够体系化地学习相关开发技能,有经验的Java 工程师能够查漏补缺,巩固自己的相关开发技能,进一步完善自身的Java 技术体系。 作者简介: 杭建,重度Java使用者,具有近10年的Java后端开发经验,一直专注于Java EE、系统架构、大数据等后端技术。现任随身云(中华万年历)技术总监,负责公司的技术培训、系统架构、研发管理等工作,带领研发团队完成了大数据平台、推荐系统、广告平台、传媒平台等系统,以及分布式调度、应用性能监测等基础框架的开发,支撑起了中华万年历、微历、牛哔的对话等高达三亿多用户访问量的应用。作者之前曾就职于网易杭州研究院从事基础平台、云计算相关技术的开发工作,参与了易信公众平台、网易云计算动态负载均衡等项目的研发。 资源目录: 第1章 后端技术导言 1.1后端基础设施 1.1.1 请求统一入口——API网关 1.1.2 业务应用和后端基础框架 1.1.3 缓存、数据库、搜索引擎、消息队列 1.1.4 文件存储 1.1.5 统一认证中心 1.1.6 单点登录系统 1.1.7 统一配置中心 1.1.8 服务治理框架 1.1.9 统一调度中心 1.1.10 统一日志服务 1.1.11 数据基础设施 1.1.12 故障监控 1.2 Java后端技术概览 1.2.1 软件开发的核心原则 1.2.2 软件开发的软件过程 1.2.3 日常开发常用工具 1.2.4 应用的运行环境 1.2.5 常用第三方服务 1.2.6 计算机基础科学知识 1.2.7 数据处理相关技能 1.2.8 Java编程知识 1.2.9 系统架构演化 1.2.10 典型的部署架构 1.3 如何学习后端技术 1.3.1 扎实的计算机基础知识 1.3.2 知其然更要知其所以然 1.3.3 动手实践 1.3.4 频繁练习 1.3.5 持续学习 1.3.6 自我总结 1.3.7 如何学习一门新技术 1.3.8 总结 第2章 Java项目与工程化 2.1 项目构建 2.1.1 传统构建工具——Ant 2.1.2 主流构建工具——Maven 2.1.3 新兴构建工具——Gradle 2.2 代码版本控制 2.2.1 集中式代码版本管理——SVN 2.2.2 分布式代码版本管理——Git 2.2.3 提交日志的规范 2.3 代码质量保证 2.3.1 使用单元测试保证代码质量 2.3.2 衡量单元测试的标准 2.3.3 开发规范与建议 第3章 开发框架 3.1 依赖注入 3.1.1 JSR-330依赖注入规范 3.1.2 Guice 3.1.3 PicoContainer 3.1.4 Dagger 3.1.5 Spring Framework 3.1.6 循环依赖问题 3.2 对象关系映射 3.2.1 表元数据的映射 3.2.2 CRUD以及属性的查询 3.2.3 查询缓存的使用 3.2.4 结果的映射 3.2.5 规范SQL书写的语句构建器 3.2.6 使用提示 3.3 日志 3.3.1 JDK Logging 3.3.2 Log4j 3.3.3 Log4j2 3.3.4 Logback 3.3.5 统一日志API的门面框架 3.3.6 统一日志框架的使用 3.4 Web MVC 3.4.1 为什么是Spring MVC 3.4.2 Spring MVC的请求处理流程 3.4.3 典型的配置方式 3.4.4 无XML的配置方式 3.4.5 对MVC应用做单元测试 3.4.6 验证Web请求的参数 3.4.7 使用异步Servlet 3.4.8 使用提示 第4章 Spring 4.1 Spring核心组件 4.1.1 Spring的双亲上下文机制 4.1.2 Spring中的事件机制 4.1.3 Bean的初始化和销毁 4.1.4 Bean的动态构造 4.1.5 注入集合、枚举、类的静态字段 4.1.6 面向方面编程——AOP 4.1.7 进阶XML的配置 4.1.8 无XML的配置方式 4.2 Spring数据操作框架 4.2.1 Spring JDBC 4.2.2 Spring Data Redis 4.2.3 Spring Data MongoDB 4.3 Spring Boot 4.3.1 Spring Boot使用示例 4.3.2 Spring Boot的运行原理 4.3.3 Spring Boot的组成模块 4.3.4 小结 4.4 Spring常用组件 4.4.1 表达式引擎——Spring Expression Language 4.4.2 远程过程访问的支持——Spring Remoting 4.4.3 Spring与JMX的集成 4.4.4 定时任务的支持——Spring Quartz 4.4.5 跨域请求的支持——Spring CORS 4.5 总结 第5章 数据存储 5.1 关系型数据库——MySQL 5.1.1 存储引擎 5.1.2 字符集和校对规则 5.1.3 索引的使用 5.1.4 查询缓存的使用 5.1.5 数据同步中的Binlog 5.1.6 事务机制 5.1.7 大表优化 5.1.8 高可用支持 5.1.9 使用提示 5.2 非关系型数据库 5.2.1 KV数据库 5.2.2 文档数据库——MongoDB 5.2.3 列数据库——HBase 5.3 缓存 5.3.1 本地缓存 5.3.2 分布式缓存——Redis 5.3.3 缓存设计的典型方案 5.4 搜索引擎——Elasticsearch 5.4.1 开源全文检索库——Apache Lucene 5.4.2 关键概念 5.4.3 查询的优化 5.4.4 内存的使用优化 5.4.5 开源日志管理方案——ELK 第6章 数据通信 6.1 RESTful架构风格 6.1.1 支持的操作 6.1.2 返回码 6.1.3 资源概念 6.1.4 数据的安全保障 6.1.5 请求的限流 6.1.6 超文本API 6.1.7 编写文档 6.1.8 RESTful API实现 6.2 远程过程调用——RPC 6.2.1 JDK自带的RPC——RMI 6.2.2 Hessian 6.2.3 Thrift 6.2.4 Dubbo 6.2.5 数据的序列化机制 6.2.6 使用提示 6.3 消息中间件 6.3.1 简单消息中间件——ActiveMQ 6.3.2 通用消息中间件——RabbitMQ 6.3.3 日志消息中间件——Kafka 6.3.4 本地消息队列 第7章 Java编程进阶 7.1 Java内存管理 7.1.1 JVM虚拟机内存 7.1.2 垃圾回收理论 7.1.3 常用垃圾回收器 7.2 Java网络编程 7.2.1 常见网络I/O模型 7.2.2 Java网络编程模型 7.3 Java并发编程 7.3.1 并发原理 7.3.2 并发思路 7.3.3 并发工具 7.3.4 并发编程建议 7.4 Java开发利器 7.4.1 Apache工具库——Apache Commons 7.4.2 Google工具库——Guava 7.4.3 最好用的时间库——Joda Time 7.4.4 高效JSON处理库——FastJson 7.4.5 高效Bean映射框架——Orika 7.5 Java新版本的特性 7.5.1 Java 7 7.5.2 Java 8 7.5.3 Java 9 7.6 总结 第8章 性能调优 8.1 调优准备 8.1.1 HotSpot虚拟机体系结构 8.1.2 操作系统的性能调优 8.1.3 系统常用诊断工具 8.1.4 JDK常用诊断工具 8.2 性能分析 8.2.1 CPU分析 8.2.2 内存分析 8.2.3 I/O分析 8.2.4 其他分析工具 8.3 性能调优 8.3.1 CPU调优 8.3.2 内存调优 8.3.3 I/O调优 8.3.4 其他优化建议 8.3.5 JVM参数配置 8.3.6 JVM性能增强 第9章 安全技术 9.1 Java加密 9.1.1 单向加密算法 9.1.2 对称加密算法 9.1.3 非对称加密算法 9.2 安全HTTP——HTTPS 9.2.1 安全协议——SSL/TLS 9.2.2 证书中心——CA 9.2.3 请求交互过程 9.2.4 性能优化 9.3 Web安全 9.3.1 跨站点脚本攻击 9.3.2 跨站点请求伪造 9.3.3 SQL注入攻击 9.3.4 基于约束条件的SQL攻击 9.3.5 分布式拒绝服务攻击——DDOS 9.3.6 会话固定攻击——Session fixation 附录A 代码构建常用命令 附录B Git常用命令 附录C MySQL常用命令 附录D MongoDB常用命令 附录E Java调优常用命令 资源截图:
陌佑
百度云
百度云

java从入门到精通(第4版)

资源名称:java从入门到精通(第4版) 内容简介: 编辑推荐: “软件开发视频大讲堂”丛书系清华社“视频大讲堂”重点大系之一。该大系包括多个子系列,每个子系列的图书在其同品种的图书中销售名列前茅,其中: 4个品种荣获“全行业优秀畅销品种” 1个品种荣获2012年清华大学出版社“专业畅销书”一等奖 绝大多数品种在“全国计算机零售图书排行榜”同品种排行中名列前茅 截至目前该大系累计销售超过130万册 该大系已成为近年来清华社计算机专业基础类零售图书*畅销的品牌之一 内容简介: 本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。 作者简介: 明日科技是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材既注重选取软件开发中的必需、常用内容,又注重内容的易学、方便以及相关知识的拓展,深受读者喜爱。其编写的图书主要有“软件开发视频大讲堂”“软件开发实战1200例”“软件工程师开发大系”等系列。多次荣获“全行业优秀畅销品种”“中国大学出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
陌佑
百度云
百度云

Java高并发编程详解 PDF

资源名称:Java高并发编程详解 PDF  内容简介: 本书共分为四个部分:部分详细地介绍了Java多线程的基本用法和各个API的使用,并且着重介绍了线程与Java虚拟机内存之间的关系。第二部分由线程上下文类加载器方法引入,介绍为什么在线程中要有上下文类加载器的方法函数,从而掌握类在JVM的加载和初始化的整个过程。第三部分主要围绕着volatile关键字展开,在该部分中我们将会了解到现代CPU的架构以及Java的内存模型(JMM)。后一部分,主要站在架构设计的高度看待如何巧妙地开发出真正具备并发能力的系统。 作者简介: 汪文君,汇丰软件(广东)研发中心数据服务中心技术经理、技术专家,目前专注于实时数据data pipeline平台的构建与架构,在加入汇丰软件以前,曾有7年多的移动通信工作经验,以及移动互联网、云计算和B2C电子商务平台的开发架构经验,热衷于技术分享、技术细节锤炼。目前已录制10余套技术视频,在互联网上广泛传播。 资源目录: 推荐序一 推荐序二 推荐序三 推荐序四 前言 第一部分 多线程基础 第1章 快速认识线程 3 1.1 线程的介绍 3 1.2 快速创建并启动一个线程 3 1.2.1 尝试并行运行 4 1.2.2 并发运行交替输出 5 1.2.3 使用Jconsole观察线程 6 1.3 线程的生命周期详解 7 1.3.1 线程的NEW状态 8 1.3.2 线程的RUNNABLE状态 8 1.3.3 线程的 RUNNING状态 8 1.3.4 线程的BLOCKED状态 8 1.3.5 线程的TERMINATED状态 9 1.4 线程的start方法剖析:模板设计模式在Thread中的应用 9 1.4.1 Thread start方法源码分析以及注意事项 9 1.4.2 模板设计模式在Thread中的应用 11 1.4.3 Thread模拟营业大厅叫号机程序 13 1.5 Runnable接口的引入以及策略模式在Thread中的使用 16 1.5.1 Runnable的职责 16 1.5.2 策略模式在Thread中的应用 16 1.5.3 模拟营业大厅叫号机程序 18 1.6 本章总结 19 第2章 深入理解Thread构造函数 20 2.1 线程的命名 20 2.1.1 线程的默认命名 21 2.1.2 命名线程 21 2.1.3 修改线程的名字 22 2.2 线程的父子关系 22 2.3 Thread与ThreadGroup 23 2.4 Thread与Runnable 24 2.5 Thread与JVM虚拟机栈 25 2.5.1 Thread与Stacksize 25 2.5.2 JVM内存结构 27 2.5.3 Thread与虚拟机栈 30 2.6 守护线程 33 2.6.1 什么是守护线程 33 2.6.2 守护线程的作用 34 2.7 本章总结 34 第3章 Thread API的详细介绍 35 3.1 线程sleep 35 3.1.1 sleep方法介绍 35 3.1.2 使用TimeUnit替代Thread.sleep 36 3.2 线程yield 37 3.2.1 yield方法介绍 37 3.2.2 yield和sleep 37 3.3 设置线程的优先级 38 3.3.1 线程优先级介绍 38 3.3.2 线程优先级源码分析 39 3.3.3 关于优先级的一些总结 40 3.4 获取线程ID 40 3.5 获取当前线程 41 3.6 设置线程上下文类加载器 41 3.7 线程interrupt 42 3.7.1 interrupt 42 3.7.2 isInterrupted 43 3.7.3 interrupted 45 3.7.4 interrupt注意事项 46 3.8 线程join 47 3.8.1 线程join方法详解 48 3.8.2 join方法结合实战 50 3.9 如何关闭一个线程 53 3.9.1 正常关闭 54 3.9.2 异常退出 56 3.9.3 进程假死 56 3.10 本章总结 58 第4章 线程安全与数据同步 59 4.1 数据同步 59 4.1.1 数据不一致问题的引入 59 4.1.2 数据不一致问题原因分析 61 4.2 初识 synchronized关键字 62 4.2.1 什么是synchronized 63 4.2.2 synchronized关键字的用法 63 4.3 深入synchronized关键字 65 4.3.1 线程堆栈分析 65 4.3.2 JVM指令分析 67 4.3.3 使用synchronized需要注意的问题 70 4.4 This Monitor和Class Monitor的详细介绍 72 4.4.1 this monitor 72 4.4.2 class monitor 74 4.5 程序死锁的原因以及如何诊断 77 4.5.1 程序死锁 77 4.5.2 程序死锁举例 77 4.5.3 死锁诊断 80 4.6 本章总结 81 第5章 线程间通信 82 5.1 同步阻塞与异步非阻塞 82 5.1.1 同步阻塞消息处理 82 5.1.2 异步非阻塞消息处理 83 5.2 单线程间通信 84 5.2.1 初识wait和notify 84 5.2.2 wait和notify方法详解 87 5.2.3 关于wait和notify的注意事项 89 5.2.4 wait和sleep 90 5.3 多线程间通信 90 5.3.1 生产者消费者 90 5.3.2 线程休息室wait set 93 5.4 自定义显式锁BooleanLock 94 5.4.1 synchronized关键字的缺陷 94 5.4.2 显式锁BooleanLock 95 5.5 本章总结 104 第6章 ThreadGroup详细讲解 105 6.1 ThreadGroup与Thread 105 6.2 创建ThreadGroup 105 6.3 复制Thread数组和ThreadGroup数组 106 6.3.1 复制Thread数组 106 6.3.2 复制ThreadGroup数组 109 6.4 ThreadGroup操作 109 6.4.1 ThreadGroup的基本操作 110 6.4.2 ThreadGroup的interrupt 113 6.4.3 ThreadGroup的destroy 114 6.4.4 守护ThreadGroup 115 6.5 本章总结 116 第7章 Hook线程以及捕获线程执行异常 117 7.1 获取线程运行时异常 117 7.1.1 UncaughtExceptionHandler的介绍 117 7.1.2 UncaughtExceptionHandler实例 118 7.1.3 UncaughtExceptionHandler源码分析 119 7.2 注入钩子线程 121 7.2.1 Hook线程介绍 121 7.2.2 Hook线程实战 122 7.2.3 Hook线程应用场景以及注意事项 124 7.3 本章总结 124 第8章 线程池原理以及自定义线程池 125 8.1 线程池原理 125 8.2 线程池实现 126 8.2.1 线程池接口定义 127 8.2.2 线程池详细实现 131 8.3 线程池的应用 139 8.4 本章总结 142 第二部分 Java ClassLoader 第9章 类的加载过程 144 9.1 类的加载过程简介 144 9.2 类的主动使用和被动使用 145 9.3 类的加载过程详解 148 9.3.1 类的加载阶段 148 9.3.2 类的连接阶段 149 9.3.3 类的初始化阶段 154 9.4 本章总结 156 第10章 JVM类加载器 158 10.1 JVM内置三大类加载器 158 10.1.1 根类加载器介绍 159 10.1.2 扩展类加载器介绍 159 10.1.3 系统类加载器介绍 160 10.2 自定义类加载器 161 10.2.1 自定义类加载器,问候世界 161 10.2.2 双亲委托机制详细介绍 165 10.2.3 破坏双亲委托机制 167 10.2.4 类加载器命名空间、运行时包、类的卸载等 170 10.3 本章总结 175 第11章 线程上下文类加载器 177 11.1 为什么需要线程上下文类加载器 177 11.2 数据库驱动的初始化源码分析 178 11.3 本章总结 180 第三部分 深入理解volatile关键字 第12章 volatile关键字的介绍 182 12.1 初识volatile关键字 182 12.2 机器硬件CPU 184 12.2.1 CPU Cache模型 184 12.2.2 CPU缓存一致性问题 186 12.3 Java内存模型 187 12.4 本章总结 188 第13章 深入volatile关键字 189 13.1 并发编程的三个重要特性 189 13.1.1 原子性 189 13.1.2 可见性 190 13.1.3 有序性 190 13.2 JMM如何保证三大特性 191 13.2.1 JMM与原子性 192 13.2.2 JMM与可见性 193 13.2.3 JMM与有序性 194 13.3 volatile关键字深入解析 195 13.3.1 volatile关键字的语义 195 13.3.2 volatile的原理和实现机制 197 13.3.3 volatile的使用场景 198 13.3.4 volatile和synchronized 199 13.4 本章总结 200 第14章 7种单例设计模式的设计 201 14.1 饿汉式 201 14.2 懒汉式 202 14.3 懒汉式+同步方法 203 14.4 Double-Check 204 14.5 Volatile+Double-Check 206 14.6 Holder方式 206 14.7 枚举方式 207 14.8 本章总结 208 第四部分 多线程设计架构模式 第15章 监控任务的生命周期 212 15.1 场景描述 212 15.2 当观察者模式遇到Thread 212 15.2.1 接口定义 212 15.2.2 ObservableThread实现 215 15.3 本章总结 217 15.3.1 测试运行 217 15.3.2 关键点总结 219 第16章 Single Thread Execution设计模式 220 16.1 机场过安检 220 16.1.1 非线程安全 221 16.1.2 问题分析 223 16.1.3 线程安全 225 16.2 吃面问题 225 16.2.1 吃面引起的死锁 226 16.2.2 解决吃面引起的死锁问题 228 16.2.3 哲学家吃面 229 16.3 本章总结 230 第17章 读写锁分离设计模式 231 17.1 场景描述 231 17.2 读写分离程序设计 232 17.2.1 接口定义 232 17.2.2 程序实现 234 17.3 读写锁的使用 239 17.4 本章总结 242 第18章 不可变对象设计模式 244 18.1 线程安全性 244 18.2 不可变对象的设计 244 18.2.1 非线程安全的累加器 245 18.2.2 方法同步增加线程安全性 247 18.2.3 不可变的累加器对象设计 248 18.3 本章总结 249 第19章 Future设计模式 251 19.1 先给你一张凭据 251 19.2 Future设计模式实现 251 19.2.1 接口定义 252 19.2.2 程序实现 253 19.3 Future的使用以及技巧总结 256 19.4 增强FutureService使其支持回调 257 19.5 本章总结 258 第20章 Guarded Suspension设计模式 259 20.1 什么是Guarded Suspension设计模式 259 20.2 Guarded Suspension的示例 259 20.3 本章总结 261 第21章 线程上下文设计模式 262 21.1 什么是上下文 262 21.2 线程上下文设计 263 21.3 ThreadLocal详解 264 21.3.1 ThreadLocal的使用场景及注意事项 265 21.3.2 ThreadLocal的方法详解及源码分析 265 21.3.3 ThreadLocal的内存泄漏问题分析 270 21.4 使用ThreadLocal设计线程上下文 274 21.5 本章总结 276 第22章 Balking设计模式 277 22.1 什么是Balking设计 277 22.2 Balking模式之文档编辑 278 22.2.1 Document 278 22.2.2 AutoSaveThread 280 22.2.3 DocumentEditThread 281 22.3 本章总结 283 第23章 Latch设计模式 284 23.1 什么是Latch 284 23.2 CountDownLatch程序实现 285 23.2.1 无限等待的Latch 285 23.2.2 有超时设置的Latch 289 23.3 本章总结 291 第24章 Thread-Per-Message设计模式 293 24.1 什么是Thread-Per-Message模式 293 24.2 每个任务一个线程 293 24.3 多用户的网络聊天 296 24.3.1 服务端程序 296 24.3.2 响应客户端连接的Handler 297 24.3.3 聊天程序测试 299 24.4 本章总结 300 第25章 Two Phase Termination设计模式 301 25.1 什么是Two Phase Termination模式 301 25.2 Two Phase Termination的示例 302 25.2.1 线程停止的Two Phase Termination 302 25.2.2 进程关闭的Two Phase Termination 303 25.3 知识扩展 304 25.3.1 Strong Reference及LRUCache 304 25.3.2 Soft Reference及SoftLRUCache 308 25.3.3 Weak Reference 311 25.3.4 Phantom Reference 312 25.4 本章总结 314 第26章 Worker-Thread设计模式 315 26.1 什么是Worker-Thread模式 315 26.2 Worker-Thread模式实现 315 资源截图:
陌佑
百度云
百度云

数据结构与抽象 Java语言描述 第4版 PDF

资源名称:数据结构与抽象 Java语言描述 第4版 PDF  资源目录: 引言 序言 第1章 包 第2章 使用数组实现包 第3章 使用链式数据实现包 第4章 算法的效率 第5章 栈 第6章 栈的实现 第7章 递归 第8章 排序简介 第9章 更快的排序方法 第10章 队列、双端队列和优先队列 第11章 队列、双端队列和优先队列的实现 第12章 线性表 第13章 使用数组实现线性表 第14章 使用链式数据实现线性表 第15章 ADT线性表的迭代器 第16章 有序表 第17章 继承和线性表 第18章 查找 第19章 字典 第20章 字典的实现 第21章 散列简介 第22章 使用散列实现字典 第23章 树 第24章 树的实现 第25章 二叉查找树的实现 第26章 堆的实现 第27章 平衡查找树 第28章 图 第29章 图的实现 资源截图:
陌佑
百度云
百度云

Java 8编程入门官方教程- 第6版

资源名称:Java 8编程入门官方教程- 第6版  作者简介: Herbert Schildt是Java语言的权威,他撰写的程序设计图书大约有30多本,在全世界销售了数百万册,并被翻译成了多种语言。虽然他对计算机的方方面面都很感兴趣,但是主要关注点是计算机语言,包括编译器、解释器和机器人控制语言。他的畅销书有Java: The Complete Reference、Herb Schildt’s Java Programming Cookbook和Swing: A Beginner’s Guide 。 资源目录: 第1章 Java基础 1 1.1 Java的起源 2 1.1.1 Java与C和C++的关系 3 1.1.2 Java与C#的关系 3 1.2 Java对Internet的贡献 4 1.2.1 Java applet 4 1.2.2 安全性 4 1.2.3 可移植性 5 1.3 Java的魔法:字节码 5 1.4 Java的主要术语 6 1.5 面向对象程序设计 7 1.5.1 封装 8 1.5.2 多态性 8 1.5.3 继承 9 1.6 获得Java开发工具包 9 1.7 第一个简单的程序 10 1.7.1 输入程序 10 1.7.2 编译程序 11 1.7.3 逐行分析第一个程序 11 1.8 处理语法错误 13 1.9 第二个简单程序 14 1.10 另一种数据类型 16 1.11 两条控制语句 18 1.11.1 if语句 18 1.11.2 for循环语句 20 1.12 创建代码块 21 1.13 分号和定位 22 1.14 缩进原则 23 1.15 Java关键字 25 1.16 Java标识符 25 1.17 Java类库 26 第2章 数据类型与运算符 29 2.1 数据类型为什么重要 30 2.2 Java的基本类型 30 2.2.1 整数类型 31 2.2.2 浮点型 32 2.2.3 字符型 33 2.2.4 布尔类型 34 2.3 字面值 36 2.3.1 十六进制、八进制和二进制字面值 36 2.3.2 字符转义序列 37 2.3.3 字符串字面值 37 2.4 变量详解 38 2.4.1 初始化变量 39 2.4.2 动态初始化 39 2.5 变量的作用域和生命期 39 2.6 运算符 42 2.7 算术运算符 42 2.8 关系运算符和逻辑运算符 44 2.9 短路逻辑运算符 46 2.10 赋值运算符 47 2.11 速记赋值 47 2.12 赋值中的类型转换 48 2.13 不兼容类型的强制转换 50 2.14 运算符优先级 51 2.15 表达式 53 2.15.1 表达式中的类型转换 53 2.15.2 间距和圆括号 55 第3章 程序控制语句 57 3.1 从键盘输入字符 58 3.2 if语句 59 3.2.1 嵌套if语句 60 3.2.2 if-else-if阶梯状结构 61 3.3 switch语句 62 3.4 for循环 68 3.4.1 for循环的一些变体 69 3.4.2 缺失部分要素的for循环 70 3.4.3 无限循环 71 3.4.4 没有循环体的循环 72 3.4.5 在for循环内部声明循环控制变量 72 3.4.6 增强型for循环 73 3.5 while循环 73 3.6 do-while循环 75 3.7 使用break语句退出循环 79 3.8 将break语句作为一种goto语句使用 81 3.9 使用continue语句 85 3.10 嵌套循环 89 第4章 类、对象和方法 93 4.1 类的基础知识 94 4.1.1 类的基本形式 94 4.1.2 定义类 95 4.2 如何创建对象 98 4.3 引用变量和赋值 98 4.4 方法 99 4.5 从方法返回值 101 4.6 返回值 102 4.7 使用形参 104 4.8 构造函数 112 4.9 带形参的构造函数 113 4.10 深入介绍new运算符 115 4.11 垃圾回收 115 4.12 this关键字 119 第5章 其他数据类型与运算符 123 5.1 数组 124 5.2 多维数组 129 5.3 不规则数组 130 5.3.1 三维或更多维的数组 131 5.3.2 初始化多维数组 131 5.4 另一种声明数组的语法 132 5.5 数组引用赋值 133 5.6 使用length成员 134 5.7 for-each形式的循环 139 5.7.1 迭代多维数组 142 5.7.2 应用增强型for循环 143 5.8 字符串 144 5.8.1 构造字符串 144 5.8.2 操作字符串 145 5.8.3 字符串数组 147 5.8.4 字符串是不可变的 148 5.8.5 使用String控制switch语句 149 5.9 使用命令行实参 150 5.10 位运算符 151 5.10.1 位运算符的与、或、异 或和非 151 5.10.2 移位运算符 155 5.10.3 位运算符的赋值速记符 157 5.11 ?运算符 160 第6章 方法和类详解 163 6.1 控制对类成员的访问 164 6.2 向方法传递对象 169 6.3 返回对象 173 6.4 方法重载 174 6.5 重载构造函数 179 6.6 递归 184 6.7 理解static关键字 186 6.8 嵌套类和内部类 192 6.9 varargs(可变长度实参) 195 6.9.1 varargs基础 195 6.9.2 重载varargs方法 198 6.9.3 varargs和歧义 199 第7章 继承 203 7.1 继承的基础知识 204 7.2 成员访问与继承 207 7.3 构造函数和继承 209 7.4 使用super调用超类构造函数 211 7.5 使用super访问超类成员 215 7.6 创建多级层次结构 218 7.7 何时调用构造函数 221 7.8 超类引用和子类对象 222 7.9 方法重写 227 7.10 重写的方法支持多态性 229 7.11 为何使用重写方法 231 7.12 使用抽象类 235 7.13 使用final 239 7.13.1 使用final防止重写 239 7.13.2 使用final防止继承 239 7.13.3 对数据成员使用final 240 7.14 Object类 241 第8章 包和接口 243 8.1 包 244 8.1.1 定义包 244 8.1.2 寻找包和CLASSPATH 245 8.1.3 一个简短的包示例 245 8.2 包和成员访问 247 8.3 理解被保护的成员 249 8.4 导入包 251 8.5 Java的类库位于包中 252 8.6 接口 253 8.7 实现接口 254 8.8 使用接口引用 257 8.9 接口中的变量 264 8.10 接口能够被扩展 265 8.11 默认接口方法 266 8.11.1 默认方法的基础知识 266 8.11.2 默认方法的实际应用 268 8.11.3 多继承问题 269 8.12 在接口中使用静态方法 270 8.13 有关包和接口的最后思考 271 第9章 异常处理 273 9.1 异常的层次结构 274 9.2 异常处理基础 274 9.2.1 使用关键字try和catch 275 9.2.2 一个简单的异常示例 276 9.3 未捕获异常的结果 277 9.4 使用多个catch语句 280 9.5 捕获子类异常 281 9.6 try代码块可以嵌套 282 9.7 抛出异常 283 9.8 Throwable详解 285 9.9 使用finally 286 9.10 使用throws语句 288 9.11 新增的3种异常功能 289 9.12 Java的内置异常 291 9.13 创建异常子类 293 第10章 使用I/O 299 10.1 Java的I/O基于流 300 10.2 字节流和字符流 300 10.3 字节流类 301 10.4 字符流类 301 10.5 预定义流 302 10.6 使用字节流 302 10.6.1 读取控制台输入 303 10.6.2 写入控制台输出 304 10.7 使用字节流读写文件 305 10.7.1 从文件输入 305 10.7.2 写入文件 309 10.8 自动关闭文件 311 10.9 读写二进制数据 313 10.10 随机访问文件 317 10.11 使用Java字符流 319 10.11.1 使用字符流的控制台输入 320 10.11.2 使用字符流的控制台输出 323 10.12 使用字符流的文件I/O 324 10.12.1 使用FileWriter 324 10.12.2 使用FileReader 325 10.13 使用Java的类型封装器转换数值字符串 326 第11章 多线程程序设计 337 11.1 多线程的基础知识 338 11.2 Thread类和Runnable接口 339 11.3 创建一个线程 339 11.4 创建多个线程 346 11.5 确定线程何时结束 348 11.6 线程的优先级 351 11.7 同步 354 11.8 使用同步方法 354 11.9 同步语句 357 11.10 使用notify( )、wait( )和notifyAll( )的线程通信 360 11.11 线程的挂起、继续执行和停止 365 第12章 枚举、自动装箱、静态导入和注释 371 12.1 枚举 372 12.2 Java语言中的枚举是类类型 374 12.3 values( )和valueOf( )方法 374 12.4 构造函数、方法、实例变量和枚举 376 12.5 枚举继承enum 378 12.6 自动装箱 384 12.7 类型封装器 385 12.8 自动装箱的基础知识 386 12.9 自动装箱和方法 387 12.10 发生在表达式中的自动装箱/自动拆箱 388 12.11 静态导入 390 12.12 注解(元数据) 393 第13章 泛型 397 13.1 泛型的基础知识 398 13.2 一个简单的泛型示例 399 13.2.1 泛型只能用于引用类型 402 13.2.2 泛型类型是否相同基于其类型实参 402 13.2.3 带有两个类型形参的泛型类 402 13.2.4 泛型类的一般形式 404 13.3 约束类型 404 13.4 使用通配符实参 407 13.5 约束通配符 410 13.6 泛型方法 413 13.7 泛型构造函数 415 13.8 泛型接口 416 13.9 原类型和遗留代码 422 13.10 使用菱形运算符进行类型推断 425 13.11 擦除特性 426 13.12 歧义错误 426 13.13 一些泛型限制 427 13.13.1 类型形参不能实例化 427 13.13.2 对静态成员的限制 428 13.13.3 泛型数组限制 428 13.13.4 泛型异常限制 429 13.14 继续学习泛型 429 第14章 lambda表达式和方法引用 431 14.1 lambda表达式简介 432 14.1.1 lambda表达式的基础知识 432 14.1.2 函数式接口 433 14.1.3 几个lambda表达式示例 435 14.2 块lambda表达式 440 14.3 泛型函数式接口 441 14.4 lambda表达式和变量捕获 447 14.5 从 lambda表达式中抛出异常 448 14.6 方法引用 449 14.6.1 静态方法的方法引用 449 14.6.2 实例方法的方法引用 451 14.7 构造函数引用 455 14.8 预定义的函数式接口 457 第15章 applet、事件和其他主题 461 15.1 applet的基础知识 462 15.2 applet的组织和基本构件 465 15.3 applet架构 465 15.4 完整的applet框架 465 15.5 applet的初始化与终止 467 15.6 请求重绘 467 15.7 使用状态窗口 472 15.8 向applet传递形参 473 15.9 Applet类 474 15.10 事件处理 476 15.11 委派事件模型 476 15.12 事件 476 15.12.1 事件源 476 15.12.2 事件侦听器 477 15.12.3 事件类 477 15.12.4 事件侦听器接口 478 15.13 使用委派事件模型 479 15.13.1 处理鼠标事件和鼠标移动事件 479 15.13.2 一个简单的鼠标事件applet 480 15.14 其他Java关键字 482 15.14.1 transient和volatile修饰符 483 15.14.2 instanceof 483 15.14.3 strictfp 483 15.14.4 assert 483 15.14.5 native方法 484 第16章 Swing介绍 487 16.1 Swing的起源和设计原则 488 16.2 组件和容器 490 16.2.1 组件 490 16.2.2 容器 491 16.2.3 顶级容器窗格 491 16.3 布局管理器 491 16.4 第一个简单的Swing程序 492 16.5 使用JButton 497 16.6 使用JTextField 500 16.7 使用JCheckBox 504 16.8 使用JList 507 15.9 使用匿名内部类或lambda表达式来处理事件 515 16.10 创建Swing applet 517 第17章 JavaFX简介 521 17.1 JavaFX的基本概念 522 17.1.1 JavaFX包 522 17.1.2 Stage和Scene类 523 17.1.3 节点和场景图 523 17.1.4 布局 523 17.1.5 Application类和生命周期方法 523 17.1.6 启动JavaFX应用程序 524 17.2 JavaFX应用程序的骨架 524 17.3 编译和运行JavaFX程序 527 17.4 应用程序线程 527 17.5 使用简单的JavaFX控件Label 528 17.6 使用按钮和事件 530 17.6.1 事件基础 530 17.6.2 按钮控件简介 531 17.6.3 演示事件处理和按钮 531 17.7 其他3个JavaFX控件 534 17.7.1 CheckBox 534 17.7.2 ListView 538 17.7.3 TextField 543 17.8 效果和变换简介 546 17.8.1 效果 546 17.8.2 变换 548 17.8.3 演示效果和变换 549 17.9 进一步学习 552 附录A 自测题答案 555 附录B 使用Java的文档注释 599 资源截图:
陌佑
百度云
百度云

大话JAVA性能优化 PDF

资源名称:大话JAVA性能优化 PDF 内容简介: 《大话Java性能优化》主要提供Java性能调优方面的参考建议及经验交流。作者力求做到知识的综合传播,而不是仅仅只针对Java虚拟机调优进行讲解,另外力求每一章节都有实际的案例支撑。具体包括:性能优化策略、程序编写及硬件服务器的基础知识、Java API优化建议、算法类程序的优化建议、并行计算优化建议、Java程序性能监控及检测、JVM原理知识、其他相关优化知识等。 通读《大话Java性能优化》后,读者可以深入了解Java性能调优的许多主题及相关的综合性知识。读者也可以把《大话Java性能优化》作为参考,对于感兴趣的主题,直接跳到相应章节寻找答案。 总的来说,性能调优在很大程度上是一门艺术,解决的Java性能问题越多,技艺才会越精湛。我们不仅要关心JVM的持续演进,也要积极地去了解底层的硬件平台和操作系统的进步。 作者简介: 周明耀:12年投资银行项目、分布式计算项目工作经验,IBM开发者论坛专家作者;一名IT技术狂热爱好者,一名顽强到底的工程师;推崇技术创新、思维创新,对于新技术非常的热爱,致力于技术研发、研究,通过发布文章、书籍、互动活动的形式积极推广软件技术。 资源目录: 第1章 性能调优策略概述 1 1.1 为什么需要调优 1 1.2 性能优化的参考因素 5 1.2.1 传统计算机体系的分歧 5 1.2.2 导致系统瓶颈的计算资源 7 1.2.3 程序性能衡量指标 8 1.2.4 性能优化目标 9 1.2.5 性能优化策略 10 1.3 性能调优分类方法 11 1.3.1 业务方面 12 1.3.2 基础技术方面 12 1.3.3 组件方面 17 1.3.4 架构方面 19 1.3.5 层次方面 20 1.4 本章小结 21 第2章 优化前的准备知识 22 2.1 服务器知识 23 2.1.1 内存 23 2.1.2 GPU/CPU 44 2.1.3 硬盘 49 2.1.4 网络架构 51 2.2 新兴技术 53 第3章 Java API调用优化建议 54 3.1 面向对象及基础类型 55 3.1.1 采用Clone()方式创建对象 55 3.1.2 避免对boolean判断 55 3.1.3 多用条件操作符 56 3.1.4 静态方法代替实例方法 56 3.1.5 有条件地使用final关键字 58 3.1.6 避免不需要的instanceof操作 58 3.1.7 避免子类中存在父类转换 59 3.1.8 建议多使用局部变量 60 3.1.9 运算效率最高的方式——位运算 60 3.1.10 用一维数组代替二维数组 62 3.1.11 布尔运算代替位运算 64 3.1.12 提取表达式优化 65 3.1.13 不要总是使用取反操作符(!) 66 3.1.14 不要重复初始化变量 66 3.1.15 变量初始化过程思考 66 3.1.16 对象的创建、访问过程 69 3.1.17 在switch语句中使用字符串 70 3.1.18 数值字面量的改进 73 3.1.19 优化变长参数的方法调用 74 3.1.20 针对基本数据类型的优化 75 3.1.21 空变量 76 3.2 集合类概念 77 3.2.1 快速删除List里面的数据 78 3.2.2 集合内部避免返回null 80 3.2.3 ArrayList、LinkedList比较 82 3.2.4 Vector、HashTable比较 85 3.2.5 HashMap使用经验 87 3.2.6 EnumSet、EnumMap 91 3.2.7 HashSet使用经验 92 3.2.8 LinkedHashMap、TreeMap比较 96 3.2.9 集合处理优化新方案 99 3.2.10 优先考虑并行计算 107 3.3 字符串概念 108 3.3.1 String对象 108 3.3.2 善用String对象的SubString方法 111 3.3.3 用charat()代替startswith() 113 3.3.4 在字符串相加的时候,使用' '代替" " 114 3.3.5 字符串切割 114 3.3.6 字符串重编码 117 3.3.7 合并字符串 118 3.3.8 正则表达式不是万能的 122 3.4 引用类型概念 123 3.4.1 强引用(Strong Reference) 126 3.4.2 软引用(Soft Reference) 131 3.4.3 弱引用(Weak Reference) 135 3.4.4 引用队列 141 3.4.5 虚引用(Phantom Reference) 142 3.5 其他相关概念 146 3.5.1 JNI技术提升 146 3.5.2 异常捕获机制 150 3.5.3 ExceptionUtils类 154 3.5.4 循环技巧 155 3.5.5 替换switch 157 3.5.6 优化循环 158 3.5.7 使用arrayCopy() 159 3.5.8 使用Buffer进行I/O操作 161 3.5.9 使用clone()代替new 164 3.5.10 I/O速度 166 3.5.11 Finally方法里面释放或者关闭资源占用 167 3.5.12 资源管理机制 167 3.5.13 牺牲CPU时间 169 3.5.14 对象操作 172 3.5.15 正则表达式 172 3.5.16 压缩文件处理 174 3.6 本章小结 175 第4章 程序设计优化建议 176 4.1 算法优化概述 176 4.1.1 常用算法逻辑描述 177 4.1.2 多核算法优化原理 186 4.1.3 Java算法优化实践 188 4.2 设计模式 196 4.2.1 设计模式的六大准则 196 4.2.2 单一对象控制 200 4.2.3 并行程序设计模式 202 4.2.4 接口适配 205 4.2.5 访问方式隔离 219 4.3 I/O及网络相关优化 225 4.3.1 I/O操作优化 225 4.3.2 Socket编程 231 4.3.3 NIO2.0文件系统 235 4.4 数据应用优化 236 4.4.1 关系型数据库优化 236 4.4.2 向HBase插入大量数据 240 4.4.3 解决海量数据缓存 251 4.5 其他优化 256 4.5.1 Web系统性能优化建议 256 4.5.2 死锁情况解决方案 259 4.5.3 JavaBeans组件 268 4.6 本章小结 269 第5章 Java并行程序优化建议 270 5.1 并行程序优化概述 270 5.1.1 资源限制带来的挑战 271 5.1.2 进程、线程、协程 272 5.1.3 使用多线程的原因 281 5.1.4 线程不安全范例 282 5.1.5 重排序机制 284 5.1.6 实例变量的数据共享 286 5.1.7 生产者与消费者模式 288 5.1.8 线程池的使用 290 5.2 锁机制对比 296 5.2.1 锁机制概述 296 5.2.2 Synchronized使用技巧 298 5.2.3 Volatile的使用技巧 303 5.2.4 队列同步器 304 5.2.5 可重入锁 307 5.2.6 读写锁 308 5.2.7 偏向锁和轻量级锁 309 5.3 增加程序并行性 310 5.3.1 并发计数器 311 5.3.2 减少上下文切换次数 312 5.3.3 针对Thread类的更新 314 5.3.4 Fork/Join框架 314 5.3.5 Executor框架 318 5.4 JDK类库使用 319 5.4.1 原子值 320 5.4.2 并行容器 324 5.4.3 非阻塞队列 332 5.4.4 阻塞队列 338 5.4.5 并发工具类 365 5.5 本章小结 376 第6章 JVM性能测试及监控 377 6.1 监控计算机设备层 378 6.1.1 监控CPU 380 6.1.2 监控内存 405 6.1.3 监控磁盘 417 6.1.4 监控网络 423 6.2 监控JVM活动 428 6.2.1 监控垃圾收集目的 429 6.2.2 GC垃圾回收报告分析 430 6.2.3 图形化工具 431 6.2.4 GC跟踪示例 437 6.3 本章小结 438 第7章 JVM性能调优建议 439 7.1 JVM相关概念 439 7.1.1 内存使用相关概念 440 7.1.2 字节码相关知识 443 7.1.3 自动内存管理 448 7.2 JVM系统架构 451 7.2.1 JVM的基本架构 451 7.2.2 JVM初始化过程 453 7.2.3 JVM架构模型与执行引擎 456 7.2.4 解释器与JIT编译器 456 7.2.5 类加载机制 457 7.2.6 虚拟机 458 7.3 垃圾回收机制相关 459 7.3.1 GC相关概念 459 7.3.2 垃圾回收算法 468 7.3.3 垃圾收集器 476 7.4 实用JVM实验 490 7.4.1 将新对象预留在年轻代 490 7.4.2 大对象进入年老代 494 7.4.3 设置对象进入年老代的年龄 495 7.4.4 稳定与震荡的堆大小 497 7.4.5 吞吐量优先案例 498 7.4.6 使用大页案例 499 7.4.7 降低停顿案例 499 7.4.8 设置最大堆内存 499 7.4.9 设置最小堆内存 500 7.4.10 设置年轻代 503 7.4.11 设置持久代 504 7.4.12 设置线程栈 504 7.4.13 堆的比例分配 505 7.4.14 堆分配参数总结 508 7.4.15 垃圾回收器相关参数总结 509 7.4.16 查询GC命令 515 7.5 本章小结 515 第8章 其他优化建议 516 8.1 Java现有机制及未来发展 516 8.1.1 Java体系结构变化历史 516 8.1.2 Java语言面临的挑战 520 8.1.3 Java8的新特性 522 8.1.4 Java语言前景 523 8.1.5 物联网:Java和你是一对 524 8.1.6 Java模块化发展 525 8.1.7 OpenJDK的发展 527 8.2 系统架构优化建议 528 8.2.1 系统架构调优 528 8.2.2 Java项目优化方式分享 530 8.2.3 面向服务架构 534 8.2.4 程序隔离技术 538 8.2.5 团队并行开发准则 544 8.3 与编程无关 546 8.3.1 工程师品格 546 8.3.2 如何成为技术大牛 547 8.3.3 编程方法分享 548 8.4 本章小结 资源截图:
陌佑
百度云
百度云
⬅️ 1...16431644164516461647...2920

添加微信,反馈问题

微信及时反馈问题,方便沟通,请备注 ❤️

搜索榜单

1

骚老板资源网整站源码 打包数据高达2GB

2115

2

绿色风格网络公司源码 php网络建站公司源码

1274

3

雷速问卷调查系统(疫情上报系统) v7.08

1270

4

(自适应手机版)响应式餐饮美食企业网站源码 餐饮品牌连锁机构织梦模板

1212

5

Zblog仿918回忆模特写真网带整站数据图库系统源码

1144

6

一款笑话类网站源码 简约清爽的织梦笑话网站模板

1080

最新资源

1

网狐电玩系列/乐游电玩城/免微信免短信登陆

2

湖南地方玩法好玩互娱纯源码

3

最新更新网狐旗舰大联盟+UI工程

4

傲玩系列客户端通用加解密工具

5

优米H5电玩城组件/多语言/带84个游戏/后台带控+搭建视频教程

6

网狐系列猫娱乐新UI蜡笔小新金币组件

友情链接:
免费APISSL在线检测在线pingAPI版本项目seo教程免费下载狗凯源码网 查看更多
网站地图 法律声明
本站所存储的源码数据均为转载,不提供在线播放和下载服务。本站为非盈利性,不收取费用,所有内容不用于商业行为,仅供学习交流使用。如有侵权,请联系15001904@qq.com
  • 联系微信,反馈问题

  • 点此立刻反馈