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

资源搜

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

轻松学Java

资源名称:轻松学Java 内容简介: 《轻松学Java(图解版)》共分4篇。第1篇“概述篇”主要介绍Java历史、JDK和Eclipse开发工具的安装过程,以及第一个Java程序和图形界面程序的运行过程等知识;第2篇“面向对象篇”主要介绍类和对象、成员字段、成员方法、流程控制、数组和字符串、继承与多态、抽象类、接口和包等技术;第3篇“应用篇”介绍Java的异常处理、多线程、枚举、集合框架、泛型、Java的输入/输出流等技术;第4篇“开发篇”详细介绍图形界面编程和数据库编程等方面的知识,以提高读者的实战水平。 资源目录: 概 述 篇 第1章 Java入门  1.1 Java简介  1.1.1 Java语言的发展  1.1.2 Java语言的特点  1.1.3 Java的应用领域  1.2 JDK的下载与安装  1.2.1 JDK的下载  1.2.2 JDK的安装  1.2.3 环境变量的设置  1.3 开发工具Eclipse的安装  1.3.1 Eclipse下载方法  1.3.2 Eclipse的初次启动  1.4 第一个Java程序HelloWorld  1.4.1 Eclipse工程创建  1.4.2 HelloWorld的创建与运行  1.5 第一个Java图形界面程序FirstDialog  1.6 Java程序运行过程  1.7 小结  1.8 本章习题    面向对象篇 第2章 类和对象  2.1 面向对象的基本概念  2.2 类  2.2.1 类的定义  2.2.2 标识符  2.2.3 关键字  2.2.4 分隔符和注释  2.3 类的实例化——对象  2.3.1 对象的声明  2.3.2 对象的使用  2.4 小结  2.5 本章习题  第3章 成员字段  3.1 定义成员字段  3.2 Java基本数据类型  3.3 数值的表达  3.3.1 整型数据  3.3.2 浮点型数据  3.3.3 字符型数据  3.3.4 布尔型数据  3.4 赋值  3.4.1 直接赋值  3.4.2 字段的作用域  3.4.3 非直接赋值  3.4.4 数据类型转换  3.4.5 Java数据的输入与输出  3.5 特殊类型字段  3.5.1 在类中可直接运用的字段——static关键字  3.5.2 禁止被修改的字段  3.6 小结  3.7 本章习题  第4章 方法  4.1 什么是方法  4.1.1 方法的运用原理  4.1.2 定义方法  4.1.3 调用方法  4.1.4 方法返回  4.2 参数  4.2.1 参数的声明  4.2.2 参数的分类  4.3 方法的构成  4.3.1 常量与变量  4.3.2 语句  4.3.3 this关键字  4.4 静态方法与非静态方法  4.5 特殊的方法  4.5.1 构造方法  4.5.2 main()方法  4.6 小结  4.7 本章习题  第5章 流程控制  5.1 顺序结构  5.2 选择结构  5.2.1 选择执行条件之一——关系运算  5.2.2 选择执行条件之二——逻辑运算  5.2.3 选择执行条件之三——条件运算  5.2.4 if语句  5.2.5 if-else语句  5.2.6 if-else if-else语句  5.2.7 switch语句  5.3 循环结构  5.3.1 while循环  5.3.2 do-while循环  5.3.3 for循环  5.3.4 循环嵌套  5.4 跳转语句  5.4.1 break语句  5.4.2 continue语句  5.5 小结  5.7 本章习题  第6章 数组和字符串  6.1 一维数组  6.1.1 一维数组的声明  6.1.2 数组元素的表示方法  6.1.3 一维数组的初始化  6.1.4 一维数组的赋值  6.1.5 数组的使用  6.1.6 Java为数组提供的一些常用方法  6.2 多维数组  6.2.1 二维数组的声明和初始化  6.2.2 二维数组的赋值  6.2.3 二维数组的使用  6.2.4 多维数组  6.3 字符串  6.3.1 String字符串的声明  6.3.2 创建字符串  6.3.3 字符串连接  6.3.4 字符串的比较  6.3.5 字符串方法  6.3.6 StringBuffer类的声明和创建  6.3.7 StringBuffer类的方法  6.4 小结  6.5 本章习题  第7章 对对象的进一步讨论  7.1 使用对象作为成员字段  7.1.1 定义对象字段  7.1.2 对象字段的实例化  7.1.3 对象字段与方法的访问  7.2 使用对象作为方法参数进行传递  7.3 使用对象作为方法的返回值  7.4 嵌套类  7.4.1 定义嵌套类  7.4.2 嵌套类的使用  7.5 内部类  7.5.1 静态内部类的定义  7.5.2 静态内部类的使用  7.5.3 成员内部类的定义  7.5.4 成员内部类的使用  7.5.5 局部内部类的定义  7.5.6 局部内部类的使用  7.6 小结  7.7 本章习题  第8章 继承与多态  8.1 继承的概念  8.1.1 继承的实现  8.1.2 成员方法的继承  8.1.3 成员字段的继承  8.2 访问修饰符  8.2.1 public访问修饰符  8.2.2 private访问修饰符  8.2.3 protected访问修饰符  8.2.4 default访问修饰符  8.3 方法的覆盖  8.3.1 方法的覆盖格式  8.3.2 super关键字  8.3.3 几种不能使用方法覆盖的情况  8.4 多层继承  8.5 多态  8.5.1 多态的基本概念  8.5.2 方法的覆盖  8.5.3 方法的重载  8.5.4 对象引用实现多态  8.6 小结  8.7 本章习题  第9章 抽象类、接口和包  9.1 抽象类的基本概念  9.2 抽象类的使用  9.3 接口的基本概念  9.4 接口的使用  9.5 匿名内部类  9.5.1 匿名内部类的语法  9.5.2 通过接口使用匿名类  9.5.3 通过抽象类使用匿名类  9.6 包的概念和使用  9.6.1 包的基本概念  9.6.2 包的使用  9.6.3 JDK中常见的包  9.7 小结  9.8 本章习题    应 用 篇 第10章 Java的异常处理  10.1 异常的基本概念  10.2 Java异常处理机制  10.3 异常类的层次结构  10.3.1 运行时异常  10.3.2 检查型异常  10.4 异常处理  10.5 抛出异常  10.5.1 程序中抛出异常  10.5.2 指定方法抛出异常  10.6 try-catch-finally语句的嵌套  10.7 用户自定义的异常  10.8 小结  10.9 本章习题  第11章 多线程  11.1 线程的基本概念  11.1.1 进程和线程  11.1.2 进程与线程的区别  11.1.3 认识多线程  11.2 创建多线程  11.2.1 通过继承Thread类创建多线程  11.2.2 通过实现Runnable接口创建多线程  11.3 运行线程  11.3.1 启动线程  11.3.2 同时运行多个线程  11.4 线程的生命周期  11.5 操作线程的方法  11.5.1 取得和设置线程的名称  11.5.2 判断线程是否启动  11.5.3 后台线程与setDaemon()方法  11.6 线程的调度  11.6.1 线程优先级  11.6.2 线程的睡眠方法  11.6.3 线程的让步方法  11.6.4 线程的等待方法  11.6.5 线程的中断  11.7 多线程的同步  11.8 死锁  11.9 线程间通信  11.10 小结  11.11 本章习题  第12章 枚举  12.1 枚举简介  12.2 枚举的使用  12.2.1 常见的枚举定义方法  12.2.2 在程序中使用枚举  12.2.3 在switch语句中使用枚举  12.3 枚举类和枚举关键字  12.3.1 枚举类  12.3.2 枚举关键字  12.4 类集对于枚举的支持  12.4.1 EnumMap  12.4.2 EnumSet  12.5 枚举的构造方法、接口和抽象方法  12.5.1 枚举的构造方法  12.5.2 枚举的接口  12.5.3 枚举的抽象方法  12.6 小结  12.7 本章习题  第13章 集合框架  13.1 集合框架概述  13.2 Collection接口  13.3 列表  13.3.1 ArrayList类  13.3.2 LinkedList类  13.4 集合  13.4.1 HashSet类  13.4.2 TreeSet类  13.5 通过迭代方法访问类集  13.6 映射  13.6.1 映射接口  13.6.2 HashMap类  13.6.3 TreeMap类  13.7 比较方法  13.8 以前版本的类和接口  13.8.1 Vector类  13.8.2 Stack类  13.8.3 Dictionary类  13.8.4 Hashtable类  13.8.5 Properties类  13.9 小结  13.10 本章习题  第14章 泛型  14.1 为什么使用泛型  14.2 泛型集合  14.3 泛型类和泛型方法  14.3.1 泛型类  14.3.2 泛型方法  14.4 使用多个泛型  14.5 泛型通配符  14.5.1 无界通配符“?”  14.5.2 上限通配符extends  14.5.3 下限通配符super  14.6 定义泛型异常  14.7 小结  14.8 本章习题  第15章 Java的输入/输出流  15.1 输入/输出流概述  15.2 文件  15.2.1 File类  15.2.2 文件的创建、修改与删除  15.2.3 获取文件属性  15.2.4 RandomAccessFile类  15.3 字节输入流  15.3.1 字节输入流InputStream  15.3.2 字节文件输入流FileInputStream  15.3.3 输入流过滤器FilterInputStream  15.3.4 字节缓冲区输入流BufferedInputStream  15.3.5 数据输入流DataInputStream  15.4 字节输出流  15.4.1 字节输出流  15.4.2 字节文件输出流FileOutputStream  15.4.3 字节缓冲区输出流BufferedOutputStream  15.4.4 数据输出流DataOutputStream  15.4.5 字节打印流PrintStream  15.5 字符输入流  15.5.1 字符输入流Reader  15.5.2 字符文件输入流FileReader  15.5.3 字符缓冲区输入流BufferedReader  15.6 字符输出流  15.6.1 字符输出流Writer  15.6.2 字符文件输出流FileWriter  15.6.3 字符缓冲区输出流BufferedWriter  15.6.4 字符打印流PrintWriter  15.7 小结  15.8 本章习题    开 发 篇 第16章 图形界面编程  16.1 AWT简介  16.2 Swing简介  16.3 容器类  16.3.1 JFrame类  16.3.2 JDialog类  16.3.3 JPanel类  16.4 Swing常用基本组件  16.4.1 常用组件的共性操作  16.4.2 按钮(JButton)  16.4.3 文本框(JTextField)与密码输入框(JPasswordField)  16.4.4 文本域(JTextArea)  16.4.5 标签(JLabel)  16.4.6 单选按钮(JRadioButton)  16.4.7 复选框(JCheckBox)  16.4.8 下拉列表(JComboBox)  16.4.9 列表(JList)  16.4.10 滚动条(JScrollPane)  16.5 Swing高级组件  16.5.1 表格(JTable)  16.5.2 树(JTree)  16.5.3 菜单(JMenu)  16.5.4 工具栏(JToolBar)  16.5.5 进程条(JprogressBar)  16.5.6 对话框(JDialog)  16.6 布局管理器  16.6.1 BorderLayout管理器  16.6.2 FlowLayout管理器  16.6.3 CridLayout管理器  16.6.4 GridBagLayout管理器  16.6.5 CardLayout管理器  16.6.6 不使用布局管理器定位组件  16.7 Swing的事件处理  16.7.1 事件处理机制概述  16.7.2 事件监听器  16.7.3 焦点事件  16.7.4 键盘事件  16.7.5 鼠标事件  16.7.6 窗口事件  16.7.7 事件适配器  16.8 小结  16.9 本章习题  第17章 JDBC数据库编程  17.1 数据库简介  17.1.1 数据库简介  17.1.2 SQL语句简介  17.1.3 JDBC简介  17.2 JDBC数据库的连接  17.3 数据库的操作  17.3.1 创建、修改和删除表  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.4 处理结果集  17.4.1 ResultSet对象处理结果集  17.4.2 滚动结果集  17.4.3 更新结果集  17.5 小结  17.6 本章习题  资源截图:
陌佑
百度云
百度云

Java从小白到大牛

资源名称:Java从小白到大牛 资源截图:
陌佑
百度云
百度云

Java全能速查宝典

资源名称:Java全能速查宝典 内容简介: Java编程的最基本要素是方法、属性和事件,掌握这些要素,就掌握了解决实际问题的一般方法。《Java全能速查宝典》从Java SE及Java EE两方面入手,精选了JDK自身600多个常用的方法、属性,同时还对Jsp、Servlet技术及Java EE流行框架的使用进行全面的解析,每一个知识点都配有具体的示例,便于读者理解。 《Java全能速查宝典》所讲的知识点按照功能和字母顺序进行排序,读者既可以按照功能顺序查找,也可以按照字母顺序学习。 《Java全能速查宝典》不仅适合Java程序设计初学者,也可作为中、高级程序开发人员的参考手册。 资源目录: 第1章 字符串  第2章 包装类  第3章 输入输出  第4章 集合类  第5章 数据库编程  第6章 JSP指令  第7章 JSP的动作标签  第8章 JSP内置对象  第9章 JSTL核心标签库  第10章 JSTL的格式与国际化标签库  第11章 JSTL的SQL标签库  第12章 JSTL的XML标签库  第13章 Struts控制器组件  第14章 Struts Bean标签库  第15章 Struts HTML标签库  第16章 Struts logic标签库  第17章 Hibernate常用类与接口  第18章 Hibernate配置属性  第19章 Hibernate映射节点  第20章 Spring容器  第21章 Spring持久化  第22章 Spring Web表单标签  附录 字母索引  资源截图:
陌佑
百度云
百度云

Java安全编码标准

资源名称:Java安全编码标准 内容简介: 《java安全编码标准》是java安全编码领域最权威、最全面、最详细的著作,java之父james a. gosling推荐。不仅从语言角度系统而详细地阐述java安全编码的要素、标准、规范和最佳实践,而且从架构设计的角度分析了java api存在的设计缺陷和可能存在的安全风险,以及应对的策略和措施。可以将本书作为java安全方面的工具书,根据自己的需要,找到自己感兴趣的规则进行阅读和理解,或者在实际开发中遇到安全问题时,根据书中列出的大致分类对规则进行索引和阅读,也可以通读全书的所有规则,系统地了解java安全规则,增强对java安全特性、语言使用、运行环境特性的理解。本书能指导java软件工程师设计出高质量的、安全的、可靠的、强大的、有弹性的、可用性和可维护性高的软件系统。 作者简介: Fred Long 英国Aberystwyth大学计算机科学系高级讲师和教学主任。主要讲授形式方法、Java、C++和C的编程模式以及与编程相关的安全问题的课程。他是英国计算机协会中威尔士分会的主席,自1992年以来在软件工程研究所(SEI)担任客座研究员。最近正在研究如何在Java中探查安全性漏洞。 Dhruv Mohindra 印度Persistent系统工程有限公司的高级软件工程师。曾研发了广泛应用于企业服务器的监控软件。曾在SEI的CERT项目工作,并致力于在编程社区中提高对安全问题的警觉性。曾任职于卡内基·梅隆大学,拥有信息安全策略与管理硕士学位和印度Pune大学计算机工程学士学位。 Robert C. Seacord 资深计算机安全专家和作家。在计算机安全、历史系统改造以及基于组件的软件工程等领域具有极深的造诣。目前管理卡内基·梅隆大学SEI的CERT在安全编码领域的创新项目。拥有Rensselaer Polytechnic学院计算机科学学士学位。 Dean F. Sutherland CERT高级软件安全工程师,编译器后端技术专家组高级专家。拥有卡内基·梅隆大学博士学位。曾担任职业软件工程师,在Tartan公司工作超过14年。 David Svoboda  CERT软件安全工程师,资深Java开发工程师,在Java开发领域拥有13年的开发经验。是卡内基·梅隆大学的一系列软件开发项目的主要开发者,这些项目涉及从层级芯片建模到社会组织仿真再到自动机器学习等多个方面。 资源目录: 译者序 序 前言 致谢 第1章 概述1 1.1 错位的信任1 1.2 注入攻击2 1.3 敏感数据泄露3 1.4 效能泄露5 1.5 拒绝服务6 1.6 序列化8 1.7 并发性、可见性和内存8 1.8 最低权限原则14 1.9 安全管理器15 1.10 类装载器16 1.11 小结16 第2章 输入验证和数据净化(ids)17 规则17 风险评估概要17 .2.1 ids00-j净化穿越受信边界的非受信数据18 2.2 ids01-j验证前标准化字符串26 2.3 ids02-j在验证之前标准化路径名28 2.4 ids03-j不要记录未经净化的用户输入31 2.5 ids04-j限制传递给zipinputstream的文件大小33 2.6 ids05-j使用ascii字符集的子集作为文件名和路径名35 2.7 ids06-j从格式字符串中排除用户输入37 2.8 ids07-j不要向runtime.exec()?方法传递非受信、未净化的数据38 2.9 ids08-j净化传递给正则表达式的非受信数据41 2.10 ds09-j如果没有指定适当的locale,不要使用locale相关方法处理与locale相关的数据44 2.11 ids10-j不要拆分两种数据结构中的字符串45 2.12 ids11-j在验证前去掉非字符码点50 2.13 ids12-j在不同的字符编码中无损转换字符串数据51 2.14 ids13-j在文件或者网络i/o两端使用兼容的编码方式53 第3章 声明和初始化(dcl)56 规则56 风险评估概要56 3.1 dcl00-j防止类的循环初始化56 3.2 dcl01-j不要重用java标准库的已经公开的标识59 3.3 dcl02-j将所有增强for语句的循环变量声明为final类型60 第4章 表达式(exp)63 规则63 风险评估概要63 4.1 exp00-j不要忽略方法的返回值63 4.2 exp01-j不要解引用空指针65 4.3 exp02-j使用两个参数的arrays.equals()方法来比较两个数组的内容67 4.4 exp03-j不要用相等操作符来比较两个基础数据类型的值67 4.5 exp04-j确保使用正确的类型来自动封装数值72 4.6 exp05-j不要在一个表达式中对同一变量进行多次写入73 4.7 exp06-j不要在断言中使用有副作用的表达式76 第5章 数值类型与运算(num)78 规则78 风险评估概要78 5.1 num00-j检测和避免整数溢出79 5.2 num01-j不要对同一数据进行位运算和数学运算85 5.3 num02-j确保除法运算和模运算中的除数不为088 5.4 num03-j使用可容纳无符号数据合法取值范围的整数类型89 5.5 num04-j不要使用浮点数进行精细计算90 5.6 num05-j不要使用非标准化数92 5.7 num06-j使用strictfp修饰符确保跨平台浮点运算的一致性94 5.8 num07-j不要尝试与nan进行比较97 5.9 num08-j检查浮点输入特殊的数值98 5.10 num09-j不要使用浮点变量作为循环计数器100 5.11 num10-j不要从浮点字元构造bigdecimal对象101 5.12 num11-j不要比较或者审查以字符串表达的浮点数值102 5.13 num12-j确保将数值转换成较小类型时不会产生数据丢失或曲解103 5.14 num13-j转换基本整数类型至浮点类型时应避免精度损失107 第6章 面向对象(obj)110 规则110 风险评估概要110 6.1 obj00-j只有受信子类能对具有不变性的类和方法进行扩展111 6.2 obj01-j声明数据成员为私有并提供可访问的封装器方法116 6.3 obj02-j当改变基类时,保存子类之间的依赖关系118 6.4 obj03-j在新代码中,不要混用具有泛型和非泛型的原始数据类型124 6.5 obj04-j为可变类提供复制功能,并通过此功能允许将实例传递给非受信代码128 6.6 obj05-j在返回引用之前,防御性复制私有的可变的类成员132 6.7 obj06-j对可变输入和可变的内部组件创建防御性复制136 6.8 obj07-j不允许敏感类复制其自身138 6.9 obj08-j不要在嵌套类中暴露外部类的私有字段141 6.10 obj09-j比较类而不是类名称143 6.11 obj10-j不要使用公有静态的非final变量144 6.12 obj11-j小心处理构造函数抛出异常的情况146 第7章 方法(met)153 规则153 风险评估概要153 7.1 met00-j验证方法参数154 7.2 met01-j不要使用断言验证方法参数156 7.3 met02-j不要使用弃用的或过时的类和方法157 7.4 met03-j进行安全检测的方法必须声明为private或final158 7.5 met04-j不要增加被覆写方法和被隐藏方法的可访问性160 7.6 met05-j确保构造函数不会调用可覆写的方法161 7.7 met06-j不要在clone()中调用可覆写的方法163 7.8 met07-j不要定义类方法来隐藏基类或基类接口中声明的方法165 7.9 met08-j确保比较等同的对象能得到相等的结果167 7.10 met09-j定义了equlas()方法的类必须定义hashcode()方法174 7.11 met10-j实现compareto()方法时遵守常规合约176 7.12 met11-j确保比较中的关键码是不可变的178 7.13 met12-j不要使用析构函数182 第8章 异常行为(err)187 规则187 风险评估概要187 8.1 err00-j不要消除或忽略可检查的异常187 8.2 err01-j不能允许异常泄露敏感信息192 8.3 err02-j记录日志时应避免异常196 8.4 err03-j在方法失败时恢复对象先前的状态197 8.5 err04-j不要在finally程序段非正常退出201 8.6 err05-j不要在finally程序段中遗漏可检查异常202 8.7 err06-j不要抛出未声明的可检查异常205 8.8 err07-j不要抛出runtimeexception、exception或throwable209 8.9 err08-j不要捕捉nullpointerexception或任何它的基类210 8.10 err09-j禁止非受信代码终止jvm216 第9章 可见性和原子性(vna)219 规则219 风险评估概要219 9.1 vna00-j当需要读取共享基础数据类型变量时,需要保证其可见性219 9.2 vna01-j保证对一个不可变对象的共享引用的可见性222 9.3 vna02-j保证对于共享变量的组合操作是原子性的225 9.4 vna03-j即使每一个方法都是相互独立并且是原子性的,也不要假设一组调用是原子性的230 9.5 vna04-j保证串联在一起的方法调用是原子性的235 9.6 vna05-j保证在读写64位的数值时的原子性239 第10章 锁(lck)241 规则241 风险评估概要241 10.1 lck00-j通过私有final锁对象可以同步那些与非受信代码交互的类242 10.2 lck01-j不要基于那些可能被重用的对象进行同步246 10.3 lck02-j不要基于那些通过getclass()返回的类对象来实现同步249 10.4 lck03-j不要基于高层并发对象的内置锁来实现同步252 10.5 lck04-j即使集合是可访问的,也不要基于集合视图使用同步253 10.6 lck05-j对那些可以被非受信代码修改的静态字段,需要同步进入255 10.7 lck06-j不要使用一个实例锁来保护共享静态数据256 10.8 lck07-j使用相同的方式请求和释放锁来避免死锁258 10.9 lck08-j在异常条件时,保证释放已经持有的锁266 10.10 lck09-j不要执行那些持有锁时会阻塞的操作270 10.11 lck10-j不要使用不正确形式的双重锁定检查惯用法273 10.12 lck11-j当使用那些不能对锁策略进行承诺的类时,避免使用客户端锁定277 第11章 线程api(thi)282 规则282 风险评估概要282 11.1 thi00-j不要调用thread.run()282 11.2 thi01-j不能调用threadgroup方法284 11.3 thi02-j通知所有等待中的线程而不是单一线程287 11.4 thi03-j始终在循环中调用wait()和await()方法292 11.5 thi04-j确保可以终止受阻线程295 11.6 thi05-j不要使用thread.stop()来终止线程300 第12章 线程池(tps)304 规则304 风险评估概要304 12.1 tps00-j使用线程池处理流量突发以实现降低性能运行304 12.2 tps01-j不要使用有限的线程池来执行相互依赖的任务307 12.3 tps02-j确保提交至线程池的任务是可中断的312 12.4 tps03-j确保线程池中正在执行的任务不会失败而不给出任何提示315 12.5 tps04-j使用线程池时,确保threadlocal变量可以重新初始化318 第13章 与线程安全相关的其他规则(tsm)323 规则323 风险评估概要323 13.1 tsm00-j不要使用非线程安全方法来覆写线程安全方法323 13.2 tsm01-j不要让this引用在创建对象时泄漏326 13.3 tsm02-j不要在初始化类时使用后台线程332 13.4 tsm03-j不要发布部分初始化的对象336 第14章 输入输出(fio)342 规则342 风险评估概要342 14.1 fio00-j不要操作共享目录中的文件343 14.2 fio01-j使用合适的访问权限创建文件351 14.3 fio02-j发现并处理与文件相关的错误352 14.4 fio03-j在终止前移除临时文件354 14.5 fio04-j在不需要时关闭资源357 14.6 fio05-j不要使用wrap()或duplicate()创建缓存,并将这些缓存暴露给非受信代码361 14.7 fio06-j不能在一个单独的inputstream上创建多个缓存区封装器364 14.8 fio07-j不要让外部进程阻塞输入和输出流367 14.9 fio08-j对读取一个字符或者字节的方法,使用int类型的返回值370 14.10 fio09-j不要使用write()方法输出超过0~255的整数372 14.11 fio10-j使用read()方法保证填充一个数组373 14.12 fio11-j不要将原始的二进制数据作为字符数据读入375 14.13 fio12-j为小端数据的读写提供方法376 14.14 fio13-j不要在受信边界之外记录敏感信息379 14.15 fio14-j在程序终止时执行正确的清理动作381 第15章 序列化(ser)387 规则387 风险评估概要387 15.1 ser00-j在类的演化过程中维护其序列化的兼容性388 15.2 ser01-j不要偏离序列化方法的正确签名390 15.3 ser02-j在将对象向信任边界之外发送时,需要签名并且封装敏感对象392 15.4 ser03-j不要序列化未经加密的敏感数据397 15.5 ser04-j不要允许序列化和反序列化绕过安全管理器401 15.6 ser05-j不要序列化内部类实例404 15.7 ser06-j在反序列化时,对私有的可变的组件进行防御性复制405 15.8 ser07-j不要对实现定义的不可变因素使用默认的序列化格式406 15.9 ser08-j在从拥有特性的环境中进行反序列化之前最小化特权410 15.10 ser09-j不要从readobject()方法中调用可以被覆写的方法413 15.11 ser10-j在序列化时,避免出现内存和资源泄漏414 15.12 ser11-j防止覆盖外部化的对象415 第16章 平台安全性(sec)417 规则417 风险评估概要417 16.1 sec00-j不要允许特权代码块越过受信边界泄露敏感信息417 16.2 sec01-j不要在特权代码块中使用污染过的变量420 16.3 sec02-j不要基于非受信源进行安全检查422 16.4 sec03-j不要在允许非受信代码装载任意类之后装载受信类424 16.5 sec04-j使用安全管理器检查来保护敏感操作426 16.6 sec05-j不要使用反射来增加类、方法和字段的可访问性429 16.7 sec06-j不要依赖于默认的由urlclassloader和java.util.jar提供的自动化签名检查434 16.8 sec07-j当编写一个自定义的类装载器时调用基类的getpermissions()方法437 16.9 sec08-j定义基于原生方法的封装器438 第17章 运行环境(env)441 规则441 风险评估概要441 17.1 env00-j不要签名只执行非特权操作的代码441 17.2 env01-j将所有安全敏感的代码置于单独一个jar包中,并且在签名之后封装它443 17.3 env02-j不要信任环境变量的值446 17.4 env03-j不要赋予危险的权限组合448 17.5 env04-j不要关闭字节码验证功能451 17.6 env05-j不要部署一个被远程监视的应用452 第18章 其他(msc)457 规则457 风险评估概要457 18.1 msc00-j在交换安全数据时使用sslsocket而不是socket457 18.2 msc01-j不要使用空的无限循环461 18.3 msc02-j生成强随机数462 18.4 msc03-j不要硬编码敏感信息464 18.5 msc04-j防止内存泄漏466 18.6 msc05-j不要耗尽堆空间473 18.7 msc06-j当一个遍历正在进行时,不要修改它对应的集合477 18.8 msc07-j防止多次实例化单例对象481 术语表490 参考资源497 资源截图:
陌佑
百度云
百度云

深入理解计算机系统(第三版)

资源名称:深入理解计算机系统(第三版) 内容简介: 和第2版相比,本版内容上*大的变化是,从以IA32和x86-64为基础转变为完全以x86-64为基础。主要更新如下: 基于x86-64,大量地重写代码,首次介绍对处理浮点数据的程序的机器级支持。 处理器体系结构修改为支持64位字和操作的设计。 引入更多的功能单元和更复杂的控制逻辑,使基于程序数据流表示的程序性能模型预测更加可靠。 扩充关于用GOT和PLT创建与位置无关代码的讨论,描述了更加强大的链接技术(比如库打桩)。 增加了对信号处理程序更细致的描述,包括异步信号安全的函数等。 采用新函数,更新了与协议无关和线程安全的网络编程。 作者简介: Randal E. Bryant,1981年于麻省理工学院获得计算机博士学位,1984年至今一直任教于卡内基-梅隆大学。现任卡内基-梅隆大学计算机科学学院院长、教授,同时还受邀任教于电子和计算机工程系。他从事本科生和研究生计算机系统方面课程的教学近40年。他和O’Hallaron教授一起在卡内基梅隆大学开设了15-213课程“计算机系统导论”,那便是本书的基础。他还是ACM院士、IEEE院士、美国国家工程院院士和美国人文与科学研究院院士。其研究成果被Intel、IBM、Fujitsu和Microsoft等主要计算机制造商使用,他还因研究获得过Semiconductor Research Corporation、ACM、IEEE颁发的多项大奖。 David R. O’Hallaron卡内基梅隆大学电子和计算机工程系教授。在弗吉尼亚大学(University of Virginia)获得计算机科学的博士学位,2007年-2010年为Intel匹兹堡实验室主任。他教授本科生和研究生的计算机系统方面的课程已有20余年,并和Bryant教授一起开设了“计算机系统导论”课程。曾获得CMU计算机学院颁发的Herbert Simon杰出教学奖。他主要从事计算机系统领域的研究,与Quake项目成员一起获得过高性能计算领域中的*高国际奖项——Gordon Bell奖。他目前的工作重点是研究自动分级(autograding)概念,即评价其他程序质量的程序。 资源目录: 出版者的话 中文版序一 中文版序二 译者序 前言 关于作者 第1章 计算机系统漫游1 1.1 信息就是位+上下文1 1.2 程序被其他程序翻译成不同的格式3 1.3 了解编译系统如何工作是大有益处的4 1.4 处理器读并解释储存在内存中的指令5 1.4.1 系统的硬件组成5 1.4.2 运行hello程序7 1.5 高速缓存至关重要9 1.6 存储设备形成层次结构9 1.7 操作系统管理硬件10 1.7.1 进程11 1.7.2 线程12 1.7.3 虚拟内存12 1.7.4 文件14 1.8 系统之间利用网络通信14 1.9 重要主题16 1.9.1 Amdahl定律16 1.9.2 并发和并行17 1.9.3 计算机系统中抽象的重要性19 1.10 小结20 参考文献说明20 练习题答案20 第一部分 程序结构和执行 第2章 信息的表示和处理22 2.1 信息存储24 2.1.1 十六进制表示法25 2.1.2 字数据大小27 2.1.3 寻址和字节顺序29 2.1.4 表示字符串34 2.1.5 表示代码34 2.1.6 布尔代数简介35 2.1.7 C语言中的位级运算37 2.1.8 C语言中的逻辑运算39 2.1.9 C语言中的移位运算40 2.2 整数表示41 2.2.1 整型数据类型42 2.2.2 无符号数的编码43 2.2.3 补码编码44 2.2.4 有符号数和无符号数之间的转换49 2.2.5 C语言中的有符号数与无符号数52 2.2.6 扩展一个数字的位表示54 2.2.7 截断数字56 2.2.8 关于有符号数与无符号数的建议58 2.3 整数运算60 2.3.1 无符号加法60 2.3.2 补码加法62 2.3.3 补码的非66 2.3.4 无符号乘法67 2.3.5 补码乘法67 2.3.6 乘以常数70 2.3.7 除以2的幂71 2.3.8 关于整数运算的最后思考74 2.4 浮点数75 2.4.1 二进制小数76 2.4.2 IEEE浮点表示78 2.4.3 数字示例79 2.4.4 舍入83 2.4.5 浮点运算85 2.4.6 C语言中的浮点数86 2.5 小结87 参考文献说明88 家庭作业88 练习题答案97 第3章 程序的机器级表示109 3.1 历史观点110 3.2 程序编码113 3.2.1 机器级代码113 3.2.2 代码示例114 3.2.3 关于格式的注解117 3.3 数据格式119 3.4 访问信息119 3.4.1 操作数指示符121 3.4.2 数据传送指令122 3.4.3 数据传送示例125 3.4.4 压入和弹出栈数据127 3.5 算术和逻辑操作128 3.5.1 加载有效地址129 3.5.2 一元和二元操作130 3.5.3 移位操作131 3.5.4 讨论131 3.5.5 特殊的算术操作133 3.6 控制135 3.6.1 条件码135 3.6.2 访问条件码136 3.6.3 跳转指令138 3.6.4 跳转指令的编码139 3.6.5 用条件控制来实现条件分支…141 3.6.6 用条件传送来实现条件分支…145 3.6.7 循环149 3.6.8 switch语句159 3.7 过程164 3.7.1 运行时栈164 3.7.2 转移控制165 3.7.3 数据传送168 3.7.4 栈上的局部存储170 3.7.5 寄存器中的局部存储空间172 3.7.6 递归过程174 3.8 数组分配和访问176 3.8.1 基本原则176 3.8.2 指针运算177 3.8.3 嵌套的数组178 3.8.4 定长数组179 3.8.5 变长数组181 3.9 异质的数据结构183 3.9.1 结构183 3.9.2 联合186 3.9.3 数据对齐189 3.10 在机器级程序中将控制与数据结合起来192 3.10.1 理解指针192 3.10.2 应用:使用GDB调试器193 3.10.3 内存越界引用和缓冲区溢出194 3.10.4 对抗缓冲区溢出攻击198 3.10.5 支持变长栈帧201 3.11 浮点代码204 3.11.1 浮点传送和转换操作205 3.11.2 过程中的浮点代码209 3.11.3 浮点运算操作210 3.11.4 定义和使用浮点常数212 3.11.5 在浮点代码中使用位级操作212 3.11.6 浮点比较操作213 3.11.7 对浮点代码的观察结论215 3.12 小结216 参考文献说明216 家庭作业216 练习题答案226 第4章 处理器体系结构243 4.1 Y86-64指令集体系结构245 4.1.1 程序员可见的状态245 4.1.2 Y86-64指令245 4.1.3 指令编码246 4.1.4 Y86-64异常250 4.1.5 Y86-64程序251 4.1.6 一些Y86-64指令的详情255 4.2 逻辑设计和硬件控制语言HCL256 4.2.1 逻辑门257 4.2.2 组合电路和HCL布尔表达式257 4.2.3 字级的组合电路和HCL整数表达式258 4.2.4 集合关系261 4.2.5 存储器和时钟262 4.3 Y86-64的顺序实现264 4.3.1 将处理组织成阶段264 4.3.2 SEQ硬件结构272 4.3.3 SEQ的时序274 4.3.4 SEQ阶段的实现277 4.4 流水线的通用原理282 4.4.1 计算流水线282 4.4.2 流水线操作的详细说明284 4.4.3 流水线的局限性284 4.4.4 带反馈的流水线系统287 4.5 Y86-64的流水线实现288 4.5.1 SEQ+:重新安排计算阶段288 4.5.2 插入流水线寄存器289 4.5.3 对信号进行重新排列和标号292 4.5.4 预测下一个PC293 4.5.5 流水线冒险295 4.5.6 异常处理306 4.5.7 PIPE各阶段的实现308 4.5.8 流水线控制逻辑314 4.5.9 性能分析322 4.5.10 未完成的工作323 4.6 小结325 参考文献说明326 家庭作业327 练习题答案331 第5章 优化程序性能341 5.1 优化编译器的能力和局限性342 5.2 表示程序性能345 5.3 程序示例347 5.4 消除循环的低效率350 5.5 减少过程调用353 5.6 消除不必要的内存引用354 5.7 理解现代处理器357 5.7.1 整体操作357 5.7.2 功能单元的性能361 5.7.3 处理器操作的抽象模型362 5.8 循环展开366 5.9 提高并行性369 5.9.1 多个累积变量370 5.9.2 重新结合变换373 5.10 优化合并代码的结果小结377 5.11 一些限制因素378 5.11.1 寄存器溢出378 5.11.2 分支预测和预测错误处罚379 5.12 理解内存性能382 5.12.1 加载的性能382 5.12.2 存储的性能383 5.13 应用:性能提高技术387 5.14 确认和消除性能瓶颈388 5.14.1 程序剖析388 5.14.2 使用剖析程序来指导优化390 5.15 小结392 参考文献说明393 家庭作业393 练习题答案395 第6章 存储器层次结构399 6.1 存储技术399 6.1.1 随机访问存储器400 6.1.2 磁盘存储406 6.1.3 固态硬盘414 6.1.4 存储技术趋势415 6.2 局部性418 6.2.1 对程序数据引用的局部性418 6.2.2 取指令的局部性419 6.2.3 局部性小结420 6.3 存储器层次结构421 6.3.1 存储器层次结构中的缓存422 6.3.2 存储器层次结构概念小结424 6.4 高速缓存存储器425 6.4.1 通用的高速缓存存储器组织结构425 6.4.2 直接映射高速缓存427 6.4.3 组相联高速缓存433 6.4.4 全相联高速缓存434 6.4.5 有关写的问题437 6.4.6 一个真实的高速缓存层次结构的解剖438 6.4.7 高速缓存参数的性能影响439 6.5 编写高速缓存友好的代码440 6.6 综合:高速缓存对程序性能的影响444 6.6.1 存储器山444 6.6.2 重新排列循环以提高空间局部性447 6.6.3 在程序中利用局部性450 6.7 小结450 参考文献说明451 家庭作业451 练习题答案459 第二部分 在系统上运行程序 第7章 链接464 7.1 编译器驱动程序465 7.2 静态链接466 7.3 目标文件466 7.4 可重定位目标文件467 7.5 符号和符号表468 7.6 符号解析470 7.6.1 链接器如何解析多重定义的全局符号471 7.6.2 与静态库链接475 7.6.3 链接器如何使用静态库来解析引用477 7.7 重定位478 7.7.1 重定位条目479 7.7.2 重定位符号引用479 7.8 可执行目标文件483 7.9 加载可执行目标文件484 7.10 动态链接共享库485 7.11 从应用程序中加载和链接共享库487 7.12 位置无关代码489 7.13 库打桩机制492 7.13.1 编译时打桩492 7.13.2 链接时打桩492 7.13.3 运行时打桩494 7.14 处理目标文件的工具496 7.15 小结496 参考文献说明497 家庭作业497 练习题答案499 第8章 异常控制流501 8.1 异常502 8.1.1 异常处理503 8.1.2 异常的类别504 8.1.3 Linux/x86-64系统中的异常505 8.2 进程508 8.2.1 逻辑控制流508 8.2.2 并发流509 8.2.3 私有地址空间509 8.2.4 用户模式和内核模式510 8.2.5 上下文切换511 8.3 系统调用错误处理512 8.4 进程控制513 8.4.1 获取进程ID513 8.4.2 创建和终止进程513 8.4.3 回收子进程516 8.4.4 让进程休眠521 8.4.5 加载并运行程序521 8.4.6 利用fork和execve运行程序524 8.5 信号526 8.5.1 信号术语527 8.5.2 发送信号528 8.5.3 接收信号531 8.5.4 阻塞和解除阻塞信号532 8.5.5 编写信号处理程序533 8.5.6 同步流以避免讨厌的并发错误540 8.5.7 显式地等待信号543 8.6 非本地跳转546 8.7 操作进程的工具550 8.8 小结550 参考文献说明550 家庭作业550 练习题答案556 第9章 虚拟内存559 9.1 物理和虚拟寻址560 9.2 地址空间560 9.3 虚拟内存作为缓存的工具561 9.3.1 DRAM缓存的组织结构562 9.3.2 页表562 9.3.3 页命中563 9.3.4 缺页564 9.3.5 分配页面565 9.3.6 又是局部性救了我们565 9.4 虚拟内存作为内存管理的工具565 9.5 虚拟内存作为内存保护的工具567 9.6 地址翻译567 9.6.1 结合高速缓存和虚拟内存570 9.6.2 利用TLB加速地址翻译570 9.6.3 多级页表571 9.6.4 综合:端到端的地址翻译573 9.7 案例研究:Intel Core i7/Linux内存系统576 9.7.1 Core i7地址翻译576 9.7.2 Linux虚拟内存系统580 9.8 内存映射582 9.8.1 再看共享对象583 9.8.2 再看fork函数584 9.8.3 再看execve函数584 9.8.4 使用mmap函数的用户级内存映射585 9.9 动态内存分配587 9.9.1 malloc和free函数587 9.9.2 为什么要使用动态内存分配589 9.9.3 分配器的要求和目标590 9.9.4 碎片591 9.9.5 实现问题592 9.9.6 隐式空闲链表592 9.9.7 放置已分配的块593 9.9.8 分割空闲块594 9.9.9 获取额外的堆内存594 9.9.10 合并空闲块594 9.9.11 带边界标记的合并595 9.9.12 综合:实现一个简单的分配器597 9.9.13 显式空闲链表603 9.9.14 分离的空闲链表604 9.10 垃圾收集605 9.10.1 垃圾收集器的基本知识606 9.10.2 Mark&Sweep垃圾收集器607 9.10.3 C程序的保守Mark&Sweep608 9.11 C程序中常见的与内存有关的错误609 9.11.1 间接引用坏指针609 9.11.2 读未初始化的内存609 9.11.3 允许栈缓冲区溢出610 9.11.4 假设指针和它们指向的对象是相同大小的610 9.11.5 造成错位错误611 9.11.6 引用指针,而不是它所指向的对象611 9.11.7 误解指针运算611 9.11.8 引用不存在的变量612 9.11.9 引用空闲堆块中的数据612 9.11.10 引起内存泄漏613 9.12 小结613 参考文献说明613 家庭作业614 练习题答案617 第三部分 程序间的交互和通信 第10章 系统级I/O622 10.1 Unix I/O622 10.2 文件623 10.3 打开和关闭文件624 10.4 读和写文件625 10.5 用RIO包健壮地读写626 10.5.1 RIO的无缓冲的输入输出函数627 10.5.2 RIO的带缓冲的输入函数627 10.6 读取文件元数据632 10.7 读取目录内容633 10.8 共享文件634 10.9 I/O重定向637 10.10 标准I/O638 10.11 综合:我该使用哪些I/O函数?638 10.12 小结640 参考文献说明640 家庭作业640 练习题答案641 第11章 网络编程642 11.1 客户端服务器编程模型642 11.2 网络643 11.3 全球IP因特网646 11.3.1 IP地址647 11.3.2 因特网域名649 11.3.3 因特网连接651 11.4 套接字接口652 11.4.1 套接字地址结构653 11.4.2 socket函数654 11.4.3 connect函数654 11.4.4 bind函数654 11.4.5 listen函数655 11.4.6 accept函数655 11.4.7 主机和服务的转换656 11.4.8 套接字接口的辅助函数660 11.4.9 echo客户端和服务器的示例662 11.5 Web服务器665 11.5.1 Web基础665 11.5.2 Web内容666 11.5.3 HTTP事务667 11.5.4 服务动态内容669 11.6 综合:TINY Web服务器671 11.7 小结678 参考文献说明678 家庭作业678 练习题答案679 第12章 并发编程681 12.1 基于进程的并发编程682 12.2 基于I/O多路复用的并发编程684 12.3 基于线程的并发编程691 12.4 多线程程序中的共享变量696 12.5 用信号量同步线程698 12.6 使用线程提高并行性710 12.7 其他并发问题716 12.8 小结722 参考文献说明723 家庭作业723 练习题答案726 附录A 错误处理729 参考文献733 资源截图:
陌佑
百度云
百度云

JAVA多线程设计模式

资源名称:JAVA多线程设计模式 内容简介: 《JAVA多线程设计模式》中包含JAVA线程的介绍导读,12个重要的线程设计模式和全书总结以及丰富的附录内容。每一章相关线程设计模式的介绍,都举一反三使读者学习更有效率。最后附上练习问题,让读者可以温故而知新,能快速地吸收书中的精华,书中最后附上练习问题解答,方便读者学习验证。 资源截图:
陌佑
百度云
百度云

21天学通Java2(第三版)

资源名称:21天学通Java2(第三版) 内容简介: 本书译自《Teach Yourself Java 2 in 21 Days》第三版。 本书包括三周的课程,通过阅读这些课程,读者将具备使用Java开发应用程序、小程序和servlet三种程序的知识和技能。第一周介绍Java语言的基本知识,包括数据类型、变量、表达式、对象、数组、条件语句、循环、类、接口、包异常和线程等;第二周介绍Java类库,包括向量、堆栈、映射、哈希表和位组等数据结构以及S 资源目录: 第1周课程 Java语言 第1天课程 Java初步 第2天课程 Java编程基础 第3天课程 对象 第4天课程 数组、逻辑和循环 第5天课程 创建类和方法 第6天课程 包、接口和其他类特性 第7天课程 线程和异常 第2周课程 Java类库 第8天课程 数据结构 第9天课程 使用Swing 第10天课程 创建Swing界面 第11天课程 在用户界面上排列组件 第12天课程 响应用户输入 第13天课程 颜色、字体和图形 第14天课程 编写Java小程序 第3周课程 Java编程 第15天课程 输入和输出 第16天课程 串行化和查看对象 …… 附录 · · · 资源截图:
陌佑
百度云
百度云

JavaWeb库存管理系统V1.0

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

Java性能优化权威指南

资源名称:Java性能优化权威指南 内容简介: Java性能优化圣经!Java之父重磅推荐! 本书由曾任职于Oracle/Sun的性能优化专家编写,系统而详细地讲解了性能优化的各个方面,帮助你学习Java虚拟机的基本原理、掌握一些监控Java程序性能的工具,从而快速找到程序中的性能瓶颈,并有效改善程序的运行性能。 Java性能优化的任何问题,都可以从本书中找到答案! 作者简介: Charlie Hunt现任Salesforce公司的性能工程架构师。曾任Oracle公司首席JVM性能工程师,负责HotSpot Java虚拟机和Java SE类库性能的改进。Charlie拥有美国伊利诺伊理工大学的计算机科学硕士学位、爱荷华州立大学的计算机科学学士学位。 Binu John是世界上最大的社交网站创建平台Ning.com的高级性能工程师。他目前的职责是着力改善Ning平台的性能和扩展性,以支持每月数百万PV的访问量。Binu拥有美国爱荷华大学生物医学工程和计算机科学硕士学位。 资源目录: 第1章 策略、方法和方法论  1 1.1  性能问题的现状  1 1.2  性能分析的两种方法:自顶向下和自底向上  4 1.2.1  自顶向下  4 1.2.2  自底向上  5 1.3  选择正确的平台并评估系统性能  5 1.3.1  选择正确的CPU架构  6 1.3.2  评估系统性能  7 1.4  参考资料  7 第2章 操作系统性能监控  8 2.1  定义  8 2.2  CPU使用率  9 2.2.1  监控CPU使用率:Windows  9 2.2.2  监控CPU使用率:Windows typeperf  12 2.2.3  监控CPU使用率:Linux  13 2.2.4  监控CPU使用率:Solaris  14 2.2.5  命令行监控CPU使用率:Linux和Solaris  16 2.3  CPU调度程序运行队列  19 2.3.1  监控CPU调度程序运行队列:Windows  19 2.3.2  监控CPU调度程序运行队列:Solaris  21 2.3.3  监控CPU调度程序运行队列:Linux  21 2.4  内存使用率  22 2.4.1  监控内存利用率:Windows  22 2.4.2  监控内存使用率:Solaris  23 2.4.3  监控内存使用率:Linux  24 2.4.4  监控锁竞争:Solaris  25 2.4.5  监控锁竞争:Linux  26 2.4.6  监控锁竞争:Windows  27 2.4.7  隔离竞争锁  27 2.4.8  监控抢占式上下文切换  27 2.4.9  监控线程迁移  28 2.5  网络I/O使用率  28 2.5.1  监控网络I/O使用率:Solaris  29 2.5.2  监控网络I/O使用率:Linux  30 2.5.3  监控网络I/O使用率:Windows  30 2.5.4  应用性能改进的考虑  31 2.6  磁盘I/O使用率  31 2.7  其他命令行工具  34 2.8  监控CPU使用率:SPARC T系列系统  35 2.9  参考资料  36 第3章 JVM概览  38 3.1  HotSpot VM的基本架构  38 3.2  HotSpot VM运行时  40 3.2.1  命令行选项  40 3.2.2  VM生命周期  41 3.2.3  VM类加载  44 3.2.4  字节码验证  46 3.2.5  类数据共享  47 3.2.6  解释器  48 3.2.7  异常处理  49 3.2.8  同步  50 3.2.9  线程管理  51 3.2.10  C++堆管理  53 3.2.11  Java本地接口  54 3.2.12  VM致命错误处理  55 3.3  HotSpot VM垃圾收集器  56 3.3.1  分代垃圾收集  56 3.3.2  新生代  58 3.3.3  快速内存分配  60 3.3.4  垃圾收集器  60 3.3.5  Serial收集器  61 3.3.6  Parallel收集器:吞吐量为先!  62 3.3.7  Mostly-Concurrent收集器:低延迟为先!  62 3.3.8  Garbage-First收集器:CMS替代者  64 3.3.9  垃圾收集器比较  64 3.3.10  应用程序对垃圾收集器的影响  65 3.3.11  简单回顾收集器历史  65 3.4  HotSpot VM JIT编译器  65 3.4.1  类型继承关系分析  67 3.4.2  编译策略  67 3.4.3  逆优化  68 3.4.4  Client JIT编译器概览  69 3.4.5  Server JIT编译器概览  69 3.4.6  静态单赋值——程序依赖图  69 3.4.7  未来增强展望  71 3.5  HotSpot VM自适应调优  71 3.5.1  Java 1.4.2的默认值  71 3.5.2  Java 5自动优化的默认值  71 3.5.3  Java 6 Update 18更新后的默认优化值  73 3.5.4  自适应Java堆调整  74 3.5.5  超越自动优化  75 3.6  参考资料  75 第4章 JVM性能监控  77 4.1  定义  77 4.2  垃圾收集  78 4.2.1  重要的垃圾收集数据  78 4.2.2  垃圾收集报告  78 4.2.3  垃圾收集数据的离线分析  86 4.2.4  图形化工具  89 4.3  JIT编译器  103 4.4  类加载  104 4.5  Java应用监控  106 4.6  参考资料  109 第5章 Java应用性能分析  110 5.1  术语  111 5.1.1  通用性能分析术语  111 5.1.2  Oracle Solaris Studio Performance Analyzer术语  112 5.1.3  NetBeans Profiler术语  112 5.2  Oracle Solaris Studio Performance Analyzer  112 5.2.1  支持平台  113 5.2.2  下载/安装Oracle Solaris Studio Performance Analyzer  114 5.2.3  使用Oracle Solaris Studio Performance Analyzer 抓取性能数据  114 5.2.4  查看性能数据  118 5.2.5  数据表示  125 5.2.6  过滤性能数据  128 5.2.7  命令行工具er_print  129 5.3  NetBeans Profiler  135 5.3.1  支持平台  136 5.3.2  下载安装NetBeans Profiler  136 5.3.3  开始方法分析会话  137 5.3.4  Controls子面板  143 5.3.5  Status子面板  143 5.3.6  Profiling Results子面板  143 5.3.7  Saved Snapshots子面板  144 5.3.8  View子面板  144 5.3.9  Basic Telemetry子面板  144 5.3.10  查看动态结果  145 5.3.11  对结果进行快照  145 5.3.12  启动内存分析会话  146 5.3.13  查看实时结果  148 5.3.14  对结果进行快照  150 5.3.15  定位内存泄漏  150 5.3.16  分析堆转储  151 5.4  参考资料  152 第6章 Java应用性能分析技巧  153 6.1  性能优化机会  153 6.2  系统或内核态CPU使用  154 6.3  锁竞争  161 6.4  Volatile的使用  171 6.5  调整数据结构的大小  172 6.5.1  StringBuilder或StringBuffer大小的调整  172 6.5.2  Java Collection类大小调整  175 6.6  增加并行性  179 6.7  过高的CPU使用率  181 6.8  其他有用的分析提示  182 6.9  参考资料  184 第7章 JVM性能调优入门  185 7.1  方法  185 7.1.1  假设条件  187 7.1.2  测试基础设施需求  188 7.2  应用程序的系统需求  188 7.2.1  可用性  188 7.2.2  可管理性  188 7.2.3  吞吐量  189 7.2.4  延迟及响应性  189 7.2.5  内存占用  189 7.2.6  启动时间  189 7.3  对系统需求分级  190 7.4  选择JVM部署模式  190 7.4.1  单JVM部署模式  190 7.4.2  多JVM部署模式  190 7.4.3  通用建议  191 7.5  选择JVM运行模式  191 7.5.1  Client模式或Server模式  191 7.5.2  32位/64位 JVM  192 7.5.3  垃圾收集器  192 7.6  垃圾收集调优基础  193 7.6.1  性能属性  193 7.6.2  原则  193 7.6.3  命令行选项及GC日志  194 7.7  确定内存占用  197 7.7.1  约束  197 7.7.2  HotSpot VM堆的布局  197 7.7.3  堆大小调优着眼点  200 7.7.4  计算活跃数据大小  201 7.7.5  初始堆空间大小配置  202 7.7.6  其他考量因素  203 7.8  调优延迟/响应性  204 7.8.1  输入  205 7.8.2  优化新生代的大小  205 7.8.3  优化老年代的大小  207 7.8.4  为CMS调优延迟  210 7.8.5  Survivor空间介绍  212 7.8.6  解析晋升阈值  214 7.8.7  监控晋升阈值  215 7.8.8  调整Survivor空间的容量  216 7.8.9  显式的垃圾收集  222 7.8.10  并发永久代垃圾收集  223 7.8.11  调优CMS停顿时间  224 7.8.12  下一步  225 7.9  应用程序吞吐量调优  225 7.9.1  CMS吞吐量调优  225 7.9.2  Throughput收集器调优  226 7.9.3  Survivor空间调优  228 7.9.4  调优并行垃圾收集线程  231 7.9.5  在NUMA系统上部署  231 7.9.6  下一步  232 7.10  极端示例  232 7.11  其他性能命令行选项  232 7.11.1  实验性(最近最大)优化  232 7.11.2  逃逸分析  233 7.11.3  偏向锁  233 7.11.4  大页面支持  234 7.12  参考资料  236 第8章 Java应用的基准测试  237 8.1  基准测试所面临的挑战  237 8.1.1  基准测试的预热阶段  238 8.1.2  垃圾收集  240 8.1.3  使用Java Time接口  240 8.1.4  剔除无效代码  241 8.1.5  内联  247 8.1.6  逆优化  251 8.1.7  创建微基准测试的注意事项  256 8.2  实验设计  257 8.3  使用统计方法  258 8.3.1  计算均值  258 8.3.2  计算标准差  258 8.3.3  计算置信区间  259 8.3.4  使用假设测试  260 8.3.5  使用统计方法的注意事项  262 8.4  参考文献  263 8.5  参考资料  263 第9章 多层应用的基准测试  264 9.1  基准测试难题  264 9.2  企业级应用基准测试的考量  266 9.2.1  定义被测系统  266 9.2.2  制定微基准测试  266 9.2.3  定义用户交互模型  267 9.2.4  定义性能指标  270 9.2.5  扩展基准测试  273 9.2.6  用利特尔法则验证  274 9.2.7  思考时间  275 9.2.8  扩展性分析  278 9.2.9  运行基准测试  278 9.3  应用服务器监控  281 9.3.1  GlassFish监控  281 9.3.2  监控子系统  286 9.3.3  Solaris  287 9.3.4  Linux  288 9.3.5  Windows  288 9.3.6  外部系统的性能  289 9.3.7  磁盘I/O  292 9.3.8  监控和调优资源池  293 9.4  企业级应用性能分析  294 9.5  参考资料  295 第10章 Web应用的性能调优  297 10.1  Web应用的基准测试  298 10.2  Web容器的组件  298 10.2.1  HTTP连接器  299 10.2.2  Servlet引擎  300 10.3  Web容器的监控和性能调优  300 10.3.1  容器的开发和生产模式  300 10.3.2  安全管理器  301 10.3.3  JVM调优  301 10.3.4  HTTP服务和Web容器  303 10.3.5  HTTP监听器  303 10.4  最佳实践  315 10.4.1  Servlet和JSP最佳实践  315 10.4.2  内容缓存  324 10.4.3  会话持久化  328 10.4.4  HTTP服务器文件缓存  329 10.5  参考资料  333 第11章 Web Service的性能  334 11.1  XML的性能  334 11.1.1  XML处理的生命周期  335 11.1.2  解析/解编组  335 11.1.3  访问  338 11.1.4  修改  338 11.1.5  序列化/编组  339 11.2  验证  339 11.3  解析外部实体  341 11.4  XML文档的局部处理  343 11.5  选择合适的API  346 11.6  JAX-WS参考实现栈  349 11.7  Web Service基准测试  350 11.8  影响Web Service性能的因素  353 11.8.1  消息大小的影响  353 11.8.2  不同Schema类型的性能特征  355 11.8.3  终端服务器的实现  358 11.8.4  处理程序的性能  359 11.9  最佳性能实践  361 11.9.1  二进制负载的处理  361 11.9.2  处理XML文档  365 11.9.3  使用MTOM发送XML文档  365 11.9.4  使用Provider接口  368 11.9.5  快速信息集  370 11.9.6  HTTP压缩  372 11.9.7  Web Service客户端的性能  373 11.10  参考资料  374 第12章 Java持久化及Enterprise Java Bean的性能  375 12.1  EJB编程模型  376 12.2  Java持久化API及其参考实现  376 12.3  监控及调优EJB容器  379 12.3.1  线程池  380 12.3.2  Bean池和缓存  382 12.3.3  EclipseLink会话缓存  385 12.4  事务隔离级  386 12.5  Enterprise Java Bean的最佳实践  387 12.5.1  简要说明使用的EJB基准测试  387 12.5.2  EJB 2.1  388 12.5.3  EJB 3.0  400 12.6  Java持久化最佳实践  403 12.6.1  JPA查询语言中的查询  403 12.6.2  查询结果缓存  405 12.6.3  FetchType  406 12.6.4  连接池  408 12.6.5  批量更新  409 12.6.6  选择正确的数据库锁策略  411 12.6.7  不带事务的读取  411 12.6.8  继承  411 12.7  参考资料  412 附录A  重要的HotSpot VM选项  413 附录B  性能分析技巧示例源代码  429 B.1  锁竞争实现1  429 B.2  锁竞争实现2  439 B.3  锁竞争实现3  449 B.4  锁竞争实现4  459 B.5  锁竞争实现5  469 B.6  调整容量变化1  481 B.7  调整容量变化2  492 B.8  增加并发性的单线程实现  504 B.9  增加并发性的多线程实现  514 资源截图:
陌佑
百度云
百度云

深入理解 Java 内存模型

资源名称:深入理解 Java 内存模型 资源截图:
陌佑
百度云
百度云
⬅️ 1...18681869187018711872...3148

添加微信,反馈问题

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

搜索榜单

1

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

1716

2

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

1109

3

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

1058

4

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

954

5

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

911

6

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

830

最新资源

1

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

2

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

3

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

4

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

5

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

6

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

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

  • 点此立刻反馈