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

资源搜

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

Java 程序设计教程 第5版

资源名称:Java 程序设计教程 第5版  内容简介: Java经过多年发展,现在已经真正成长为严格的、主流的开发语言。本书的作者是国际知名的教育专家H.M.Deitel和P.J.Deitel。全书通过Deitel特有的“活代码”方式,详细讲解了如何使用Java开发数据库应用程序、多媒体应用程序、网络应用程序。本书还介绍了软件工程知识、界面设计知识、调试技巧、性能提示等方面的内容。另外,本书还配有实验手册,它提供了一个优秀的学习环境,学生们可以用所学概念解决精心设计的各种问题。教师也能更好地评估学生对教材的理解程度。该实验手册也可以作为开放式实验、家庭作业以及自学用。 本书的读者对象是各类编程人员,计算机相关专业的本科生和研究生。 资源截图:
陌佑
百度云
百度云

计算机图形学 应用Java 2D和3D

资源名称:计算机图形学 应用Java 2D和3D 内容简介: 《计算机科学丛书·计算机图形学应用Java 2D和3D》提供了一个完整而权威的计算机图形学介绍,它并不需要低层次的编程或高深的数学背景。作者权衡了在软件和硬件方面的最新进展,结合高层次的Java 2D和Java 3D API的应用和发展来讲授基本概念。《计算机科学丛书·计算机图形学应用Java 2D和3D》首先介绍计算机图形系统各部分是如何结合到一起的,而后,循序渐进地介绍各种二维和三维概念和技术,从简单的二维坐标空间到高级的三维纹理及光照和阴影等。通过Java代码范例和样本图像对关键概念进行了解释,目的是使专业人士和学生都可以极其方便地理解计算机图形建模和特殊绘制技术。覆盖范围: Java,Java 2D和Java 3D如何简化计算机图形学开发 二维基础:绘制管道,对象、世界和设备空间,坐标系,图形基元、合成规则等 高级二维图形:B样条曲线、自定义图形基元、分形等 三维基础:体系结构、场景图和场景图成分 可视形状对象和三维图形模型中的构建单元 几何变换、仿射变换和透视投影的运用 观察:将三维虚拟世界场景映射为二维图像 交互和动画:将动态变化插入到三维场景中 三维曲线和曲面:超越Java 3D的内置能力 资源截图:
陌佑
百度云
百度云

JAVA GUI程序设计 基于ECLIPSE VE开发环境

资源名称:JAVA GUI程序设计  基于ECLIPSE VE开发环境 内容简介: 《可视化Java GUI程序设计:基于Eclipse VE开发环境》内容简介:Java是当今最为流行的程序设计语言之一,GUI(图形用户界面)是当今计算机程序与用户之间的主流接口。使用可视化方法开发Java GUI程序具有直观、快捷、易学、易用等优点。《可视化Java GUI程序设计:基于Eclipse VE开发环境》以最新的Eclipse:为开发环境,使用Visual Editor插件作为可视化开发丁具,结合学生成绩管理系统等实例的逐步设计过程,详细讲解了窗口、基本组件、容器、布局管理、事件处理、菜单、工具栏、表格和树等组件的可视化创建、属性设置及其在Java GUI程序设计中的应用;JFace对话框、查看器、编辑器、排序器和过滤器等高级组件的设计与应用;Java GUI程序的设计思路、可视化快速开发方法和步骤;以及必要的相关知识、原理和开发工具的基本使用方法与技巧。 读者通过对《可视化Java GUI程序设计:基于Eclipse VE开发环境》的学习,可以快速具备完整的图形用户界面程序的设计开发能力。《可视化Java GUI程序设计:基于Eclipse VE开发环境》适合作为计算机科学与技术、计算机软件、软件工程等专业“可视化程序设计”(Java方向)和“Java GUI程序设计”课程的本专科教材,也适合于非计算机专业具有Java基础的学生以及Java GUI程序设计爱好者自学。 资源目录: 第1章 Java GUI设计概述 第2章 .Java可视化开发环境的配置与使用  第3章 程序窗体及基本组件的设计  第4章 GUI交互功能设计——事件处理  第5章 布局设计  第6章 容器的使用  第7章 综合实例一 第8章 工具栏、菜单及其他组件的设计 第9章 对话框的使用 第10章 表格设计与数据处理 第11章 树和列表设计 第12章 综合实例二 资源截图:
陌佑
百度云
百度云

Java编程的逻辑

资源名称:Java编程的逻辑 内容简介: Java专家撰写,力求透彻讲解每个知识点,逐步建立编程知识图谱。本书以Java语言为例,由基础概念入手,到背后实现原理与逻辑,再到应用实践,融会贯通。 全书共六大部分,其要点如下。 第一部分(第1~2章)讲解计算机程序的基本执行流程与元素,以及数据背后的二进制表示,帮读者掌握编程的基本概念。 第二部分(第3~7章)讲解面向对象的编程原理与逻辑,涉及类、继承与多态、接口与抽象类、异常与常用基础类,让读者透彻了解Java的重要基础——面向对象。 第三部分(第8~12章)介绍泛型与容器及其数据结构和算法,涵盖泛型、列表和队列、各种Map和Set、堆与优先级队列等。 第四部分(第13~14章)介绍文件处理。涵盖文件的基本概念、二进制文件和字节流、文本文件和字符流、文件和目录操作,以及文件处理的一些高级技术,包括常见文件类型的处理、随机读写文件、内存映射文件、标准序列化机制,以及Jackson序列化。 第五部分(第15~20章)介绍并发,包括线程的传统基础知识和Java并发包。传统基础知识包括线程的基本概念与基本的同步、协作和中断机制;Java并发包涵盖原子变量、显式锁、显式条件、并发容器、异步任务执行服务、同步和协作工具类。 第六部分(第21~26章)介绍动态和声明式编程编程思路、API与技巧,涵盖反射、注解、动态代理、类加载机制、正则表达式、Java 8引入的函数式编程等。 这本书和别的书有什么不同? 简单来说,其他书大多教你怎么用,而这本书帮助你透彻理解,从基本概念到高层框架,剖析实现原理与JDK源代码,融合专业理论与应用实践,使你透彻理解Java编程的实现原理和思维逻辑,融会贯通。具体来说: 1)对于每个编程概念,不仅介绍了语法和用法,还分析了为什么要有这个概念,实现原理是什么,背后的思维逻辑是什么; 2)对于Java的主要API(如Java基础类、各种容器类、文件、并发包等),不仅介绍了用法、示例和应用,还剖析了大量JDK源代码,解释了其内部实现机制; 3)对于实践中常用的系统程序和框架,如键值数据库、消息队列、序列化框架、DI(依赖注入)容器、AOP(面向切面编程)框架、热部署、模板引擎等,本书利用基本API演示了其基本实现原理; 4)本书不仅注重实现原理,同样重视实用性,介绍了很多实践中常用的技术,包含了不少实际开发中积累的经验和教训,使读者可以少走一些弯路; 5)本书虽然是Java语言描述,但以更为通用的编程逻辑为主,融入了很多通用的编程相关知识,如二进制、编码、数据结构和算法、设计模式、操作系统、编程思维等; 6)本书高度注重表述,尽力站在读者的角度,循序渐进、简洁透彻、通俗易懂。 作者简介: 马俊昌 邻家科技CTO和联合创始人,北京理工大学博士。曾就职于IBM,从事中间件、云计算架构和开发工作,在万普世纪负责移动广告平台大数据分析和算法优化工作。2014年联合创立邻家科技,主要产品“到位APP”是一个到家生活服务平台。十多年来,一直从事Java编程,积累了比较丰富的经验。平时喜欢读书,研究技术与创新,乐于分享编程心得,欢迎关注我的微信公众号“老马说编程”,和你一起探索编程本质。 资源目录: Contents 目录 读者评论 前言 第一部分 编程基础与二进制 第1章 编程基础2 1.1 数据类型和变量3 1.2 赋值4 1.2.1 基本类型4 1.2.2 数组类型6 1.3 基本运算8 1.3.1 算术运算8 1.3.2 比较运算10 1.3.3 逻辑运算10 1.3.4 小结11 1.4 条件执行11 1.4.1 语法和陷阱11 1.4.2 实现原理14 1.5 循环16 1.5.1 循环的4种形式16 1.5.2 循环控制19 1.5.3 实现原理20 1.5.4 小结20 1.6 函数的用法21 1.6.1 基本概念21 1.6.2 进一步理解函数23 1.6.3 小结27 1.7 函数调用的基本原理27 1.7.1 栈的概念27 1.7.2 函数执行的基本原理28 1.7.3 数组和对象的内存分配29 1.7.4 递归调用的原理30 1.7.5 小结31 第2章 理解数据背后的二进制33 2.1 整数的二进制表示与位运算33 2.1.1 正整数的二进制表示33 2.1.2 负整数的二进制表示34 2.1.3 十六进制35 2.1.4 位运算36 2.2 小数的二进制表示37 2.2.1 小数计算为什么会出错37 2.2.2 二进制表示38 2.3 字符的编码与乱码39 2.3.1 常见非Unicode编码39 2.3.2 Unicode编码42 2.3.3 编码转换44 2.3.4 乱码的原因45 2.3.5 从乱码中恢复46 2.4 char的真正含义49 第二部分 面向对象 第3章 类的基础52 3.1 类的基本概念52 3.1.1 函数容器52 3.1.2 自定义数据类型53 3.1.3 定义第一个类55 3.1.4 使用第一个类55 3.1.5 变量默认值57 3.1.6 private变量57 3.1.7 构造方法58 3.1.8 类和对象的生命周期60 3.1.9 小结61 3.2 类的组合61 3.2.1 String和Date61 3.2.2 图形类62 3.2.3 用类描述电商概念63 3.2.4 用类描述人之间的血缘关系65 3.2.5 目录和文件66 3.2.6 一些说明67 3.2.7 小结68 3.3 代码的组织机制68 3.3.1 包的概念68 3.3.2 jar包71 3.3.3 程序的编译与链接71 3.3.4 小结72 第4章 类的继承73 4.1 基本概念73 4.1.1 根父类Object74 4.1.2 方法重写74 4.1.3 图形类继承体系75 4.1.4 小结80 4.2 继承的细节80 4.2.1 构造方法81 4.2.2 重名与静态绑定82 4.2.3 重载和重写83 4.2.4 父子类型转换85 4.2.5 继承访问权限protected85 4.2.6 可见性重写86 4.2.7 防止继承final87 4.3 继承实现的基本原理88 4.3.1 示例88 4.3.2 类加载过程90 4.3.3 对象创建的过程91 4.3.4 方法调用的过程92 4.3.5 变量访问的过程93 4.4 为什么说继承是把双刃剑94 4.4.1 继承破坏封装94 4.4.2 封装是如何被破坏的94 4.4.3 继承没有反映is-a关系97 4.4.4 如何应对继承的双面性97 第5章 类的扩展100 5.1 接口的本质100 5.1.1 接口的概念101 5.1.2 定义接口101 5.1.3 实现接口102 5.1.4 使用接口103 5.1.5 接口的细节105 5.1.6 使用接口替代继承106 5.1.7 Java 8和Java 9对接口的增强106 5.1.8 小结108 5.2 抽象类108 5.2.1 抽象方法和抽象类108 5.2.2 为什么需要抽象类109 5.2.3 抽象类和接口109 5.2.4 小结110 5.3 内部类的本质111 5.3.1 静态内部类111 5.3.2 成员内部类113 5.3.3 方法内部类115 5.3.4 匿名内部类117 5.4 枚举的本质119 5.4.1 基础120 5.4.2 典型场景122 第6章 异常125 6.1 初识异常125 6.1.1 NullPointerException(空指针异常)125 6.1.2 NumberFormatException(数字格式异常)126 6.2 异常类128 6.2.1 Throwable128 6.2.2 异常类体系129 6.2.3 自定义异常130 6.3 异常处理131 6.3.1 catch匹配131 6.3.2 重新抛出异常131 6.3.3 finally132 6.3.4 try-with-resources133 6.3.5 throws134 6.3.6 对比受检和未受检异常135 6.4 如何使用异常135 6.4.1 异常应该且仅用于异常情况136 6.4.2 异常处理的目标136 6.4.3 异常处理的一般逻辑137 第7章 常用基础类138 7.1 包装类138 7.1.1 基本用法139 7.1.2 共同点140 7.1.3 剖析Integer与二进制算法144 7.1.4 剖析Character149 7.2 剖析String155 7.2.1 基本用法156 7.2.2 走进String内部157 7.2.3 编码转换157 7.2.4 不可变性158 7.2.5 常量字符串159 7.2.6 hashCode160 7.2.7 正则表达式161 7.3 剖析StringBuilder162 7.3.1 基本用法162 7.3.2 基本实现原理162 7.3.3 String的+和+ =运算符165 7.4 剖析Arrays166 7.4.1 用法166 7.4.2 多维数组171 7.4.3 实现原理172 7.4.4 小结174 7.5 剖析日期和时间174 7.5.1 基本概念174 7.5.2 日期和时间API175 7.5.3 局限性182 7.6 随机183 7.6.1 Math.random183 7.6.2 Random184 7.6.3 随机的基本原理185 7.6.4 随机密码187 7.6.5 洗牌189 7.6.6 带权重的随机选择189 7.6.7 抢红包算法191 7.6.8 北京购车摇号算法192 7.6.9 小结193 第三部分 泛型与容器 第8章 泛型196 8.1 基本概念和原理196 8.1.1 一个简单泛型类197 8.1.2 容器类199 8.1.3 泛型方法201 8.1.4 泛型接口202 8.1.5 类型参数的限定202 8.1.6 小结205 8.2 解析通配符205 8.2.1 更简洁的参数类型限定205 8.2.2 理解通配符206 8.2.3 超类型通配符208 8.2.4 通配符比较211 8.3 细节和局限性211 8.3.1 使用泛型类、方法和接口211 8.3.2 定义泛型类、方法和接口213 8.3.3 泛型与数组214 8.3.4 小结217 第9章 列表和队列218 9.1 剖析ArrayList218 9.1.1 基本用法218 9.1.2 基本原理219 9.1.3 迭代221 9.1.4 ArrayList实现的接口225 9.1.5 ArrayList的其他方法227 9.1.6 ArrayList特点分析229 9.1.7 小结229 9.2 剖析LinkedList229 9.2.1 用法230 9.2.2 实现原理232 9.2.3 LinkedList特点分析238 9.3 剖析ArrayDeque239 9.3.1 实现原理239 9.3.2 ArrayDeque特点分析244 第10章 Map和Set245 10.1 剖析HashMap245 10.1.1 Map接口245 10.1.2 HashMap247 10.1.3 实现原理247 10.1.4 小结256 10.2 剖析HashSet256 10.2.1 用法256 10.2.2 实现原理258 10.2.3 小结259 10.3 排序二叉树260 10.3.1 基本概念260 10.3.2 基本算法261 10.3.3 平衡的排序二叉树263 10.3.4 小结264 10.4 剖析TreeMap264 10.4.1 基本用法265 10.4.2 实现原理267 10.4.3 小结273 10.5 剖析TreeSet274 10.5.1 基本用法274 10.5.2 实现原理275 10.5.3 小结276 10.6 剖析LinkedHashMap276 10.6.1 基本用法276 10.6.2 实现原理279 10.6.3 LinkedHashSet282 10.6.4 小结282 10.7 剖析EnumMap283 10.7.1 基本用法283 10.7.2 实现原理285 10.7.3 小结287 10.8 剖析EnumSet287 10.8.1 基本用法287 10.8.2 应用场景288 10.8.3 实现原理291 10.8.4 小结294 第11章 堆与优先级队列295 11.1 堆的概念与算法296 11.1.1 基本概念296 11.1.2 堆的算法298 11.1.3 小结302 11.2 剖析PriorityQueue302 11.2.1 基本用法302 11.2.2 实现原理304 11.2.3 小结309 11.3 堆和PriorityQueue的应用309 11.3.1 求前K个最大的元素309 11.3.2 求中值311 11.3.3 小结314 第12章 通用容器类和总结315 12.1 抽象容器类315 12.1.1 AbstractCollection316 12.1.2 AbstractList319 12.1.3 AbstractSequentialList321 12.1.4 AbstractMap323 12.1.5 AbstractSet325 12.1.6 AbstractQueue325 12.1.7 小结326 12.2 Collections326 12.2.1 查找和替换327 12.2.2 排序和调整顺序329 12.2.3 添加和修改332 12.2.4 适配器333 12.2.5 装饰器338 12.2.6 小结342 12.3 容器类总结342 12.3.1 用法和特点342 12.3.2 数据结构和算法344 12.3.3 设计思维和模式344 第四部分 文件 第13章 文件基本技术348 13.1 文件概述348 13.1.1 基本概念和常识348 13.1.2 Java文件概述352 13.2 二进制文件和字节流355 13.2.1 InputStream/OutputStream355 13.2.2 FileInputStream/File-OutputStream357 13.2.3 ByteArrayInputStream/ByteArrayOutputStream359 13.2.4 DataInputStream/Data-OutputStream361 13.2.5 BufferedInputStream/BufferedOutputStream363 13.2.6 实用方法364 13.2.7 小结365 13.3 文本文件和字符流365 13.3.1 基本概念366 13.3.2 Reader/Writer368 13.3.3 InputStreamReader/Output-StreamWriter368 13.3.4 FileReader/FileWriter369 13.3.5 CharArrayReader/Char-ArrayWriter370 13.3.6 StringReader/StringWriter370 13.3.7 BufferedReader/Buffered-Writer371 13.3.8 PrintWriter372 13.3.9 Scanner374 13.3.10 标准流374 13.3.11 实用方法376 13.3.12 小结377 13.4 文件和目录操作378 13.4.1 构造方法378 13.4.2 文件元数据378 13.4.3 文件操作379 13.4.4 目录操作380 第14章 文件高级技术383 14.1 常见文件类型处理384 14.1.1 属性文件384 14.1.2 CSV文件385 14.1.3 Excel388 14.1.4 HTML389 14.1.5 压缩文件391 14.2 随机读写文件394 14.2.1 用法394 14.2.2 设计一个键值数据库BasicDB396 14.2.3 BasicDB的实现397 14.2.4 小结401 14.3 内存映射文件402 14.3.1 基本概念402 14.3.2 用法403 14.3.3 设计一个消息队列BasicQueue404 14.3.4 实现消息队列406 14.3.5 小结409 14.4 标准序列化机制409 14.4.1 基本用法409 14.4.2 复杂对象411 14.4.3 定制序列化411 14.4.4 序列化的基本原理413 14.4.5 版本问题414 14.4.6 序列化特点分析414 14.5 使用Jackson序列化为JSON/XML/MessagePack415 14.5.1 基本概念415 14.5.2 基本用法415 14.5.3 容器对象418 14.5.4 复杂对象419 14.5.5 定制序列化420 14.5.6 Jackson对XML支持的局限性428 14.5.7 小结428 第五部分 并发 第15章 并发基础知识430 15.1 线程的基本概念430 15.1.1 创建线程430 15.1.2 线程的基本属性和方法432 15.1.3 共享内存及可能存在的问题435 15.1.4 线程的优点及成本438 15.2 理解synchronized439 15.2.1 用法和基本原理439 15.2.2 进一步理解synchronized443 15.2.3 同步容器及其注意事项445 15.3 线程的基本协作机制450 15.3.1 协作的场景450 15.3.2 wait/notify450 15.3.3 生产者/消费者模式453 15.3.4 同时开始455 15.3.5 等待结束456 15.3.6 异步结果458 15.3.7 集合点461 15.3.8 小结462 15.4 线程的中断463 15.4.1 取消/关闭的场景463 15.4.2 取消/关闭的机制463 15.4.3 线程对中断的反应464 15.4.4 如何正确地取消/关闭线程467 15.4.5 小结467 第16章 并发包的基石468 16.1 原子变量和CAS468 16.2 显式锁473 16.3 显式条件483 第17章 并发容器490 17.1 写时复制的List和Set490 17.2 ConcurrentHashMap493 17.3 基于跳表的Map和Set498 17.4 并发队列501 第18章 异步任务执行服务505 18.1 基本概念和原理505 18.2 线程池513 18.3 定时任务的那些陷阱518 第19章 同步和协作工具类527 19.1 读写锁ReentrantReadWrite-Lock527 19.2 信号量Semaphore529 19.3 倒计时门栓CountDownLatch531 19.4 循环栅栏CyclicBarrier533 19.5 理解ThreadLocal535 第20章 并发总结541 20.1 线程安全的机制541 20.2 线程的协作机制543 20.3 容器类544 20.4 任务执行服务546 第六部分 动态与函数式编程 第21章 反射550 21.1 Class类551 21.2 应用示例559 21.3 反射与泛型561 第22章 注解564 22.1 内置注解564 22.2 框架和库的注解566 22.3 创建注解568 22.4 查看注解信息570 22.5 注解的应用:定制序列化571 22.6 注解的应用:DI容器573 第23章 动态代理577 23.1 静态代理577 23.2 Java SDK动态代理579 23.3 cglib动态代理584 23.4 Java SDK代理与cglib代理比较585 23.5 动态代理的应用:AOP585 第24章 类加载机制592 24.1 类加载的基本机制和过程593 24.2 理解ClassLoader594 24.3 类加载的应用:可配置的策略597 24.4 自定义ClassLoader598 24.5 自定义ClassLoader的应用:热部署599 第25章 正则表达式603 25.1 语法603 25.2 Java API612 25.3 模板引擎618 25.4 剖析常见表达式619 第26章 函数式编程628 26.1 Lambda表达式628 26.2 函数式数据处理:基本用法637 26.3 函数式数据处理:强大方便的收集器647 26.4 组合式异步编程658 26.5 Java 8的日期和时间API668 资源截图:
陌佑
百度云
百度云

JavaWeb库存管理系统V1.1

源码+数据库脚本下载地址:JavaWeb库存管理系统V1.1 相关截图:
陌佑
百度云
百度云

深入理解JVM & G1 GC

资源名称:深入理解JVM & G1 GC 内容简介: G1 GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1 GC代表了先进性。 《深入理解JVM & G1 GC》主要为学习Java语言的学生、初级程序员提供GC的使用参考建议及经验,着重介绍了G1 GC。中国的软件开发行业已经有几十年了,从目前的行业发展来看,单纯的软件公司很难有发展,目前流行的云计算、物联网企业实际上是综合性IT技术的整合,这就需要有综合能力的程序员。《深入理解JVM & G1 GC》作者力求做到知识的综合传播,而不是仅仅针对Java虚拟机和GC调优进行讲解,也力求每一章节都有实际的案例支撑。《深入理解JVM & G1 GC》具体包括以下几方面:JVM基础知识、GC基础知识、G1 GC的深入介绍、G1 GC调优建议、JDK自带工具使用介绍等。 通读《深入理解JVM & G1 GC》后,读者可以深入了解G1 GC性能调优的许多主题及相关的综合性知识。读者也可以把《深入理解JVM & G1 GC》作为参考,对于感兴趣的主题,直接跳到相应章节寻找答案。 作者简介: 周明耀,12年投资银行项目、分布式计算项目工作经验,IBM开发者论坛专栏作者、InfoQ专栏作者。一名IT技术狂热爱好者,一名顽强到底的工程师。推崇技术创新、思维创新,对于新技术非常热爱,致力于技术研发、研究,通过发布文章、书籍、互动活动的形式积极推广软件技术。欢迎添加微信共同探讨IT技术话题。 资源目录: 序 VII 前言 IX 第1章 JVM & GC基础知识 1 1.1 引言 2 1.2 基本术语 3 1.2.1 Java相关术语 4 1.2.2 JVM/GC通用术语 24 1.2.3 G1涉及术语 56 1.3 本章小结 62 第2章 JVM & GC深入知识 63 2.1 Java虚拟机内存模型 64 2.1.1 程序计数器 65 2.1.2 虚拟机栈 66 2.1.3 本地方法栈 72 2.1.4 Java堆 73 2.1.5 方法区 79 2.2 垃圾收集算法 82 2.2.1 引用计数法 82 2.2.2 根搜索算法 83 2.2.3 标记-清除算法(Mark-Sweep) 85 2.2.4 复制算法(Copying) 87 2.2.5 标记-压缩算法(Mark-Compact) 89 2.2.6 增量算法(Incremental Collecting) 90 2.2.7 分代收集算法(Generational Collecting) 91 2.3 Garbage Collection 92 2.3.1 GC概念 92 2.3.2 垃圾收集器分类 93 2.3.3 Serial收集器 94 2.3.4 ParNew收集器 96 2.3.5 Parallel收集器 99 2.3.6 CMS收集器 102 2.3.7 Garbage First(G1)GC 106 2.4 常见问题解析 112 2.4.1 jmap -heap或-histo不能用 112 2.4.2 YGC越来越慢 112 2.4.3 Java永久代去哪儿了 114 2.5 本章小结 116 第3章 G1 GC应用示例 117 3.1 范例程序 118 3.2 选项解释及应用 124 3.3 本章小结 166 第4章 深入G1 GC 167 4.1 G1 GC概念简述 168 4.1.1 背景知识 168 4.1.2 G1的垃圾回收机制 169 4.1.3 G1的区间设计灵感 169 4.2 G1 GC分代管理 172 4.2.1 年轻代 172 4.2.2 年轻代回收暂停 173 4.2.3 大对象区间 174 4.2.4 混合回收暂停 176 4.2.5 回收集合及其重要性 178 4.2.6 RSet及其重要性 178 4.2.7 并行标记循环 182 4.2.8 评估失败和完全回收 186 4.3 G1 GC使用场景 186 4.4 G1 GC论文原文翻译(部分) 187 4.4.1 开题 187 4.4.2 数据结构/机制 188 4.4.3 未来展望 190 4.5 本章小结 191 第5章 G1 GC性能优化方案 192 5.1 G1的年轻代回收 193 5.2 年轻代优化 203 5.3 并行标记阶段优化 205 5.4 混合回收阶段 207 5.4.1 初步介绍 207 5.4.2 深入介绍 208 5.5 如何避免出现GC失败 210 5.6 引用处理 211 5.6.1 观察引用处理 212 5.6.2 引用处理优化 213 5.7 本章小结 214 第6章 JVM诊断工具使用介绍 215 6.1 SA基础介绍 216 6.2 SA工具使用实践 217 6.2.1 如何启动SA 217 6.2.2 SA原理及使用介绍 222 6.3 其他工具介绍 231 6.3.1 GCHisto 231 6.3.2 JConsole 232 6.3.3 VisualVM 236 6.4 本章小结 238 资源截图:
陌佑
百度云
百度云

Java程序性能优化 让你的Java程序更快、更稳定

资源名称:Java程序性能优化  让你的Java程序更快、更稳定 内容简介: Java是目前应用最为广泛的软件开发平台,学习针对Java程序的优化方法有重要的现实意义。《Java程序性能优化:让你的Java程序更快、更稳定》以Java性能调优为主线,系统地阐述了与Java性能优化相关的知识与技巧。 《Java程序性能优化:让你的Java程序更快、更稳定》共6章,先后从软件设计、软件编码、JVM调优以及程序故障排斥等方面介绍针对Java程序的优化方法。第1章介绍性能的基本概念、定律、系统调优的过程和注意事项。第2章从设计层面介绍与性能相关的设计模式、组件。第3章从代码层面介绍如何编写高性能的Java程序。第4章介绍了并行开发和如何通过多线程提高系统性能。第5章立足于JVM虚拟机层面,介绍如何通过设置合理的JVM参数提升Java程序的性能。第6章为工具篇,介绍了获取和监控程序或系统性能指标的各种工具,包括相关的故障排查工具。 本书适合所有Java程序员、软件设计师、架构师以及软件开发爱好者,对于有一定经验的Java工程师,本书更能帮助他突破技术瓶颈,深入Java内核开发! 作者简介: 葛一鸣,毕业于浙江工业大学,获得了计算机软件与理论专业硕士学位。取得了国家认证系统分析师职称、OCP(Oracle数据库认证专家)。现就职于UT斯达康通讯有限公司,从事Java软件开发。有多年的软件开发经验,参与开发过多个软件项目。熟悉Java、PHP、MySQL、Oracle等开发语言和数据库,对Java软件开发、性能优化、分布式软件有着浓厚的兴趣和深入的研究。在校期间曾经发表过多篇技术论文。 资源目录: 第1章 Java性能调优概述 1.1 性能概述 1.1.1 看懂程序的性能 1.1.2 性能的参考指标 1.1.3 木桶原理与性能瓶颈 1.1.4 Amdahl定律 1.2 性能调优的层次 1.2.1 设计调优 1.2.2 代码调优 1.2.3 JVM调优 1.2.4 数据库调优 1.2.5 操作系统调优 1.3 基本调优策略和手段 1.3.1 优化的一般步骤 1.3.2 系统优化注意事项 1.4 小结 第2章 设计优化 2.1 善用设计模式 2.1.1 单例模式 2.1.2 代理模式 2.1.3 享元模式 2.1.4 装饰者模式 2.1.5 观察者模式 2.1.6 Value Object模式 2.1.7 业务代理模式 2.2 常用优化组件和方法 2.2.1 缓冲(Buffer) 2.2.2 缓存(Cache) 2.2.3 对象复用——“池” 2.2.4 并行替代串行 2.2.5 负载均衡 2.2.6 时间换空间 2.2.7 空间换时间 2.3 小结 第3章 Java程序优化 3.1 字符串优化处理 3.1.1 String对象及其特点 3.1.2 subString()方法的内存泄漏 3.1.3 字符串分割和查找 3.1.4 StringBuffer和StringBuilder 3.2 核心数据结构 3.2.1 List接口 3.2.2 Map接口 3.2.3 Set接口 3.2.4 优化集合访问代码 3.2.5 RandomAccess接口 3.3 使用NIO提升性能 3.3.1 NIO的Buffer类族和Channel 3.3.2 Buffer的基本原理 3.3.3 Buffer的相关操作 3.3.4 MappedByteBuffer性能评估 3.3.5 直接内存访问 3.4 引用类型 3.4.1 强引用 3.4.2 软引用 3.4.3 弱引用 3.4.4 虚引用 3.4.5 WeakHashMap类及其实现 3.5 有助于改善性能的技巧 3.5.1 慎用异常 3.5.2 使用局部变量 3.5.3 位运算代替乘除法 3.5.4 替换switch 3.5.5 一维数组代替二维数组 3.5.6 提取表达式 3.5.7 展开循环 3.5.8 布尔运算代替位运算 3.5.9 使用arrayCopy () 3.5.10 使用Buffer进行I/O操作 3.5.11 使用clone()代替new 3.5.12 静态方法替代实例方法 3.6 小结 第4章 并行程序开发及优化 4.1 并行程序设计模式 4.1.1 Future模式 4.1.2 Master-Worker模式 4.1.3 Guarded Suspension模式 4.1.4 不变模式 4.1.5 生产者-消费者模式 4.2 JDK多任务执行框架 4.2.1 无限制线程的缺陷 4.2.2 简单的线程池实现 4.2.3 Executor框架 4.2.4 自定义线程池 4.2.5 优化线程池大小 4.2.6 扩展ThreadPoolExecutor 4.3 JDK并发数据结构 4.3.1 并发List 4.3.2 并发Set 4.3.3 并发Map 4.3.4 并发Queue 4.3.5 并发Deque 4.4 并发控制方法 4.4.1 Java内存模型与volatile 4.4.2 同步关键字synchronized 4.4.3 ReentrantLock重入锁 4.4.4 ReadWriteLock读写锁 4.4.5 Condition对象 4.4.6 Semaphore信号量 4.4.7 ThreadLocal线程局部变量 4.5 “锁”的性能和优化 4.5.1 线程的开销 4.5.2 避免死锁 4.5.3 减小锁持有时间 4.5.4 减小锁粒度 4.5.5 读写分离锁来替换独占锁 4.5.6 锁分离 4.5.7 重入锁ReentrantLock和内部锁synchronized 4.5.8 锁粗化(Lock Coarsening) 4.5.9 自旋锁(Spinning Lock) 4.5.10 锁消除(Lock Elimination) 4.5.11 锁偏向(Biased Lock) 4.6 无锁的并行计算 4.6.1 非阻塞的同步/无锁 4.6.2 原子操作 4.6.3 Amino框架介绍 4.6.4 Amino集合 4.6.5 Amino树 4.6.6 Amino图 4.6.7 Amino简单调度模式 4.7 协程 4.7.1 协程的概念 4.7.2 Kilim框架简介 4.7.3 Task及其状态 4.7.4 Fiber及其状态 4.7.5 Kilim开发环境配置 4.7.6 Kilim之Hello World 4.7.7 多任务通信 4.7.8 Kilim实例及性能评估 4.8 小结 第5章 JVM调优 5.1 Java虚拟机内存模型 5.1.1 程序计数器 5.1.2 Java虚拟机栈 5.1.3 本地方法栈 5.1.4 Java堆 5.1.5 方法区 5.2 JVM内存分配参数 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 评价GC策略的指标 5.3.5 新生代串行收集器 5.3.6 老年代串行收集器 5.3.7 并行收集器 5.3.8 新生代并行回收(Parallel Scavenge)收集器 5.3.9 老年代并行回收收集器 5.3.10 CMS收集器 5.3.11 G1收集器(Garbage First) 5.3.12 Stop the World案例 5.3.13 收集器对系统性能的影响 5.3.14 GC相关参数总结 5.4 常用调优案例和方法 5.4.1 将新对象预留在新生代 5.4.2 大对象进入老年代 5.4.3 设置对象进入老年代的年龄 5.4.4 稳定与震荡的堆大小 5.4.5 吞吐量优先案例 5.4.6 使用大页案例 5.4.7 降低停顿案例 5.5 实用JVM参数 5.5.1 JIT编译参数 5.5.2 堆快照(堆Dump) 5.5.3 错误处理 5.5.4 取得GC信息 5.5.5 类和对象跟踪 5.5.6 控制GC 5.5.7 选择类校验器 5.5.8 Solaris下线程控制 5.5.9 使用大页 5.5.10 压缩指针 5.6 实战JVM调优 5.6.1 Tomcat简介与启动加速 5.6.2 Web应用程序介绍 5.6.3 JMeter介绍与使用 5.6.4 调优前Web应用运行状况 5.6.5 调优过程 5.7 总结 第6章 Java性能调优工具 6.1 Linux命令行工具 6.1.1 top命令 6.1.2 sar命令 6.1.3 vmstat命令 6.1.4 iostat命令 6.1.5 pidstat工具 6.2 Windows工具 6.2.1 任务管理器 6.2.2 perfmon性能监控工具 6.2.3 Process Explorer 6.2.4 pslist命令行 6.3 JDK命令行工具 6.3.1 jps命令 6.3.2 jstat命令 6.3.3 jinfo命令 6.3.4 jmap命令 6.3.5 jhat命令 6.3.6 jstack命令 6.3.7 jstatd命令 6.3.8 hprof工具 6.4 JConsole工具 6.4.1 JConsole连接Java程序 6.4.2 Java程序概况 6.4.3 内存监控 6.4.4 线程监控 6.4.5 类加载情况 6.4.6 虚拟机信息 6.4.7 MBean管理 6.4.8 使用插件 6.5 Visual VM多合一工具 6.5.1 Visual VM连接应用程序 6.5.2 监控应用程序概况 6.5.3 Thread Dump和分析 6.5.4 性能分析 6.5.5 快照 6.5.6 内存快照分析 6.5.7 MBean管理 6.5.8 TDA使用 6.5.9 BTrace介绍 6.6 Visual VM对OQL的支持 6.6.1 Visual VM的OQL基本语法 6.6.2 内置heap对象 6.6.3 对象函数 6.6.4 集合/统计函数 6.6.5 程序化OQL 6.7 MAT内存分析工具 6.7.1 初识MAT 6.7.2 浅堆和深堆 6.7.3 支配树(Dominator Tree) 6.7.4 垃圾回收根 6.7.5 内存泄露检测 6.7.6 最大对象报告 6.7.7 查找支配者 6.7.8 线程分析 6.7.9 集合使用情况分析 6.7.10 扩展MAT 6.8 MAT对OQL的支持 6.8.1 Select子句 6.8.2 From子句 6.8.3 Where子句 6.8.4 内置对象与方法 6.9 JProfile简介 6.9.1 JProfile使用配置 6.9.2 内存视图 6.9.3 堆快照 6.9.4 CPU视图 6.9.5 线程视图 6.9.6 JVM统计信息 6.9.7 触发器 6.10 小结 资源截图:
陌佑
百度云
百度云

Java核心技术精讲

资源名称:Java核心技术精讲 内容简介: 《Java核心技术精讲》是一本实战型的、完全以自学为主的Java核心入门类图书。全书内容包括Java简介、Java基础语法、面向对象、异常的捕获及处理、包及访问控制权限、Java新特性、多线程、常用类库、Java IO操作、网络编程、类集框架、Java数据库编程、DAO设计模式、Eclipse开发工具。全书写作着重体现"好学"、"实用"、"配套资源完善",具体来说主要有以下特点: 视频讲解:49小时大型同步视频讲解(光盘中),把市场价值1000元的名师课堂搬回家; 案例教学:全书有506个实例、案例源程序分析,用实例、案例学习最快捷; 实战应用:以实战应用、就业实践为目的,杜绝纸上谈兵; 名师编著:由具有多年软件开发和培训经验、著有教材4部、北京魔乐科技实训中心知名实战派讲师李兴华编著,确保图书的实战性及优良品质; 配套完善:网站或者光盘提供了电子教案、教学课件、习题答案、交流论坛、源程序等大量学习资源。 资源目录: 第1部分 Java基础知识 第1章 Java简介 2 视频讲解:2小时38分钟 1.1 Java概述 3 1.2 JDK的安装与配置 8 1.3 第一个Java程序:永远的 "Hello World !" 12 1.4 第一个程序解释 13 1.5 CLASSPATH 15 1.6 本章小结 17 1.7 实践与练习 17 1.7.1 简答题 17 1.7.2 编程题 17 第2章 Java基础语法 18 视频讲解:2小时23分钟 2.1 注释 19 2.2 标识符和关键字 20 2.3 数据类型 21 2.3.1 整型(byte、short、int、 long) 22 2.3.2 浮点型(float、double) 27 2.3.3 字符型(char) 29 2.3.4 布尔型(boolean) 31 2.3.5 字符串(String) 31 2.4 运算符 33 2.4.1 三目运算符 36 2.4.2 逻辑运算符 37 2.4.3 位运算符 39 2.5 程序结构 41 2.5.1 选择(分支)结构 42 2.5.2 循环结构 47 2.6 方法 52 2.6.1 方法的基本定义 52 2.6.2 方法的重载 55 2.6.3 递归调用 56 2.7 习题讲解 57 2.8 本章小结 60 2.9 实践与练习 61 2.9.1 简答题 61 2.9.2 编程题 61 第2部分 面向对象 第3章 面向对象 64 视频讲解:20小时 3.1 面向对象简介 65 3.2 类与对象 66 3.2.1 类与对象的基本概念 66 3.2.2 类与对象的定义 67 3.2.3 引用传递的初步深入 72 3.3 封装性初步 74 3.4 构造方法 76 3.5 匿名对象 80 3.6 简单Java类 81 3.7 数组 83 3.7.1 数组的基本概念 83 3.7.2 数组的静态初始化 87 3.7.3 数组与方法 87 3.7.4 与数组有关的操作方法 95 3.7.5 二维数组 96 3.7.6 对象数组 97 3.7.7 习题讲解 99 3.8 String类 104 3.8.1 String类的两种对象实例化 方式 104 3.8.2 字符串比较 105 3.8.3 字符串常量是String类的匿名 对象 107 3.8.4 String类的两种实例化方式的 区别 108 3.8.5 字符串的内容一旦声明则不可 改变 111 3.9 String类的常用方法 112 3.9.1 字符串与字符 114 3.9.2 字符串与字节 115 3.9.3 字符串比较 116 3.9.4 字符串查找 117 3.9.5 字符串替换操作 119 3.9.6 字符串截取 119 3.9.7 字符串拆分 120 3.9.8 其他方法 121 3.9.9 习题讲解 124 3.10 this关键字 125 3.10.1 "this.属性"表示本类属性 125 3.10.2 调用本类方法 127 3.10.3 this表示当前对象 132 3.11 引用传递的三道范例 133 3.12 对象比较 137 3.13 static关键字 139 3.13.1 使用static定义属性 139 3.13.2 使用static定义方法 141 3.13.3 理解主方法 143 3.13.4 static关键字的使用 144 3.14 代码块 146 3.14.1 普通代码块 146 3.14.2 构造块 147 3.14.3 静态块 148 3.15 思考题 149 3.16 内部类 152 3.16.1 内部类的基本概念 152 3.16.2 使用static定义内部类 156 3.16.3 在方法中定义内部类 157 3.17 引用与类抽象的实际作用 158 3.18 核心思考题 162 3.19 单向链表 165 3.19.1 链表的基本概念 165 3.19.2 链表的基本雏形 169 3.19.3 开发可用链表 171 3.19.4 保存多个对象 178 3.20 继承性 182 3.20.1 继承问题的引出 182 3.20.2 继承的实现 183 3.20.3 继承的限制 184 3.21 覆写 188 3.21.1 方法的覆写 188 3.21.2 属性的覆盖 191 3.22 核心思考题 192 3.23 final关键字 196 3.24 构造方法私有化 197 3.25 多例设计模式 200 3.26 多态性 201 3.27 抽象类 206 3.27.1 抽象类的基本概念 206 3.27.2 抽象类的应用--模板设计 模式 209 3.28 接口 211 3.28.1 接口的基本概念 211 3.28.2 使用接口定义标准 215 3.28.3 接口的实际作用--工厂设计 模式(Factory) 216 3.28.4 接口的实际作用--代理设计 模式(Proxy) 218 3.28.5 抽象类和接口的区别 219 3.29 匿名内部类 221 3.30 Object类 222 3.30.1 取得对象信息:toString() 223 3.30.2 对象比较:equals() 224 3.30.3 使用Object接收所有的引用 数据类型 225 3.31 包装类 226 3.31.1 装箱与拆箱 227 3.31.2 数据转型 229 3.32 思考题 231 3.33 本章小结 237 3.34 实践与练习 239 3.34.1 简答题 239 3.34.2 编程题 239 第4章 异常的捕获及处理 241 视频讲解:1小时13分钟 4.1 认识异常 242 4.2 处理异常 242 4.3 异常的处理流程 246 4.4 throws关键字 248 4.5 throw关键字 249 4.6 异常处理的标准格式 250 4.7 RuntimeException 252 4.8 断言:assert 253 4.9 自定义异常类 254 4.10 本章小结 255 4.11 实践与练习 255 4.11.1 简答题 255 4.11.2 编程题 255 第5章 包及访问控制权限 256 视频讲解:53分钟 5.1 包的定义及使用 257 5.1.1 包的定义 257 5.1.2 包的导入 258 5.1.3 jar命令 260 5.2 Java的常用包 261 5.3 四种访问权限 262 5.4 命名规范 263 5.5 本章小结 264 5.6 实践与练习 264 5.6.1 判断题 264 5.6.2 简答题 264 第6章 Java新特性 265 视频讲解:1小时56分钟 6.1 可变参数 266 6.2 foreach输出 267 6.3 静态导入 268 6.4 JDK 1.5三大主要新特性-- 泛型 269 6.4.1 泛型的引出 269 6.4.2 通配符 273 6.4.3 泛型接口 277 6.4.4 泛型方法 279 6.5 JDK 1.5三大主要新特性-- 枚举 279 6.5.1 枚举的基本概念 279 6.5.2 枚举的其他定义 282 6.6 JDK 1.5三大主要特性-- Annotation 285 6.7 本章小结 287 6.8 实践与练习 288 6.8.1 简答题 288 6.8.2 编程题 288 第3部分 JAVA SE基础知识 第7章 多线程 290 视频讲解:2小时11分钟 7.1 进程与线程 291 7.2 多线程的实现 292 7.2.1 继承Thread类实现多 线程 292 7.2.2 利用Runnable接口实现多 线程 295 7.2.3 Thread类和Runnable接口实现 多线程的区别 296 7.2.4 线程的操作状态 300 7.3 线程的主要操作方法 301 7.3.1 线程的命名和取得 301 7.3.2 线程的休眠 303 7.3.3 线程的优先级 303 7.4 线程的同步与死锁 305 7.4.1 同步问题 305 7.4.2 死锁 309 7.5 线程间的经典操作案例 311 7.5.1 解决数据错位问题:依靠同步 就可以解决 313 7.5.2 解决数据的重复设置和重复 取出 315 7.6 线程的生命周期 317 7.7 本章小结 318 7.8 实践与练习 319 7.8.1 简答题 319 7.8.2 编程题 319 第8章 常用类库 320 视频讲解:4小时22分钟 8.1 StringBuffer类 321 8.2 Runtime类 324 8.3 System类 325 8.4 日期操作类 327 8.4.1 日期时间类:java.util.Date 327 8.4.2 日期格式化操作类: SimpleDateFormat 329 8.5 随机数类:Random 330 8.6 数学公式类:Math 330 8.7 大数字操作类 331 8.8 数组操作类:Arrays 333 8.9 比较器 335 8.9.1 常用比较器:Comparable 335 8.9.2 挽救的比较器 336 8.10 对象克隆 338 8.11 正则表达式 339 8.11.1 正则表达式的引出 339 8.11.2 常用正则匹配符号 340 8.11.3 String类对正则的支持 342 8.12 反射机制 348 8.12.1 认识反射 348 8.12.2 反射的深入应用 352 8.13 本章小结 358 8.14 实践与练习 359 8.14.1 简答题 359 8.14.2 编程题 359 第9章 Java IO操作 360 视频讲解:4小时14分钟 9.1 文件操作类:File 361 9.2 字节流和字符流 366 9.2.1 字节输出流: OutputStream 366 9.2.2 字节输入流: InputStream 369 9.2.3 字符输出流:Writer 372 9.2.4 字符输入流:Reader 372 9.2.5 字节流和字符流的区别 373 9.2.6 思考题 374 9.3 转换流 376 9.4 内存操作流 378 9.5 字符编码 379 9.6 打印流 381 9.7 System类 386 9.8 缓冲区操作:BufferedReader 389 9.9 Scanner 391 9.10 对象序列化 393 9.10.1 对象序列化的概念 393 9.10.2 实现序列化和反序列化 394 9.10.3 transient关键字 395 9.11 本章小结 395 9.12 实践与练习 396 9.12.1 简答题 396 9.12.2 编程题 396 第10章 网络编程 397 视频讲解:56分钟 10.1 网络编程简介 398 10.2 网络程序的基本实现 398 10.3 网络开发的经典模型--ECHO 程序 400 10.4 本章小结 402 第11章 类集框架 403 视频讲解:2小时2分钟 11.1 认识类集 404 11.2 单值保存的最大父接口: Collection 404 11.3 允许重复的子接口:List 405 11.3.1 新的子类:ArrayList 405 11.3.2 旧的子类:Vector 408 11.4 不允许重复的子接口:Set 409 11.4.1 散列存放的子类: HashSet 410 11.4.2 排序存放的子类:TreeSet 410 11.4.3 关于TreeSet排序的说明 411 11.4.4 关于重复元素的说明 412 11.5 集合的输出操作 414 11.5.1 迭代输出:Iterator 414 11.5.2 双向迭代输出: ListIterator 415 11.5.3 废弃的接口:Enumeration 416 11.5.4 JDK 1.5的支持:foreach 417 11.6 偶对象保存:Map接口 418 11.6.1 新的子类:HashMap 418 11.6.2 旧的子类:Hashtable 420 11.6.3 关于Map集合的输出 问题 421 11.6.4 关于Map中保存key的 说明 424 11.7 Stack类 425 11.8 Collections类 427 11.9 属性操作类:Properties 427 11.10 本章小结 430 11.11 实践与练习 430 11.11.1 简答题 430 11.11.2 编程题 431 第12章 Java数据库编程 432 视频讲解:1小时41分钟 12.1 JDBC的简介 433 12.2 连接Oracle数据库 434 12.3 使用Statement操作数 据库 437 12.3.1 使用Statement接口进行数据 表的更新操作 438 12.3.2 使用Statement接口进行 查询 440 12.4 预处理:PreparedStatement 442 12.5 批处理及事务处理 449 12.6 本章小结 453 第4部分 设计开发 第13章 DAO设计模式 456 视频讲解:2小时45分钟 13.1 程序分层 457 13.2 实例分析 458 13.3 准备阶段 458 13.3.1 VO类:负责数据的传输与 包装 458 13.3.2 DatabaseConnection类:负责 数据库连接 460 13.4 开发数据层 462 13.4.1 定义IEmpDAO接口:数据层 开发标准 462 13.4.2 定义IEmpDAO接口的实 现类 466 13.4.3 定义DAO工厂类 469 13.5 开发业务层 469 13.5.1 开发业务层标准 470 13.5.2 定义业务层标准的实 现类 471 13.5.3 定义Service工厂类 473 13.6 定义测试类 473 13.7 本章小结 475 附录A Eclipse开发工具 476 A.1 Eclipse历史 476 A.2 JDT使用 477 A.3 JUNIT测试工具 484 A.4 小结 486
陌佑
百度云
百度云

Java多线程编程实战指南-核心篇

资源名称:Java多线程编程实战指南-核心篇 内容简介: 随着现代处理器的生产工艺从提升处理器主频频率转向多核化,即在一块芯片上集成多个处理器内核(Core),多核处理器(Multicore Processor)离我们越来越近了——如今就连智能手机这样的消费类设备都已配备了4核乃至8核的处理器,更何况商用系统!在此背景下,以往靠单个处理器自身处理能力的提升所带来的软件计算性能提升的那种“免费午餐”已不复存在,这使得多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。故而,掌握多线程编程技能对广大开发人员的重要性亦由此可见一斑。《Java多线程编程实战指南(核心篇)》以基本概念、原理与方法为主线,辅以丰富的实战案例和生活化实例,并从Java虚拟机、操作系统和硬件多个层次与角度出发,循序渐进、系统地介绍Java平台下的多线程编程核心技术及相关工具。 《Java多线程编程实战指南(核心篇)》适合有一定Java语言基础的读者作为入门多线程编程之用,也适合有一定多线程编程经验的读者作为重新梳理知识结构以提升认知层次和参考之用。 资源目录: 第一部分 多线程编程基础 第1章 走近Java世界中的线程 2 1.1 进程、线程与任务 2 1.2 多线程编程简介 4 1.2.1 什么是多线程编程 4 1.2.2 为什么使用多线程 4 1.3 Java线程API简介 5 1.3.1 线程的创建、启动与运行 5 1.3.2 Runnable接口 9 1.3.3 线程属性 12 1.3.4 Thread类的常用方法 14 1.3.5 Thread类的一些废弃方法 16 1.4 无处不在的线程 17 1.5 线程的层次关系 19 1.6 线程的生命周期状态 21 1.7 线程的监视 22 1.8 多线程编程简单运用实例 26 *1.9 多线程编程的优势和风险 27 1.10 本章小结 29 第2章 多线程编程的目标与挑战 31 2.1 串行、并发与并行 31 2.2 竞态 33 2.2.1 二维表分析法:解释竞态的结果 37 2.2.2 竞态的模式与竞态产生的条件 39 2.3 线程安全性 42 2.4 原子性 43 2.5 可见性 49 2.6 有序性 56 2.6.1 重排序的概念 56 2.6.2 指令重排序 57 2.6.3 存储子系统重排序 63 2.6.4 貌似串行语义 66 2.6.5 保证内存访问的顺序性 68 2.7 上下文切换 69 2.7.1 上下文切换及其产生原因 69 2.7.2 上下文切换的分类及具体诱因 70 2.7.3 上下文切换的开销和测量 71 2.8 线程的活性故障 73 2.9 资源争用与调度 74 2.10 本章小结 77 第3章 Java线程同步机制 80 3.1 线程同步机制简介 80 3.2 锁概述 81 3.2.1 锁的作用 82 3.2.2 与锁相关的几个概念 84 3.2.3 锁的开销及其可能导致的问题 86 3.3 内部锁:synchronized关键字 86 3.4 显式锁:Lock接口 89 3.4.1 显式锁的调度 91 3.4.2 显式锁与内部锁的比较 92 3.4.3 内部锁还是显式锁:锁的选用 95 *3.4.4 改进型锁:读写锁 95 3.5 锁的适用场景 99 3.6 线程同步机制的底层助手:内存屏障 99 *3.7 锁与重排序 102 3.8 轻量级同步机制:volatile关键字 105 3.8.1 volatile的作用 105 3.8.2 volatile变量的开销 111 3.8.3 volatile的典型应用场景与实战案例 111 3.9 实践:正确实现看似简单的单例模式 120 3.10 CAS与原子变量 126 3.10.1 CAS 127 3.10.2 原子操作工具:原子变量类 129 3.11 对象的发布与逸出 135 3.11.1 对象的初始化安全:重访final与static 137 3.11.2 安全发布与逸出 142 3.12 本章小结 143 第4章 牛刀小试:玩转线程 148 4.1 挖掘可并发点 148 4.2 新战场上的老武器:分而治之 148 4.3 基于数据的分割实现并发化 149 4.4 基于任务的分割实现并发化 158 4.4.1 按任务的资源消耗属性分割 159 4.4.2 实战案例的启发 169 4.4.3 按处理步骤分割 171 4.5 合理设置线程数 172 4.5.1 Amdahl's定律 172 4.5.2 线程数设置的原则 173 4.6 本章小结 177 第5章 线程间协作 179 5.1 等待与通知:wait/notify 179 5.1.1 wait/notify的作用与用法 180 5.1.2 wait/notify的开销及问题 188 5.1.3 Object.notify()/notifyAll()的选用 191 *5.1.4 wait/notify与Thread.join() 191 5.2 Java条件变量 192 5.3 倒计时协调器:CountDownLatch 198 5.4 栅栏(CyclicBarrier) 203 5.5 生产者—消费者模式 210 5.5.1 阻塞队列 213 5.5.2 限购:流量控制与信号量(Semaphore) 216 *5.5.3 管道:线程间的直接输出与输入 218 5.5.4 一手交钱,一手交货:双缓冲与Exchanger 221 5.5.5 一个还是一批:产品的粒度 223 5.5.6 再探线程与任务之间的关系 224 5.6 对不起,打扰一下:线程中断机制 225 5.7 线程停止:看似简单,实则不然 228 5.7.1 生产者—消费者模式中的线程停止 233 5.7.2 实践:Web应用中的线程停止 233 5.8 本章小结 236 第6章 保障线程安全的设计技术 240 *6.1 Java运行时存储空间 240 6.2 大公无私:无状态对象 243 6.3 以“不变”应万变:不可变对象 248 6.4 我有我地盘:线程特有对象 254 6.4.1 线程特有对象可能导致的问题及其规避 258 6.4.2 线程特有对象的典型应用场景 264 6.5 装饰器模式 265 6.6 并发集合 267 6.7 本章小结 270 第7章 线程的活性故障 273 7.1 鹬蚌相争:死锁 273 7.1.1 死锁的检测 274 7.1.2 死锁产生的条件与规避 283 7.1.3 死锁的恢复 296 7.2 沉睡不醒的睡美人:锁死 301 7.2.1 信号丢失锁死 301 7.2.2 嵌套监视器锁死 301 7.3 巧妇难为无米之炊:线程饥饿 307 7.4 屡战屡败,屡败屡战:活锁 307 7.5 本章小结 308 第8章 线程管理 310 8.1 线程组 310 8.2 可靠性:线程的未捕获异常与监控 311 8.3 有组织有纪律:线程工厂 316 8.4 线程的暂挂与恢复 318 8.5 线程的高效利用:线程池 320 8.5.1 任务的处理结果、异常处理与取消 326 8.5.2 线程池监控 329 8.5.3 线程池死锁 330 8.5.4 工作者线程的异常终止 330 8.6 本章小结 331 第9章 Java异步编程 333 9.1 同步计算与异步计算 333 9.2 Java Executor框架 336 9.2.1 实用工具类Executors 337 9.2.2 异步任务的批量执行:CompletionService 339 9.3 异步计算助手:FutureTask 344 9.3.1 实践:实现XML文档的异步解析 345 9.3.2 可重复执行的异步任务 349 9.4 计划任务 352 9.5 本章小结 358 第10章 Java多线程程序的调试与测试 360 10.1 多线程程序的调试技巧 360 10.1.1 使用监视点 360 10.1.2 设置暂挂策略 361 10.2 多线程程序的测试 363 10.2.1 可测试性 364 10.2.2 静态检查工具:FindBugs 369 10.2.3 多线程程序的代码复审 370 10.2.4 多线程程序的单元测试:JCStress 372 10.3 本章小结 375 第二部分 多线程编程进阶 第11章 多线程编程的硬件基础与Java内存模型 378 11.1 填补处理器与内存之间的鸿沟:高速缓存 378 11.2 数据世界的交通规则:缓存一致性协议 382 11.3 硬件缓冲区:写缓冲器与无效化队列 386 11.3.1 存储转发 388 11.3.2 再探内存重排序 388 11.3.3 再探可见性 391 11.4 基本内存屏障 392 11.5 Java同步机制与内存屏障 395 11.5.1 volatile关键字的实现 395 11.5.2 synchronized关键字的实现 397 11.5.3 Java虚拟机对内存屏障使用的优化 398 11.5.4 final关键字的实现 398 11.6 Java内存模型 399 11.6.1 什么是Java内存模型 400 11.6.2 happen(s)-before关系 401 11.6.3 再探对象的安全发布 407 11.6.4 JSR 133 411 11.7 共享变量与性能 411 11.8 本章小结 411 第12章 Java多线程程序的性能调校 415 12.1 Java虚拟机对内部锁的优化 415 12.1.1 锁消除 415 12.1.2 锁粗化 417 12.1.3 偏向锁 419 12.1.4 适应性锁 420 12.2 优化对锁的使用 421 12.2.1 锁的开销与锁争用监视 421 12.2.2 使用可参数化锁 424 12.2.3 减小临界区的长度 428 12.2.4 减小锁的粒度 432 12.2.5 考虑锁的替代品 438 12.3 减少系统内耗:上下文切换 438 12.4 多线程编程的“三十六计”:多线程设计模式 440 12.5 性能的隐形杀手:伪共享 441 12.5.1 Java对象内存布局 442 12.5.2 伪共享的侦测与消除 445 12.6 本章小结 454 Web参考资源 457 参考文献 463 资源截图:
陌佑
百度云
百度云

Java虚拟机并发编程

资源名称:Java虚拟机并发编程 内容简介: 苏布拉马尼亚姆所著的《Java虚拟机并发编程》是Java并发编程领域的里程碑之作,由资深Java技术专家、并发编程专家、敏捷开发专家和Jolt大奖得主撰写,Amazon五星级畅销书。它系统深入地讲解在JVM平台上如何利用JDK同步模型、软件事务内存模型和基于角色的并发模型更好地进行并发编程。全书以示例驱动,通俗易懂,包含大量编程技巧、注意事项和最佳实践。要重点强调的是,本书并不仅仅只适合于Java语言的并发编程,它还适用于clojure、Groovy、JRuby和Scala等所有运行在JVM平台上的编程语言。 《Java虚拟机并发编程》共10章,分为五个部分。第一部分:并发策略,阐释了影响并发性的因素、如何有效实现并发,以及并发的设计方法等;第二部分:现代Java/JDK并发,讨论了现代Java API的线程安全和效率,以及如何处理已有应用程序中的现实问题和重构遗留代码时的原则;第三部分:软件事务内存,深入讨论了STM并就如何在各种主要的JVM语言里使用STM给出了指导意见;第四部分:基于角色的并发,详细讲解了如何在基于角色的模型下消除并发问题以及如何在自己的首选语言中使用角色模型;第五部分:后记,回顾了本书讨论的解决方案并总结了并发编程中的注意事项和最佳实践。 资源目录: 译者序 前言 第1章 并发的威力与风险 1 1.1 线程:程序的执行流程 1 1.2 并发的威力 1 1.3 并发的风险 4 1.4 小结 9 第一部分 并发策略 第2章 分工原则 11 2.1 从顺序到并发 11 2.2 在IO密集型应用程序中使用并发技术 13 2.3 并发方法对IO密集型应用程序的加速效果 19 2.4 在计算密集型应用程序中使用并发技术 20 2.5 并发方法对于计算密集型应用程序的加速效果 25 2.6 有效的并发策略 26 2.7 小结 27 第3章 设计方法 28 3.1 处理状态 28 3.2 探寻设计选项 29 3.3 共享可变性设计 29 3.4 隔离可变性设计 30 3.5 纯粹不可变性设计 30 3.6 持久的/不可变的数据结构 31 3.7 选择一种设计方法 34 3.8 小结 34 第二部分 现代Java/JDK并发模型 第4章 可扩展性和线程安全 37 4.1 用ExecutorService管理线程 37 4.2 使线程协作 38 4.3 数据交换 47 4.4 Java 7 Fork-Join API 49 4.5 可扩展集合类 51 4.6 Lock和Synchronized 54 4.7 小结 58 第5章 驯服共享可变性 59 5.1 共享可变性 != Public 59 5.2 定位并发问题 59 5.3 保持不变式 61 5.4 管理好资源 62 5.5 保证可见性 64 5.6 增强并发性 65 5.7 保证原子性 67 5.8 小结 70 第三部分 软件事务内存 第6章 软件事务内存导论 71 6.1 同步与并发水火不容 71 6.2 对象模型的缺陷 72 6.3 将实体与状态分离 73 6.4 软件事务内存 74 6.5 STM中的事务 77 6.6 用STM实现并发 77 6.7 用Akka/Multiverse STM实现并发 82 6.8 创建事务 84 6.9 创建嵌套事务 90 6.10 配置Akka事务 97 6.11 阻塞事务—有意识地等待 100 6.12 提交和回滚事件 103 6.13 集合与事务 106 6.14 处理写偏斜异常 110 6.15 STM的局限性 112 6.16 小结 116 第7章 在Clojure、Groovy、Java、JRuby和Scala中使用STM 117 7.1 Clojure STM 117 7.2 Groovy集成 118 7.3 Java集成 122 7.4 JRuby集成 124 7.5 Scala中的可选方案 130 7.6 小结 133 第四部分 基于角色的并发模型 第8章 讨喜的隔离可变性 135 8.1 用角色实现隔离可变性 136 8.2 角色的特性 137 8.3 创建角色 138 8.4 收发消息 144 8.5 同时使用多个角色 148 8.6 多角色协作 152 8.7 使用类型化角色 159 8.8 类型化角色和murmurs 163 8.9 混合使用角色和STM 169 8.10 使用transactor 169 8.11 调和类型化角色 176 8.12 远程角色 182 8.13 基于角色模型的局限性 184 8.14 小结 184 第9章 在Groovy、Java、JRuby和Scala中使用角色 186 9.1 在Groovy中使用GPars提供的角色实现 186 9.2 在Java中使用Akka提供的角色实现 199 9.3 在JRuby中使用Akka提供的Actor实现 199 9.4 在Scala中使用角色 202 9.5 小结 202 第五部分 后记 第10章 并发编程之禅 205 10.1 慎重选择 205 10.2 并发:程序员指南 206 10.3 并发:架构师指南 207 10.4 明智地进行选择 208 附录1 Clojure agent 210 附录2 一些网络资源 214 参考文献 216 资源截图:
陌佑
百度云
百度云
⬅️ 1...16411642164316441645...2920

添加微信,反馈问题

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

搜索榜单

1

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

2116

2

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

1276

3

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

1272

4

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

1214

5

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

1144

6

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

1082

最新资源

1

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

2

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

3

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

4

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

5

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

6

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

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

  • 点此立刻反馈