《Java 应用与开发》课程讲义 - 王晓东完全相同。 工具条 工具条是用于显示常见组件的条形容器,一般用法是向工具条中添加一系列图 标形式的按钮,并将之置于窗口上方边缘。例如,BorderLayout 布局的北部区域, 对于大多数的外观,用户可以用鼠标直接将工具栏拖到 BorderLayout 布局的其他 未添加组件的边缘区域,如西部或东部,也可以将之拖出到单独的窗口中显示。 示例代码:TestSwing.java 1 import java 输出流则只能向其写出数据,而不能从中读取数据。 •(特例 java.io.RandomAccessFile 类) 根据数据流所关联的是数据源还是其他数据流 可分为节点流(Node Stream)和处理流(Processing Stream)。 • 节点流直接连接到数据源; • 处理流是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现增强 的数据读/写功能,处理流并不直接连到数据源。 按传输数据的“颗粒大小” 共 306 页 13.2. 基础 I/O 流 � 13 � Howareyou? Imissyou. h o w 文件 read() 节点流FileReader 处理流BufferedReader readLine() 节点流与处理流的连接 图 13.1 InputStream 和 OutputStream • 字节流以字节为单位传输数据,每次传送一个或多个字节。 •0 码力 | 330 页 | 6.54 MB | 1 年前3
Nacos架构&原理
这里面其中有⼀个关键点是软负 载。因为整个分布式架构需要有⼀个软负载来协作各个节点之间的服务在线离线状态、数据⼀致性、 以及动态配置数据的推送。这里面最简单的需求就是将⼀个配置准时的推送到不同的节点。即便如 此简单需求,随着业务规模变大也会变的非常复杂。如何能将数据准确的在 3 秒钟之内推送到每⼀ 个计算节点,这是当时提出的⼀个要求,围绕这个要求,系统要做大量的研发和改造,类似的这种 关 障各个节点之间 的数据⼀致性以及数据同步,而要解决这个问题,就不得不引入共识算法,通过算法来保障各个节 点之间的数据的⼀致性。 为什么 Nacos 选择了 Raft 以及 Distro 为什么 Nacos 会在单个集群中同时运行 CP 协议以及 AP 协议呢?这其实要从 Nacos 的场景出 发的:Nacos 是⼀个集服务注册发现以及配置管理于⼀体的组件,因此对于集群下,各个节点之间 因此,为了满足服务发现注册中心的可用性,强⼀致性的共识算法这里就不太合适了,因为强⼀致 性共识算法能否对外提供服务是有要求的,如果当前集群可用的节点数没有过半的话,整个算法直 接“罢工”,而最终⼀致共识算法的话,更多保障服务的可用性,并且能够保证在⼀定的时间内各 个节点之间的数据能够达成⼀致。 上述的都是针对于 Nacos 服务发现注册中的非持久化服务而言(即需要客户端上报心跳进行服务实 例续约)。而对于0 码力 | 326 页 | 12.83 MB | 9 月前3
Java 应用与开发 - Java GUI 编程条中添加一系列图标形式的按钮,并将之置于窗口上方边 缘。例如,BorderLayout 布局的北部区域,对于大多数的外 观,用户可以用鼠标直接将工具栏拖到 BorderLayout 布局 的其他未添加组件的边缘区域,如西部或东部,也可以将之 拖出到单独的窗口中显示。 大纲 GUI 组件及布局 GUI 事件处理 Applet Swing Swing 典型组件(课后自学) Swing 按钮、菜单和工具条0 码力 | 73 页 | 876.31 KB | 1 年前3
Hello 算法 1.0.0 Java版quadraticRecur(n - 1); } 图 2‑18 递归函数产生的平方阶空间复杂度 4. 指数阶 ?(2?) 指数阶常见于二叉树。观察图 2‑19 ,层数为 ? 的“满二叉树”的节点数量为 2? − 1 ,占用 ?(2?) 空间: // === File: space_complexity.java === /* 指数阶(建立满二叉树) */ TreeNode buildTree(int 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出“祖先”与“后代”之间的派生关系;图则由节点 和边构成,反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上呈 线性排列;非线性结构则相反,呈非线性排列。 ‧ 线性 list」是一种线性数据结构,其中的每个元素都是一个节点对象,各个节点通过“引用”相连接。 引用记录了下一个节点的内存地址,通过它可以从当前节点访问到下一个节点。 第 4 章 数组与链表 hello‑algo.com 73 链表的设计使得各个节点可以分散存储在内存各处,它们的内存地址无须连续。 图 4‑5 链表定义与存储方式 观察图 4‑5 ,链表的组成单位是「节点 node」对象。每个节点都包含两项数据:节点的“值”和指向下一节0 码力 | 376 页 | 17.59 MB | 1 年前3
Hello 算法 1.1.0 Java版quadraticRecur(n - 1); } 图 2‑18 递归函数产生的平方阶空间复杂度 4. 指数阶 ?(2?) 指数阶常见于二叉树。观察图 2‑19 ,层数为 ? 的“满二叉树”的节点数量为 2? − 1 ,占用 ?(2?) 空间: // === File: space_complexity.java === /* 指数阶(建立满二叉树) */ TreeNode buildTree(int 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出“祖先”与“后代”之间的派生关系;图则由节点 和边构成,反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上呈 线性排列;非线性结构则相反,呈非线性排列。 ‧ 线性 list)是一种线性数据结构,其中的每个元素都是一个节点对象,各个节点通过“引用”相连接。 引用记录了下一个节点的内存地址,通过它可以从当前节点访问到下一个节点。 第 4 章 数组与链表 hello‑algo.com 73 链表的设计使得各个节点可以分散存储在内存各处,它们的内存地址无须连续。 图 4‑5 链表定义与存储方式 观察图 4‑5 ,链表的组成单位是节点(node)对象。每个节点都包含两项数据:节点的“值”和指向下一节0 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0b4 Java版return quadraticRecur(n - 1); } Figure 2‑12. 递归函数产生的平方阶空间复杂度 指数阶 ?(2?) 指数阶常见于二叉树。高度为 ? 的「满二叉树」的节点数量为 2? − 1 ,占用 ?(2?) 空间。 // === File: space_complexity.java === /* 指数阶(建立满二叉树) */ 2. 复杂度 hello‑algo 逻辑结构:线性与非线性 「逻辑结构」揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照顺序依次排列,体现了数据之间的 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 「链表 Linked List」是一种线性数据结构,其每个元素都是一个节点对象,各个节点之间通过指针连接,从 当前节点通过指针可以访问到下一个节点。由于指针记录了下个节点的内存地址,因此无需保证内存地址的 连续性,从而可以将各个节点分散存储在内存各处。 链表「节点 Node」包含两项数据,一是节点「值 Value」,二是指向下一节点的「指针 Pointer」,或称「引 用 Reference」。0 码力 | 342 页 | 27.39 MB | 1 年前3
Hello 算法 1.0.0b5 Java版quadraticRecur(n - 1); } 图 2‑18 递归函数产生的平方阶空间复杂度 4. 指数阶 ?(2?) 指数阶常见于二叉树。观察图 2‑19 ,高度为 ? 的“满二叉树”的节点数量为 2? − 1 ,占用 ?(2?) 空间: // === File: space_complexity.java === /* 指数阶(建立满二叉树) */ TreeNode buildTree(int 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照顺序依次排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构成, 反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可被分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上 呈线性排列;非线性结构则相反,呈非线性排列。 ‧ 线 元素都是一个节点对象,各个节点通过“引用”相连接。 引用记录了下一个节点的内存地址,通过它可以从当前节点访问到下一个节点。 链表的设计使得各个节点可以被分散存储在内存各处,它们的内存地址是无须连续的。 图 4‑5 链表定义与存储方式 观察图 4‑5 ,链表的组成单位是「节点 node」对象。每个节点都包含两项数据:节点的“值”和指向下一节 点的“引用”。 ‧ 链表的首个节点被称为“头节点”,最后一个节点被称为“尾节点”。0 码力 | 376 页 | 30.69 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Java 版quadraticRecur(n - 1); } 图 2‑18 递归函数产生的平方阶空间复杂度 4. 指数阶 ?(2?) 指数阶常见于二叉树。观察图 2‑19 ,层数为 ? 的“满二叉树”的节点数量为 2? − 1 ,占用 ?(2?) 空间: // === File: space_complexity.java === /* 指数阶(建立满二叉树) */ TreeNode buildTree(int 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出“祖先”与“后代”之间的派生关系;图则由节点 和边构成,反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上呈 线性排列;非线性结构则相反,呈非线性排列。 ‧ 线性 素都是一个节点对象,各个节点通过“引用”相连接。 引用记录了下一个节点的内存地址,通过它可以从当前节点访问到下一个节点。 第 4 章 数组与链表 www.hello‑algo.com 73 链表的设计使得各个节点可以分散存储在内存各处,它们的内存地址无须连续。 图 4‑5 链表定义与存储方式 观察图 4‑5 ,链表的组成单位是节点(node)对象。每个节点都包含两项数据:节点的“值”和指向下一节0 码力 | 379 页 | 18.48 MB | 10 月前3
Java 源码剖析——彻底搞懂Reference 和ReferenceQueueeference对象的next域去找下一个元 。 主要成员有: private volatile Reference extends T> head = null; 用来存储当前需要被处理的节点 static ReferenceQueue NULL = new Null<>(); static ReferenceQueue ENQUEUED = new Null<>(); static //将引用实例的成员queue置为ENQUEUED r.queue = ENQUEUED; //若头节点为空,说明该引用实例为队列中的第一个元素,将它的next实例等于this //若头节点不为空,将它的next实例指向头节点指向的元素 r.next = (head == null) ? r : head; //头节点指向当前引用实例 head = r; //length+1 ReferenceQueue 简单来说,入队操作就是将每次需要入队的引用实例放在头节点的位置,并将它的next域指向旧的头 点元素。因此整个ReferenceQueue是一个后进先出的数据结构。 出队的逻辑为: r指向头节点元素 Reference extends T> r = head; if (r != null) { //头节点指向null,如果队列中只有一个元素;否则指向r.next0 码力 | 6 页 | 283.24 KB | 1 年前3
Java 应用与开发 - 高级 I/O 编程根据数据流所关联的是数据源还是其他数据流 可分为节点流(Node Stream)和处理流(Processing Stream)。 ▶ 节点流直接连接到数据源; ▶ 处理流是对一个已存在的流的连接和封装,通过所封装的流 的功能调用实现增强的数据读/写功能,处理流并不直接连 到数据源。 Howareyou? Imissyou. h o w 文件 read() 节点流FileReader 处理流BufferedReader 处理流BufferedReader readLine() 节点流与处理流的连接 大纲 Java I/O 原理 基础 I/O 流 常用 I/O 流类型 I/O 应用 Java I/O 流的分类 O 按传输数据的“颗粒大小” 可分为字符流(Character Stream)和字节流(Byte Stream)。 ▶ 字节流以字节为单位传输数据,每次传送一个或多个字节。 ▶ 字符流以字符为单位传输数据,每次传送一个或多个字符。10 码力 | 27 页 | 609.17 KB | 1 年前3
共 13 条
- 1
- 2













