J2EE武功秘籍(2011.10.11娱乐版).doc_第1页
J2EE武功秘籍(2011.10.11娱乐版).doc_第2页
J2EE武功秘籍(2011.10.11娱乐版).doc_第3页
J2EE武功秘籍(2011.10.11娱乐版).doc_第4页
J2EE武功秘籍(2011.10.11娱乐版).doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 2 J2EE 工程师工程师 武武 功功 秘秘 籍籍 娱乐版 娱乐版 朱峰朱峰 著著 3 前言前言 对于 J2EE JAVA EE 来说 如果要很好的完成一个应用需要掌握的东西太多 很难 有人掌握所有环节的知识 即使很多人曾经了解或学习过 但是 遗忘也是不可以避免的 做项目时间长了 就会发生这样一种情况 做的多了 做的杂了 很多会的东西记不住了 再遇到它们 仿佛生人一般 需要重新翻书或上网查阅 这个情况让我也一直困扰 其实 这个情况主要是两个原因造成的 一是每个人记忆能力差异 有人强些 有人弱些 二是 很多遗忘的东西 都是由于自己对它真正的含义理解不够 基于这种认识 如果一个记忆 能力一般的人 那又怎么办呢 答案很显然 只有在理解环节下功夫 好的理解可以加深 记忆 那么 海量知识又怎么快速理解呢 让我想起幼儿学习的例子 都是通过图加少量 文字来启发大脑记忆 很多东西到大了还是可以记住 所以 通过图解析深奥问题是一个 学习捷径 即便忘记一些 通过图也能比看文字回忆的更快些 如果经常有这些图陪伴 那么时间长了 就会形成 永久 记忆 那不是很好 人们常说 工欲善其事 必先利其 器 要想做好事 必须有很好的武器才行 这本秘籍就是这辅助记忆的一个利器 它通 过对 J2EE 和相关经典知识点进行图解说明 来达到强化记忆的功用 对于有一定 Java 基 础的想要深入学习和理解 J2EE 的工程师来说 是一个有益的参考 我写的主要就是针对 Java 或相关知识已经有的经典基础问题 对它们进行图解说明 并不能覆盖所有东西 同时这里内容不是简单的重复论述 而是思考后整理 本身就是为 了对问题有更好的理解 山不在高 有仙则灵 水不在深 有龙则灵 越基础 越 本质的东西才有它研究的意义 合抱之木 生于毫末 九层之台 起于累土 千里之行 始于足下 总结就是一种很好的学习方法 秘籍本身就是一个形式 掌握了如何产生 它才是关键 希望大家多多交流 互相共勉 写作于 2011 年 9 月 18 日星期日上午 msn zhufeng1981 888 4 目录 第一层 第一层 JAVA SE 技术招式辨析技术招式辨析 10 招式招式 1 InputStream OutputStream 和和 Reader Writer 10 招式招式 2 Java 的异常体系的异常体系 10 招式招式 3 sleep 和和 wait 区别区别 11 招式招式 4 volatile 和和 synchronized 区别区别 11 招式招式 5 Thread Runnable 和和 Callable 区别区别 12 招式招式 6 Socket 和和 ServerSocket 区别区别 13 招式招式 7 NIO 和和 I O 区别区别 13 招式招式 8 Heap 和和 Stack 区别区别 14 招式招式 9 Static Nested Class 和和 Inner Class 区别区别 14 招式招式 10 Abstract Class 和和 Interface 区别区别 15 招式招式 11 各种基本类型空间大小 各种基本类型空间大小 15 招式招式 12 HashMap HashTable 和和 ConcurrentHashMap 16 招式招式 13 ThreadLocal 真正含义真正含义 17 招式招式 14 Override 覆盖覆盖 Overload 重载重载 和和 Overwrite 重写重写 18 招式招式 15 Java 集合关系集合关系 18 招式招式 16 Comparable 和和 Comparator 区别区别 18 招式招式 17 Socket 和和 URLConnection 区别区别 18 招式招式 18 URI URL 和和 URN 区别区别 18 招式招式 19 强引用 软引用 弱引用和虚引用 强引用 软引用 弱引用和虚引用 19 招式招式 20 ClassLoader 继承关系继承关系 19 招式招式 21 Java 正则表达式用法正则表达式用法 19 招式招式 22 内存分配 内存分配 20 第二层第二层 JAVA EE 技术招式辨析技术招式辨析 20 招式招式 1 统计多同客户访问相同 统计多同客户访问相同 URL 那个响应最慢那个响应最慢 20 招式招式 2 Forword 和和 SendRedirect 区别区别 21 招式招式 3 RMI 和和 WebService 区别区别 22 招式招式 4 JMS 分类分类 22 招式招式 5 Cookie 和和 Session 区别区别 23 招式招式 6 EJB2 和和 EJB3 区别区别 23 招式招式 7 J2EE 中间件和服务器中间件和服务器 23 招式招式 8 HTTP 响应状态码响应状态码 23 第三层第三层 数据库招式辨析数据库招式辨析 23 招式招式 1 各种主流数据库 各种主流数据库 SQL 分页实现分页实现 23 招式招式 2 悲观锁和乐观锁原理 悲观锁和乐观锁原理 24 招式招式 3 数据库隔离级别 数据库隔离级别 24 招式招式 4 数据库事务传播级别 数据库事务传播级别 24 招式招式 5 数据库范式级别 数据库范式级别 24 5 招式招式 6 索引失效情况 索引失效情况 25 招式招式 7 DDL 和和 DML 区别区别 25 第四层第四层 LINUX 招式辨析招式辨析 25 招式招式 1 awk 和和 sed 25 招式招式 2 ps 和和 netstat 25 第五层第五层 设计模式招式辨析设计模式招式辨析 25 招式招式 1 经典设计准则 经典设计准则 25 招式招式 2 经典 经典 Java 设计模式设计模式 27 招式招式 3 经典线程设计模式 经典线程设计模式 28 招式招式 4 经典企业设计模式 经典企业设计模式 28 第六层第六层 算法招式辨析算法招式辨析 28 招式招式 1 递归算法 递归算法 29 招式招式 2 贪婪算法 贪婪算法 29 招式招式 3 动态规划算法 动态规划算法 29 招式招式 4 回溯算法 回溯算法 29 招式招式 5 分支界限算法 分支界限算法 29 招式招式 6 各种内排序算法 各种内排序算法 29 第七层第七层 网络安全招式辨析网络安全招式辨析 30 招式招式 1 三次握手建立稳定连接 三次握手建立稳定连接 30 招式招式 2 SSL 原理原理 30 招式招式 3 HTTPS 和和和和 HTTP 的区别的区别 31 招式招式 4 数字证书 数字证书 31 招式招式 5 加密解密算法 加密解密算法 31 第八层第八层 开源框架招式辨析开源框架招式辨析 31 招式招式 1 Spring 框架特性框架特性 31 招式招式 2 Struts 和和 Struts2 框架框架 31 招式招式 3 Hibernate 框架框架 31 招式招式 4 Mina 框架特性框架特性 31 招式招式 5 DWR 中如何获取中如何获取 HTTP 请求的请求的 session 32 第九层第九层 架构设计招式辨析架构设计招式辨析 32 招式招式 1 MVC 架构架构 32 招式招式 2 B S 和和 C S 架构架构 32 招式招式 3 M S 架构架构 32 招式招式 4 MOM 架构架构 32 附录附录 A 图片目录 图片目录 33 6 附录附录 B 参考书籍 参考书籍 34 7 JAVA 领域大师领域大师 Joshua Bloch James Gosling Bruce Eckel 8 Doug Lea Kent Beck Martin Fowler 9 JAVA 领域牛人领域牛人 Rod Johnson Trustin Lee 10 第一层 第一层 JAVA SE 技术招式辨析技术招式辨析 招式招式 1 InputStream OutputStream 和和 Reader Writer 辨析 InputStream OutputStream 1 抽象类 2 面向字节形式的 I O 操作 8 位字节流 Reader Writer 1 抽象类 2 面向字符的 I O 操作 16 位的 Unicode 字符 InputStreamReader 可以将 InputStream 转换为 Reader OutputStreamWriter 可以将 OutputStream 转换为 Writer Figure 1 输入流关系图 Figure 2 输出流关系图 I O 的重定向方法 setIn InputStream setOut OutputStream setErr OutputStream 招式招式 2 Java 的异常的异常体系体系 辨析 对于具体的异常 不应该使用 Throwable 类 而应该使用以下三者之一 其中每个类使用的目的 1 Error 及其子类表示很难恢复的错误 如内存越界 一般不期望用户程序来处理 即使程序员有能力处 理这种错误 也还是交给系统处理为好 2 RuntimeException 及其子类用来表示设计或实现方面的问题 如数组越界等 因为设计和实现正确的程 序不会引发这类异常 所以常常不处理它 发生这类异常时 运行时环境会输出一条信息 提示用户修正 11 错误 3 Exception 其他子类异常表示运行时因环境的影响可能发生并可被处理的问题 如文件没找到或不完整 的 URL 等 因为用户的错误很可能导致这类问题发生 比如用户键入的内容不正确 所以 Java 鼓励程序 员处理它们 Figure 3 Java 异常结构图 招式招式 3 sleep 和和 wait 区别区别 辨析 sleep 是 Thread 类的方法 sleep 执行时不放锁 wait 是 Object 类的方法 wait 执行时放锁 所以必须在 synchronized 方法中调用 Figure 4 Thread 生命周期 招式招式 4 volatile 和和 synchronized 区别区别 辨析 volatile 主要修饰变量 synchronized 主要修饰方法 12 Figure 5 非 volatile 修饰变量 Figure 6 volatile 修饰变量 Figure 7 synchronized 修饰方法 招式招式 5 Thread Runnable 和和 Callable 区别区别 辨析 13 Figure 8 线程创建 3 种方式 招式招式 6 Socket 和和 ServerSocket 区别区别 辨析 Figure 9 socket 通讯原理 招式招式 7 NIO 和和 I O 区别区别 辨析 引自 Thinking in Java 14 Figure 10 NIO 处理流程 招式招式 8 Heap 和和 Stack 区别区别 辨析 heap 保存对象实例 实际上是保存对象实例的属性值 属性的类型和对象本身的类型标记等 并不保存对 象的方法 方法是指令 保存在 stack 中 对象实例在 heap 中分配好以后 需要在 stack 中保存一个 4 字节的 heap 内存地址 用来定位该对象实例 在 heap 中的位置 便于找到该对象实例 stack 基本数据类型包括 byte int char long float double boolean 和 short 函数方法属于指令 Figure 11 Java 堆和栈 招式招式 9 Static Nested Class 和和 Inner Class 区别区别 辨析 15 Figure 12 Inner Class 招式招式 10 Abstract Class 和和 Interface 区别区别 辨析 摘自 Java 官网 招式招式 11 各种基本类型空间大小 各种基本类型空间大小 辨析 摘自 Java 官网 byte The byte data type is an 8 bit signed two s complement integer It has a minimum value of 128 and a maximum value of 127 inclusive The byte data type can be useful for saving memory in large arrays where the memory savings actually matters They can also be used in place of int where their limits help to clarify your code the fact that a variable s range is limited can serve as a form of documentation short The short data type is a 16 bit signed two s complement integer It has a minimum value of 32 768 and a maximum value of 32 767 inclusive As with byte the same guidelines apply you can use a short to save memory in large arrays in situations where the memory savings actually matters int The int data type is a 32 bit signed two s complement integer It has a minimum value of 2 147 483 648 and a maximum value of 2 147 483 647 inclusive For integral values this data type is generally the default choice unless there is a reason like the above to choose something else This data type will most likely be large enough for the numbers your program will use but if you need a wider range of values use long instead long The long data type is a 64 bit signed two s complement integer It has a minimum value of 9 223 372 036 854 775 808 and a maximum value of 9 223 372 036 854 775 807 inclusive Use this data type when you need a range of values wider than those provided by int float The float data type is a single precision 32 bit IEEE 754 floating point Its range of values is beyond the scope of this discussion but is specified in section 4 2 3 of the Java Language Specification As with the recommendations for byte and short use a float instead of double if you need to save memory in large arrays of floating point numbers This data type should never be used for precise values such as currency For that you will need to use the java math BigDecimal class instead Numbers and Strings covers BigDecimal and other useful classes provided by the Java platform double The double data type is a double precision 64 bit IEEE 754 floating point Its range of values is beyond the scope of this discussion but is specified in section 4 2 3 of the Java Language Specification For decimal values this data type is generally the default choice As mentioned above this data type should never be used for precise values such as currency boolean The boolean data type has only two possible values true and false Use this data type for simple flags 16 that track true false conditions This data type represents one bit of information but its size isn t something that s precisely defined char The char data type is a single 16 bit Unicode character It has a minimum value of u0000 or 0 and a maximum value of uffff or 65 535 inclusive Figure 13Java 基本类型 招式招式 12 HashMap HashTable 和和 ConcurrentHashMap 辨析 HashMap 不是线程安全的 HashTable 是线程安全的 ConcurrentHashMap 是线程安全的 效率上 HashMap ConcurrentHashMap HashTable Figure 14HashMap 17 Figure 15 HashTable Figure 16 ConcurrentHashMap 招式招式 13 ThreadLocal 真正含义真正含义 辨析 Figure 17 ThreadLocal 原理 18 招式招式 14 Override 覆盖覆盖 Overload 重载重载 和和 Overwrite 重写重写 辨析 Figure 18 override overload 和 overwrite 区别 招式招式 15 Java 集合关系集合关系 辨析 List 有序可重复 Set 无序不重复 HashXXX 按照地址 hashCode 查找对象 Figure 19 Java 集合关系 招式招式 16 Comparable 和和 Comparator 区别区别 辨析 招式招式 17 Socket 和和 URLConnection 区别区别 辨析 招式招式 18 URI URL 和和 URN 区别区别 辨析 URI Uniform Resource Identifier 统一资源标识符 URL Uniform Resource Locator 统一资源定位符 URN Uniform Resource Name 统一资源名称 19 Figure 20 URI URL 和 URN 招式招式 19 强引用 软引用 弱引用和虚引用 强引用 软引用 弱引用和虚引用 辨析 Figure 21 强引用 软引用 弱引用和虚引用 招式招式 20 ClassLoader 继承关系继承关系 辨析 Figure 22 ClassLoader 继承关系 招式招式 21 Java 正则表达式用法正则表达式用法 辨析 20 招式招式 22 内存分配 内存分配 辨析 Figure 23 内存分配 栈内存 是在线程创建时创建 它的生命周期是跟随线程的生命周期 线程结束栈内存也就释放 对于栈 来说不存在垃圾回收问题 只要线程一结束 该栈就 Over 第二层第二层 JAVA EE 技术招式辨析技术招式辨析 招式招式 1 统计多同客户访问相同 统计多同客户访问相同 URL 那个响应最慢那个响应最慢 辨析 Filter 是 Servlet 过滤器 主要通过个配置文件来灵活声明模块化可重用组件 过滤器动态地处理传入请求 和传出响应 并且无需修改应用代码就可以透明地添加或删除它们 过滤器独立于任何平台或者 Servlet 容器 Filter 接口主要用途如下 参考 J2EE1 4 API Figure 24 Filter 用途 工作原理 21 Figure 25 Filter 工作原理 招式招式 2 Forword 和和 SendRedirect 区别区别 辨析 Forword 仅是容器中控制权的转向 在客户端浏览器地址栏中不会显示出转向后的地址 SendRedirect 则是完全的跳转 浏览器将会得到跳转的地址 并重新发送请求链接 这样 从浏览器的 地址栏中可以看到跳转后的链接地址 Figure 26 SendRedirect 工作原理 22 Figure 27 Forword 工作原理 主要区别 一句话 Forword 转发 是服务器行为 SendRedirect 重定向 是客户端行为 1 request getRequestDispatcher 是请求转发 前后页面共享一个 request response sendRedirect 是重新定向 前后页面不是一个 request 2 RequestDispatcher forward 是在服务器端运行 HttpServletResponse sendRedirect 是通过向客户浏览器发送命令来完成 所以 RequestDispatcher forward 对于浏览器来说是 透明的 而 HttpServletResponse sendRedirect 则不是 3 ServletContext getRequestDispatcher String url 中的 url 只能使用绝对路径 而 ServletRequest getRequestDispatcher String url 中的 url 可以使用相对路径 因为 ServletRequest 具有相对路 径的概念 而 ServletContext 对象无次概念 RequestDispatcher 对象从客户端获取请求 request 并把它们传 递给服务器上的 servlet html 或 jsp 招式招式 3 RMI 和和 WebService 区别区别 辨析 RMI 解决通过同构架构分布式开发问题 WebService 主要解决异构架构分布式开发问题 Figure 28 RMI 客户端和服务端创建 招式招式 4 JMS 分类分类 辨析 Figure 29 JMS Point to Point message 23 Figure 30 JMS Publish Subscribe message 招式招式 5 Cookie 和和 Session 区别区别 辨析 cookie 是保存在客户机上面的 可以设置任意时间的有效期 session 在服务器内存当中 为短对话 招式招式 6 EJB2 和和 EJB3 区别区别 招式招式 7 J2EE 中间件和服务器中间件和服务器 招式招式 8 HTTP 响应状态码响应状态码 辨析 摘自 rfc2616 Request For Comments RFC 即 请求评议 是一系列以编号排定的文件 文件收集了有关因特网相关资讯 以及 UNIX 和因特网社群的软件文件 目前 RFC 文件是由 Internet Society ISOC 所赞助发行 1xx Informational Request received continuing process 2xx Success The action was successfully received understood and accepted 3xx Redirection Further action must be taken in order to complete the request 4xx Client Error The request contains bad syntax or cannot be fulfilled 5xx Server Error The server failed to fulfill an apparently valid request Figure 31 HTTP 响应状态码 第三层第三层 数据库数据库招式辨析招式辨析 招式招式 1 各种主流数据库各种主流数据库 SQL 分页实现分页实现 辨析 24 Figure 32 主流数据库分页 注释 Oracle 如果直接 order by 查询 rownum 和记录顺序不一致 所以利用子查询排序再查询 rownum 是伪列 而且这种排序不适用大数据量时候 关键是先对数据库结果集排序 然后再分页 招式招式 2 悲观锁和乐观锁原理 悲观锁和乐观锁原理 辨析 悲观锁悲观锁 就是对数据的冲突采取一种悲观的态度 也就是说假设数据肯定会冲突 所以在数据开始读取的 时候就把数据锁定住 乐观锁乐观锁 认为数据一般情况下不会造成冲突 所以在数据进行提交更新的时候 才会正式对数据的冲突与 否进行检测 如果发现冲突了 则让用户返回错误的信息 让用户决定如何去做 Figure 33 悲观锁 Figure 34 乐观锁 招式招式 3 数据库隔离级别数据库隔离级别 辨析 招式招式 4 数据库事务传播级别 数据库事务传播级别 辨析 招式招式 5 数据库范式级别 数据库范式级别 辨析 25 招式招式 6 索引失效 索引失效情况情况 辨析 招式招式 7 DDL 和和 DML 区别区别 辨析 DDL Data Definition Language 不可以 rollback DML Data Manipulation Language 可以 rollback Figure 35 DDL 和 DML 第四层第四层 Linux 招式辨析招式辨析 招式招式 1 awk 和和 sed 辨析 awk 是一种优良的文本处理工具 它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎 之一 最简单地说 awk 是一种用于处理文本的编程语言工具 例 awk sun mydoc 显示文本文件 mydoc 匹配 含有 字符串 sun 的所有行 sed 是一种在线编辑器 它一次处理一行内容 处理时 把当前处理的行存储在临时缓冲区中 称为 模式 空间 pattern space 接着用 sed 命令处理缓冲区中的内容 处理完成后 把缓冲区的内容送往屏幕 接 着处理下一行 这样不断重复 直到文件末尾 文件内容并没有改变 除非你使用重定向存储输出 Sed 主要用来自动编辑一个或多个文件 简化对文件的反复操作 编写转换程序等 例 sed 2d example 删除 example 文件的第二行 sed test d example 删除 example 文件所有包含 test 的行 招式招式 2 ps 和和 netstat 第五层第五层 设计模式设计模式招式辨析招式辨析 招式招式 1 经典设计准则 经典设计准则 辨析 1 单一职责原则 SRP 一个类负责一摊事 明确性 26 Figure 36 单一职责原则 SRP 2 里氏替换原则 LSP 父类出现地方 子类可以出现 通用性 Figure 37 里氏替换原则 LSP 3 依赖倒置原则 DIP 依赖接口 不依赖实现类 灵活性 Figure 38 依赖倒置原则 DIP 4 接口隔离原则 ISP 接口应该最小化 粒度性 27 Figure 39 接口隔离原则 ISP 5 迪米特法则 LoD 知识最少化 不和陌生人说话 权限性 Figure 40 迪米特法则 LoD 6 开闭原则 对扩展开放 对修改关闭 Figure 41 开闭原则 招式招式 2 经典经典 Java 设计模式设计模式 辨析 28 Figure 42 经典 Java 设计模式 招式招式 3 经典线程设计模式经典线程设计模式 辨析 Figure 43 经典 Java 线程设计模式 招式招式 4 经典企业设计模式经典企业设计模式 辨析 第六层第六层 算法招式辨析算法招式辨析 29 招式招式 1 递归算法递归算法 辨析 递归 Recursion 一个过程 或函数 直接或间接调用自己本身 这种过程 或函数 叫递归过程 或函数 Figure 44 递归算法步骤 招式招式 2 贪婪算法贪婪算法 辨析 贪婪算法 Greedy algorithm 贪心算法 又称贪婪算法 是指 在对问题求解时 总是做出在当前看来是 最好的选择 也就是说 不从整体最优上加以考虑 他所做出的仅是在某种意义上的局部最优解 贪心算 法不是对所有问题都能得到整体最优解 但对范围相当广泛的许多问题他能产生整体最优解或者是整体最 优解的近似解 Figure 45 贪心算法 招式招式 3 动态规划算法动态规划算法 辨析 招式招式 4 回溯算法 回溯算法 辨析 招式招式 5 分支界限算法 分支界限算法 辨析 招式招式 6 各种内排序算法 各种内排序算法 30 辨析 第七层第七层 网络安全招式辨析网络安全招式辨析 招式招式 1 三次握手建立稳定连接三次握手建立稳定连接 辨析 Figure 46 三次握手 招式招式 2 SSL 原理原理 辨析 SSL 原理 第一步 获取公钥 乙有一对密钥 一个是公开的 另一个是私有的 甲向乙发送连接请求 乙做出回应 并把他的公钥发送 给甲 甲 乙 你好 乙 甲 你好 这是我的公钥 乙的公钥 第二步 验证身份 甲产生一段随机的消息 然后把他发给乙 乙用自己的私钥从随机消息构造一个消息摘要 然后加密它 再把加密后的消息返回给甲 甲接到了这段消息 然后用乙的公钥来解密 甲使用乙的公钥可以从原消息 计算出相同的摘要 通过与解密乙的消息对比 就可以认证乙的身份 一个入侵者应该不知道乙的私钥 因此就不能正确地加密那段甲要检查的随机消息 甲 乙 随机信息 乙 甲 根据随机信息 用私钥加密得到的信息 第三步 交换密码 一旦甲认证了乙 他就可以做另外一件事 向乙发送一条只有乙才能解码的消息 消息中包含一个由甲 产生的密码 甲 乙 用乙的公钥加密的密码 甲向乙发送的密码使用乙的公钥加密了 要解读这个密码的唯一方法就是用乙的私钥来解密上面的消息 除了乙 其他人都无法得到这个密码 甲也知道这个密码 因为这是自己在发送给乙之前产生的 他们都 知道这个秘密 所以他们就可以初始化一个对称的密码算法然后开始传输用该密码加密的消息 第四步 传输加密消息 甲和乙使用只有他们两者才知道的密码 使用对称密码算法对需要发送信息进行加密 同样 只有他们才 31 能正确解密收到的加密信息 从而实现安全的数据传输 甲 乙 加密消息 乙 甲 加密消息 Figure 47 SSL 原理 招式招式 3 HTTPS 和和和和 HTTP 的区别的区别 辨析 一 https 协议需要到 ca 申请证书 一般免费证书很少 需要交费 http 不需要 二 http 是超文本传输协议 信息是明文传输 https 则是具有安全性的 ssl 加密传输协议 三 http 和 https 使用的是完全不同的连接方式 用的端口也不一样 前者是 80 后者是 443 四 http 的连接很简单 是无状态的 HTTPS 协议是由 SSL HTTP 协议构建的可进行加密传输 身份认 证的网络协议 比 http 协议安全 招式招式 4 数字证书 数字证书 辨析 招式招式 5 加密解密算法加密解密算法 辨析 第八层第八层 开源框架招式辨析开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论