《Java 应用与开发》课程讲义 - 王晓东. . . . 47 5.1.2 多态用法示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.1.3 虚方法调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.1.4 对象造型 . . . . . . . . . . . . . 49 5.1.5 instanceof 运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.1.6 虚方法调用和造型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2 方法重载 . . . . . . . . . . . . . . . . . . . . 51 5.2.1 方法重载的概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2.2 调用重载的构造方法 . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2.3 对象构造/初始化细节 . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Nacos架构&原理
数据变化异步通知等逻辑,是 Nacos 高性能的关键部分。 日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮 助文档。 回调机制:SDK 通知数据,通过统⼀的模式回调用户处理。接口和数据结构需要具备可扩展性。 寻址模式:解决 Server IP 直连,域名访问,Nameserver 寻址、广播等多种寻址模式,需要可 扩展。 推送通道:解决 Server 个节点之间的数据能够达成⼀致。 上述的都是针对于 Nacos 服务发现注册中的非持久化服务而言(即需要客户端上报心跳进行服务实 例续约)。而对于 Nacos 服务发现注册中的持久化服务,因为所有的数据都是直接使用调用 Nacos 服务端直接创建,因此需要由 Nacos 保障数据在各个节点之间的强⼀致性,故而针对此类型的服务 数据,选择了强⼀致性共识算法来保障数据的⼀致性。 从配置管理来看 配置数据,是直接在 数据同步,需要异步 RPC 带 ack 能力。 三、长链接核心诉求 45 > Nacos 架构 1. 功能性诉求 客户端 连接生命周期实时感知能力,包括连接建立,连接断开事件。 客户端调用服务端支持同步阻塞,异步 Future,异步 CallBack 三种模式。 底层连接自动切换能力。 响应服务端连接重置消息进行连接切换。 选址/服务发现。 服务端 连接生命0 码力 | 326 页 | 12.83 MB | 9 月前3
Java 应用与开发 - Java EE 体系结构规范 Java EE 规范定义了面向 Internet 的企业级软件应用的组成部 分和各组成部分之间的交互协议。 ▶ 容器规范 容器(Container)是组件的运行环境,负责组件的生命周期 管理和调用。 ▶ 组件规范 ▶ 服务规范 ▶ 通信协议规范 ▶ 开发角色规范 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 Java EE 规范 组件规范 组件(Component)是 Java EE 应用的标准化部件,完成系 统的业务和逻辑功能,在 Java EE 应用中组件运行在容器 内,由容器管理组件的创建、调用和销毁整个生命周期。在 Java EE 应用中组件之间是不能直接调用的,必须通过容器 完成。 ▶ 服务规范 ▶ 通信协议规范 ▶ 开发角色规范 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 Java EE 容器 Java EE 组件 组件间通信协议 Java EE 容器(Container) O 容器的功能 ▶ 容器是运行组件的环境对象,提供了组件运行所需要的服 务,并管理组件的生成、调用和销毁整个生命周期。 ▶ 在 Java EE 规范下,所有 Java EE 组件都由容器来创建和 销毁。 O 容器的优势 ▶ 简化了企业级软件开发中复杂的对象管理事务; ▶ 克服了 C++ 语言等内存泄漏缺陷;0 码力 | 40 页 | 1.89 MB | 1 年前3
Java 应用与开发 - 线程编程接口,重写其中的 run() 方法,加 入所需的处理逻辑; 2. 创建 Runable 接口实现类的对象; 3. 创建 Thread 类的对象(封装 Runable 接口实现类型对象); 4. 调用 Thread 对象的 start() 方法,启动线程。 课程配套代码 ± sample.thread.FirstThreadSample.java 大纲 线程基础 线程控制 线程的同步 创建线程 接口,重写其中的 run() 方法,加 入所需的处理逻辑; 2. 创建 Runable 接口实现类的对象; 3. 创建 Thread 类的对象(封装 Runable 接口实现类型对象); 4. 调用 Thread 对象的 start() 方法,启动线程。 课程配套代码 ± sample.thread.FirstThreadSample.java 大纲 线程基础 线程控制 线程的同步 创建线程 接口,重写其中的 run() 方法,加 入所需的处理逻辑; 2. 创建 Runable 接口实现类的对象; 3. 创建 Thread 类的对象(封装 Runable 接口实现类型对象); 4. 调用 Thread 对象的 start() 方法,启动线程。 课程配套代码 ± sample.thread.FirstThreadSample.java 大纲 线程基础 线程控制 线程的同步 创建线程0 码力 | 82 页 | 1010.73 KB | 1 年前3
Java 应用与开发 - MVC 和框架初步Control 层传递到 View 层,一个个生龙活虎的 Java 对象, 又如何在页面上以各种各样的形式展现出来。 ▶ 如果你试图将数据请求从 View 层发送到 Control 层,你如何才 能知道你要调用的究竟是哪个类,哪个方法?一个 HTTP 的请求, 又如何与 Control 层的 Java 代码建立起关系来? 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 Control 层传递到 View 层,一个个生龙活虎的 Java 对象, 又如何在页面上以各种各样的形式展现出来。 ▶ 如果你试图将数据请求从 View 层发送到 Control 层,你如何才 能知道你要调用的究竟是哪个类,哪个方法?一个 HTTP 的请求, 又如何与 Control 层的 Java 代码建立起关系来? 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题 Control 层传递到 View 层,一个个生龙活虎的 Java 对象, 又如何在页面上以各种各样的形式展现出来。 ▶ 如果你试图将数据请求从 View 层发送到 Control 层,你如何才 能知道你要调用的究竟是哪个类,哪个方法?一个 HTTP 的请求, 又如何与 Control 层的 Java 代码建立起关系来? 大纲 Java Web 应用的开发演化 经典 MVC 框架 - Struts 2 本节习题0 码力 | 51 页 | 837.26 KB | 1 年前3
Apache Shiro参考手册中文版对工厂设计模式的支持。classpath: 前缀是一个资源定位符,用来告诉 shiro 去哪加载 ini 文件(其 他前缀,如 url:和 file:也同样被支持)。 2. factory.getInstance()方法被调用,它来解析 INI 文件并返回反映该配置的 SecurityManager 实例。 3. 在这个简单的例子中,我们把 SecurityManager 设置为一个静态的(memory)单例,能够跨 JVM 因此,对于我们考虑应用程序安全的最自然的方式是基于当前用户。 Shiro 的 API 使用它的 Subject 概念从根本上代表了“当前用户”的概念。 几乎在所有的环境中,你可以通过下面的调用获取当前正在执行的用户: 使用 SecurityUtils.getSubject(),我们可以获得当前正在执行的 Subject。Subject 是一个安全术语,它基本上的意思是 account,或其他类似的东西。它仅仅 意味着“该事物目前正与软件交互”。对于大多数的意图和目的,你可以把 Subject 看成是 Shiro 的"User"概念。 getSubject()在一个独立的应用程序中调用,可以返回一个在应用程序特定位置的基于用户数据的 Subject,并且在服 务器环境中(例如,Web 应用程序),它获取的 Subject 是基于关联了当前线程或传入请求的用户数据的。 现在你拥有了一个0 码力 | 92 页 | 1.16 MB | 1 年前3
Java 应用与开发 - 异常处理它们何时发生(如果能检测,就可以再用户的代码里处理 了,不用留给库去发现)。 提供异常处理机制的的基本思想 让一个函数在发现了自己无法处理的错误时抛出(throw)一个 异常,然后它的(直接或者间接)调用者能够处理这个问题。 O 《C++ primer》 将问题检测和问题处理相分离。 (Exceptions let us separate problem detection from problem 它们何时发生(如果能检测,就可以再用户的代码里处理 了,不用留给库去发现)。 提供异常处理机制的的基本思想 让一个函数在发现了自己无法处理的错误时抛出(throw)一个 异常,然后它的(直接或者间接)调用者能够处理这个问题。 O 《C++ primer》 将问题检测和问题处理相分离。 (Exceptions let us separate problem detection from problem 它们何时发生(如果能检测,就可以再用户的代码里处理 了,不用留给库去发现)。 提供异常处理机制的的基本思想 让一个函数在发现了自己无法处理的错误时抛出(throw)一个 异常,然后它的(直接或者间接)调用者能够处理这个问题。 O 《C++ primer》 将问题检测和问题处理相分离。 (Exceptions let us separate problem detection from problem0 码力 | 33 页 | 626.40 KB | 1 年前3
Java 应用与开发 - Java GUI 编程类的显示效果是一个标准的图形窗口,它封装了 GUI 组 件的各种属性信息,如尺寸、可见性等。 1. Frame 对象的显示效果是一个可自由停泊的顶级“窗口”, 带有标题和尺寸重置角标。 2. Frame 默认初始化为不可见的,可以调用 Frame 对象的 setVisible(true) 方法使之变为可见。 3. 作为容器 Frame 还可使用 add() 方法包含其他组件。 课程配套代码 ± sample.awt.FrameSample 类的显示效果是一个标准的图形窗口,它封装了 GUI 组 件的各种属性信息,如尺寸、可见性等。 1. Frame 对象的显示效果是一个可自由停泊的顶级“窗口”, 带有标题和尺寸重置角标。 2. Frame 默认初始化为不可见的,可以调用 Frame 对象的 setVisible(true) 方法使之变为可见。 3. 作为容器 Frame 还可使用 add() 方法包含其他组件。 课程配套代码 ± sample.awt.FrameSample GUI 事件处理 Applet Swing Swing 典型组件(课后自学) 布局管理器 ▶ 每个容器都有一个布局管理器,当容器需要对某个组件进行 定位或判断其大小尺寸时,就会调用其对应的布局管理器。 ▶ 可以在容器创建后调用其 setLayout() 方法设置其布局管理 器类型。 ▶ Container 类型容器没有默认的布局管理器,即其 layoutMgr 属性为 null,在其子类中才进行分化。0 码力 | 73 页 | 876.31 KB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译Pattern(工厂模式)。classpath:资源的指示前缀,告诉 shiro 从哪里加载 ini 文件(其 它前缀,如 url:和 file: 也被支持)。 2.factory.getInstance() 方法被调用,该方法分析 INI 文件并根据配置文件返回一个 SecurityManager 实例。 3.在这个简单示例中,我们将 SecurityManager 设置成了static (memory) singleton,可以通 中,“Subject”可以认为是一个人,也可以认为是第三方进程、时钟守护任务、守护进程帐户 或者其它。它可简单描述为“当前和软件进行交互的事件”,在大多数情况下,你可以认为它是 一个“人(User)”。 在一个独立的程序中调用 getSubject() 会在程序指定位置返回一个基于用户数据的 Subject, 在服务器环境(如 web 程序)中,它将获取一个和当前线程或请求相关的基于用户数据的 Subject。 现 如同我们在架构(Architecture )中讨论过的,Shiro SecurityMangger 本质上是一个由一套 安全组件组成的对象模块视图(graph),因为与 JavaBean兼容,所以可以对所有这些组件 调用的 getter 和 setter 方法来配置SecurityManager 和它的内部对象视图。 例如,你想用一个自定义的 SessionDAO 来定制 Session Management从而配置一个0 码力 | 196 页 | 2.34 MB | 1 年前3
Hello 算法 1.0.0b1 Java版关刷题心得可以 在各个社区中找到。 作为一本入门教程,本书内容主要对应“第一阶段”,致力于帮助你更高效地开展第二、三阶段的学习。 Figure 0‑2. 算法学习路线 0.2.2. 行文风格约定 标题后标注 * 的是选读章节,内容相对较难。如果你的时间有限,建议可以先跳过。 文章中的重要名词会用「括号」 标注,例如「数组 Array」 。建议记住这些名词,包括英文翻译,以便后续阅 读文献时使用。 是一个已排序的「数组」;而从算法角度,我们可将上述查字典的一系列指令看作是「二分查找」算法。 小到烹饪一道菜、大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现,使我们可以通过编程将 数据结构存储在内存中,也可以编写代码来调用 CPU, GPU 执行算法,从而将生活中的问题搬运到计算机中, 更加高效地解决各式各样的复杂问题。 � 读到这里,如果你感到对数据结构、算法、数组、二分查找等此类概念一知半解,那么就太好 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 1. 引言 hello‑algo.com 11 � 约定俗成的简称 在实际讨论中,我们通常会将「数据结构与算法」直接简称为「算法」。例如,我们熟称的 LeetCode 算法题目,实际上同时考察了数据结构和算法两部分知识。 1.3. 小结 ‧ 算法0 码力 | 186 页 | 14.71 MB | 1 年前3
共 37 条
- 1
- 2
- 3
- 4













