《Java 应用与开发》课程讲义 - 王晓东
段、 不可到达阶段、可收集阶段、终结阶段、释放阶段。 Java 需要内存管理,在 JVM 中运行的对象的整个生命周期中,进行人为的内存管 理是必要的,主要原因体现在: • 虽然 JVM 已经代替开发者完成了对内存的管理,但是硬件本身的资源是有限的。 • 如果 Java 的开发人员不注意内存的使用依然会造成较高的内存消耗,导致性能 的降低。 6.3.2 JVM 内存溢出和参数调优 当遇到 OutOfMemoryError (3rd) 教学目标 1. 掌握抽象类和接口的概念、特性及定义方法 2. 理解抽象类和接口的异同和作用 3. 了解嵌套类的分类,掌握嵌套类中静态嵌套类和匿名嵌套类的概念 4. 掌握匿名内部类的特征、继承和接口实现的用法 5. 掌握枚举类型的使用方法 授课方式 理论课: 多媒体教学、程序演示 实验课: 上机编程 69 7.1. 抽象类 � 7 � 教学内容 7.1 抽象类 7 . . . . . . . . . . . . . . . 中国海洋大学信息学院计算机系 第 77 页 / 共 306 页 7.4. 嵌套类 � 7 � 7.4.2 静态嵌套类 静态嵌套类的特征 • 静态嵌套类不再依赖/引用外层类的特定对象,只是隐藏在另一个类中而已。 • 由于静态嵌套类的对象不依赖外层类的对象而独立存在,因而可以直接创建,进 而也就无法在静态嵌套类中直接使用其外层类的非0 码力 | 330 页 | 6.54 MB | 1 年前3Nacos架构&原理
阿里云开发者“藏经阁” 海量电子手册免费下载 特别鸣谢: 目录 作者 6 推荐序 7 前⾔ 9 序言 9 简介 13 Nacos 简介 13 Nacos 架构 17 Nacos 总体设计 17 Nacos 架构 17 Nacos 配置模型 21 Nacos 内核设计 28 Nacos ⼀致性协议 28 Nacos 自研 Distro 协议 38 Nacos 通信通道 年的阿里五彩石项目,自主研发完全可控,经历十多年双 11 洪峰考验,沉淀了高性能、 高可用、可扩展的核心能力,2018 年开源后引起了开发者的广泛关注和大量使用。本书也将介绍 Nacos 偏 AP 分布式系统的设计、全异步事件驱动的高性能架构和面向失败设计的高可用设计理念 等。相信开发者阅读后不仅可以更深入了解 Nacos,也有助于提高分布式系统的设计研发能力。 阿里巴巴中间件负责人 - 胡伟琪(白慕) 进性、功能丰富度以及性能方面均 有非常出色的积累,2018 年初中间件团队决定把这⼀领域的技术进行重新梳理并开源,这就是本书 介绍的主角 Nacos,经过三年时间的发展,Nacos 已经被大量开发者和企业客户用于生产环境,本 书详尽介绍了 Nacos 的架构设计、功能使用和最佳实践,推荐分布式应用的开发人员、运维人员和 对该领域感兴趣的技术爱好者阅读。 推荐序 < 8 Facebook0 码力 | 326 页 | 12.83 MB | 9 月前3Java 应用与开发 - JSP (Java Server Page)
概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 JSP 指令 JSP 指令指示一个 JSP 页面的属性和特征,JSP 指令不会产生 任何的输出到当前输出流中。 O JSP 指令 ▶ page 指令,用于定义 JSP 页面级的其他元素特征。 ▶ include 指令,用于嵌入另一个文本文件的内容到本页面。 ▶ taglib 指令,用于引入第三方 JSP 扩展标记类库。0 码力 | 47 页 | 740.36 KB | 1 年前3JAVA 应用与开发 - 高级类特性
定义�方法�����的类����部 类� 匿名内部类 定义�方法�������类��名�� ������������� (仅讲授包含静态嵌套类和匿名内部类,其他自行学习) 20 29 ����类 O 静态嵌套类的特征 ����类����/�用��类�特����������� �类���� ������类的�象�����类的�象�������� ���接��������法�����类��接����� 类的� static0 码力 | 61 页 | 677.55 KB | 1 年前3Apache Shiro 1.2.x Reference Manual 中文翻译
足用户的需求,即使“用户(User)”是另 外一个软件系统而并非一个人,你仍然要写代码对当前与你软件交互的谁(或者什么)的动 作进行回应。 Shiro 从它的设计中表现了这种理念,为了与软件开发者的直觉相配合,Apache Shiro 在几乎 所有程序中保留了直观和易用的特性。 High-Level Overview 高级概述 在概念层,Shiro 架构包含三个主要的理念:Subject )紧紧套牢了。JAAS 有太多的缺点 - 尽管它的认证功能 尚可忍受,但授权方面却显得拙劣,用起来令人沮丧。此外,JAAS 跟虚拟机层面的安全问题 关系非常紧密,如判断 JVM 中是否允许装入一个类。作为应用开发者,我更关心应用最终用 户能做什么,而不是我的代码在 JVM 中能做什么。 Apache Shiro 1.2.x Reference Manual 中文翻译 177 22. Application 得Subject,你就可以立即获得你希望用 Shiro为 当前用户做的90% 的事情,如登录、 登出、访问会话、执行授权检查等——稍后还会看到更多。这里的关键点是Shiro的API非常 直观,因为它反映了开发者以‘每个用户’思考安全控制的自然趋势。同时,在代码的任何地方 都能很轻松地访问Subject,允许在任何需要的地方进行安全操作。 SecurityManager Subject 的“幕后”推手是0 码力 | 196 页 | 2.34 MB | 1 年前3Apache Shiro参考手册中文版
Credentials(凭证)通常是只被 Subject 知道的秘密值,它用来作为一种起支持作用的证据,此证据事实上 包含着所谓的身份证明。一些常见 credentials(凭证)的例子有密码,生物特征数据如指纹和视网膜扫描, 以及 X.509 证书。 principal/credential 配对最常见的例子是用户名和密码。用户名是所声称的身份,密码是匹配所声称的身份的 证明。如果提交的密码 的关键区别是输入的字符串是一个角色名,而不是一个权限字符串。 RolePermissionResolver 能够在 Realm 内部使用,当需要将一个角色名转换成一组具体的权限实例时。 这是一个特别有用的特征用来支持旧的或不灵活的,可能没有权限概念的数据源。 例如,许多 LDAP 目录存储了角色名(或组名),但是不支持关联角色名到具体的权限由于他们没有“权限”的概 念。一个基于 Shiro 的应用程序能够使用存储在0 码力 | 92 页 | 1.16 MB | 1 年前3Hello 算法 1.1.0 Java版
或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例, 足无后效性。对于这类问题,我们通常会选择使 用其他方法,例如启发式搜索、遗传算法、强化学习等,从而在有限时间内得到可用的局部最优解。 14.3 动态规划解题思路 上两节介绍了动态规划问题的主要特征,接下来我们一起探究两个更加实用的问题。 1. 如何判断一个问题是不是动态规划问题? 2. 求解动态规划问题该从何处入手,完整步骤是什么? 14.3.1 问题判断 总的来说,如果一个问题包含 问题的状态能够使用一个列表、多维矩阵或树来表示,并且一个状态与其周围的状态存在递推关系。 相应地,也存在一些“减分项”。 ‧ 问题的目标是找出所有可能的解决方案,而不是找出最优解。 ‧ 问题描述中有明显的排列组合的特征,需要返回具体的多个方案。 如果一个问题满足决策树模型,并具有较为明显的“加分项”,我们就可以假设它是一个动态规划问题,并在 求解过程中验证它。 第 14 章 动态规划 hello‑algo.com0 码力 | 378 页 | 18.47 MB | 1 年前3Hello 算法 1.2.0 简体中文 Java 版
或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例, 足无后效性。对于这类问题,我们通常会选择使 用其他方法,例如启发式搜索、遗传算法、强化学习等,从而在有限时间内得到可用的局部最优解。 14.3 动态规划解题思路 上两节介绍了动态规划问题的主要特征,接下来我们一起探究两个更加实用的问题。 1. 如何判断一个问题是不是动态规划问题? 2. 求解动态规划问题该从何处入手,完整步骤是什么? 14.3.1 问题判断 总的来说,如果一个问题包含 问题的状态能够使用一个列表、多维矩阵或树来表示,并且一个状态与其周围的状态存在递推关系。 相应地,也存在一些“减分项”。 ‧ 问题的目标是找出所有可能的解决方案,而不是找出最优解。 ‧ 问题描述中有明显的排列组合的特征,需要返回具体的多个方案。 如果一个问题满足决策树模型,并具有较为明显的“加分项”,我们就可以假设它是一个动态规划问题,并在 求解过程中验证它。 第 14 章 动态规划 www.hello‑algo0 码力 | 379 页 | 18.48 MB | 10 月前3Hello 算法 1.0.0b4 Java版
无后效性。对于这类问题,我们通常会选择 使用其他方法,例如启发式搜索、遗传算法、强化学习等,从而在有限时间内得到可用的局部最优解。 14.3. 动态规划解题思路 上两节介绍了动态规划问题的主要特征,接下来我们一起探究两个更加实用的问题: 1. 如何判断一个问题是不是动态规划问题? 2. 求解动态规划问题该从何处入手,完整步骤是什么? 14.3.1. 问题判断 总的来说,如果一个问题包 问题的状态能够使用一个列表、多维矩阵或树来表示,并且一个状态与其周围的状态存在递推关系。 而相应的“减分项”包括: ‧ 问题的目标是找出所有可能的解决方案,而不是找出最优解。 ‧ 问题描述中有明显的排列组合的特征,需要返回具体的多个方案。 如果一个问题满足决策树模型,并具有较为明显的“加分项“,我们就可以假设它是一个动态规划问题,并 在求解过程中验证它。 14. 动态规划 hello‑algo.com 2820 码力 | 342 页 | 27.39 MB | 1 年前3Java 应用与开发 - 类加载和反射
lang.Class 对象。 (类是某一类对象的抽象,都是 java.lang.Class 的实例) O 类加载的要点 ▶ JVM 提供类加载器(系统类加载器)来完成对类的加载。 ▶ 此外,开发者可以通过继承 ClassLoader 基类来创建自己的 类加载器。 ▶ 可以从本地文件系统、jar 包和网络方式加载类的 class 文 件。 ▶ 类加载器通常无须等到“首次使用”该类时才加载此类,0 码力 | 46 页 | 714.40 KB | 1 年前3
共 16 条
- 1
- 2