Java
文章平均质量分 94
希斯奎
在这个数字化时代,Python、人工智能、华为ICT和Java等领域正在以前所未有的速度发展,为人们的生活和工作带来了巨大的变革。我的博客将为你提供最新的资讯、深入的技术分析和实用的解决方案,帮助你更好地理解和应用这些技术,提升你的工作效率和创造力。
展开
-
Java核心知识点整理大全27-笔记(已完结)
在日常使用 Linux 或者 macOS 时,我们并没有运行多个完全分离的服务器的 需要,但是如果我们在服务器上启动了多个服务,这些服务其实会相互影响的,每一个服务都能 看到其他服务的进程,也可以访问宿主机器上的任意文件,这是很多时候我们都不愿意看到的, 我们更希望运行在同一台机器上的不同服务能做到完全隔离,就像运行在多台不同的机器上一样。把服务器平台作为一种服务提供的 商业模式。容器和镜像的区别就在于,所有的镜像都是只读的,而每一个容器其实等于镜像加上一个可读写 的层,也就是同一个镜像可以对应多个容器。原创 2023-12-02 14:04:42 · 5066 阅读 · 25 评论 -
Java核心知识点整理大全26-笔记
几个模块之间的关系如图所示。每个 executor 只会运行 1 个 topology 的 1 个 component(spout 或 bolt)的 task(注:task 可以是 1 个或多个,storm 默认是 1 个 component 只生成 1 个 task,executor 线程里会在每次循环里顺序调用所有 task 实例)。Stream 中的所 有的 tuple 都会发送给同一个 bolt 任务处理,所有的 tuple 将会发送给拥有最小 task_id 的 bolt 任务处理。原创 2023-12-02 09:55:04 · 2745 阅读 · 33 评论 -
Java核心知识点整理大全25-笔记
JobTracker 收到新作业提交请求后, 由 作业调度模块对作业进行初始化:为作业创建一个 JobInProgress 对象以跟踪作业运行状况, 而 JobInProgress 则会为每个 Task 创建一个 TaskInProgress 对象以跟踪每个任务的运行状态, TaskInProgress 可能需要管理多个 “ Task 运行尝试”( 称为“ Task Attempt”)。Task 分为 Map Task 和 Reduce Task 两种, 均由 TaskTracker 启动。原创 2023-12-01 14:17:15 · 7224 阅读 · 51 评论 -
Java核心知识点整理大全24-笔记
有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆过滤器,将所有可能存在的数据哈 希到一个足够大的 bitmap 中,一个一定不存在的数据会被这个 bitmap 拦截掉,从而避免了对底层存 储系统的查询压力。常常作为文件的签名出现,我们在下载文件的时候,常常会看到文件页面上附带一个扩展 名为.MD5 的文本或者一行字符,这行字符就是就是把整个文件当作原数据通过 MD5 计算后的值, 我们下载文件后,可以用检查文件 MD5 信息的软件对下载到的文件在进行一次计算。它是后进先出(LIFO)的。原创 2023-11-30 13:38:01 · 6962 阅读 · 32 评论 -
Java核心知识点整理大全23-笔记
目录21. JAVA 算法21.1.1. 二分查找21.1.2.冒泡排序算法21.1.3. 插入排序算法21.1.4. 快速排序算法21.1.1. 希尔排序算法21.1.2. 归并排序算法21.1.3. 桶排序算法21.1.4. 基数排序算法21.1.5. 剪枝算法21.1.6. 回溯算法21.1.7. 最短路径算法21.1.8. 最大子数组算法21.1.9. 最长公共子序算法21.1.10. 最小生成树算法往期快速传送门👆(在文章最后):又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字原创 2023-11-30 09:31:29 · 5761 阅读 · 31 评论 -
Java核心知识点整理大全22-笔记
zookeeper 使用的 zab 算法是该算法的 一个实现。hash 算法并不是保证绝对的平衡,如果 cache 较少的话,对象并不能被均匀的映射到 cache 上, 为了解决这种情况, consistent hashing 引入了“虚拟节点”的概念,它可以如下定义: 虚拟节点( virtual node )是实际节点在 hash 空间的复制品( replica ),一实际个节点对应了 若干个“虚拟节点”,这个对应个数也成为“复制个数”,“虚拟节点”在 hash 空间中以 hash 值排列。原创 2023-11-29 13:36:09 · 7771 阅读 · 21 评论 -
Java核心知识点整理大全21-笔记
不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同 的存储引擎,还可以 获得特定的功能。时间戳就是在数据库表中单独加一列时间戳,比如“TimeStamp”,每次读出来的时候,把该字 段也读出来,当写回去的时候,把该字段加1,提交之前 ,跟数据库的该字段比较一次,如果比数 据库的值大的话,就允许保存,否则不允许保存,这种处理方法虽然不使用数据库系统提供的锁 机制,但是这种方法可以大大提高数据库处理的并发量, 以上悲观锁所说的加“锁”,其实分为几种锁,分别是:排它锁(写锁)和共享锁(读锁)。原创 2023-11-29 07:50:19 · 4794 阅读 · 47 评论 -
Java核心知识点整理大全20-笔记
1、通过在调度器 LB 上修改数据包的目的 MAC 地址实现转发。注意源地址仍然是 CIP,目的地址 仍然是 VIP 地址。2、请求的报文经过调度器,而 RS 响应处理后的报文无需经过调度器 LB,因此并发访问量大时使 用效率很高(和 NAT 模式比)3、因为 DR 模式是通过 MAC 地址改写机制实现转发,因此所有 RS 节点和调度器 LB 只能在一个 局域网里面4、RS 主机需要绑定 VIP 地址在 LO 接口(掩码 32 位)上,并且需要配置 ARP 抑制。原创 2023-11-28 14:18:18 · 3160 阅读 · 43 评论 -
Java核心知识点整理大全19-笔记
在 Cassandra 中,数据都是以 Key-value 的形式保存的。KeysIndex 所创建的二级索引也被保存在一张 ColumnFamily 中。在插入数据时,对需要进行索 引的 value进行摘要,生成独一无二的key,将其作为 RowKey保存在索引的 ColumnFamily 中;同时在 RowKey 上添加一个 Column,将插入数据的 RowKey 作为 name 域的值,value 域则赋 空值,timestamp 域则赋为插入数据的时间戳。原创 2023-11-28 09:15:12 · 3306 阅读 · 41 评论 -
Java核心知识点整理大全17-笔记
这个一阶段的主要目的是发现当前大多数节点接收的最新提议,并且 准 leader 生成新的 epoch,让 followers 接受,更新它们的 accepted Epoch 一个 follower 只会连接一个 leader,如果有一个节点 f 认为另一个 follower p 是 leader,f 在尝试连接 p 时会被拒绝,f 被拒绝之后,就会进入重新选举阶段。这样就算旧的 leader 崩溃 恢复之后,也没有人听他的了,因为 follower 只听从当前年代的 leader 的命令。原创 2023-11-27 08:38:14 · 3287 阅读 · 44 评论 -
Java核心知识点整理大全16-笔记
其中所用到的数据传输方式包括 XML,JSON 等,然而 XML 相对体积太大,传输 效率低,JSON 体积较小,新颖,但还不够完善。TCP 是面向连接的协议,它提供可靠的报文传输和对 上层应用的连接服务。4. 传输层:定义了一些传输数据的协议和端口号(WWW 端口 80 等),如:TCP(传输控制协议, 传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议, 与 TCP 特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如 QQ 聊天数据就是通过这 种方式传输的)。原创 2023-11-26 14:45:00 · 7311 阅读 · 23 评论 -
Java核心知识点整理大全15-笔记
与传统的多线程/多进程模型比,I/O 多路复用的 最大优势是系统开销小,系统不需要创建新的额外进程或者线程,也不需要维护这些进程和线程 的运行,降低了系统的维护工作量,节省了系统资源。如果使用 netty 的话,一般会用 channel.writeAndFlush()方法来发送消息二进制串,这个方 法调用后对于整个远程调用(从发出请求到接收到结果)来说是一个异步的,即对于当前线程来说, 将请求发送出来后,线程就可以往后执行了,至于服务端的结果,是服务端处理完成后,再以消息 的形式发送给客户端的。原创 2023-11-26 10:06:01 · 5729 阅读 · 39 评论 -
Java核心知识点整理大全14-笔记
Mybatis 中有一级缓存和二级缓存,默认情况下一级缓存是开启的,而且是不能关闭的。2. 为了统计各处理单元的时间延迟,当请求达到各个服务组件时,或是处理逻辑到达某个状态 时,也通过一个唯一标识来标记它的开始、具体过程以及结束,该标识就是我们前文中提到 的 Span ID,对于每个 Span 来说,它必须有开始和结束两个节点,通过记录开始 Span 和结 束 Span 的时间戳,就能统计出该 Span 的时间延迟,除了时间戳记录之外,它还可以包含一 些其他元数据,比如:事件名称、请求信息等。原创 2023-11-25 14:48:52 · 4226 阅读 · 31 评论 -
Java核心知识点整理大全13-笔记
"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块, 并将其命名为"Aspect",即切面。5. 如果这个 Bean 已经实现了 ApplicationContextAware 接口,会调用 setApplicationContext(ApplicationContext)方法,传入 Spring 上下文(同样这个方式也 可以实现步骤 4 的内容,但比 4 更好,因为 ApplicationContext 是 BeanFactory 的子接 口,有更多的实现方法)原创 2023-11-25 11:05:19 · 4931 阅读 · 43 评论 -
Java核心知识点整理大全12-笔记
Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时, 这些对象才可能存在,即,这些对象的生命周期不会比 JVM 的生命周期更长。但在现实应用中, 就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java 对象序列化就能够帮助我们实现该功能。使用 Java 对象序列化,在保存对象时,会把其状态保存为一组字节,在未来,再将这些字节组装 成对象。必须注意地是,对象序列化保存的是对象的”状态”,即它的成员变量。原创 2023-11-24 15:39:42 · 4169 阅读 · 43 评论 -
Java核心知识点整理大全11-笔记
AbstractQueuedSynchronizer 类如其名,抽象的队列式的同步器,AQS 定义了一套多线程访问 共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch。它维护了一个 volatile int state(代表共享资源)和一个 FIFO 线程等待队列(多线程争用资源被 阻塞时会进入此队列)。这里 volatile 是核心关键词,具体 volatile 的语义,在此不述。原创 2023-11-24 08:58:27 · 6205 阅读 · 43 评论 -
Java核心知识点整理大全10-笔记
往期快速传送门:Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客Java核心知识点整理大全。原创 2023-11-23 14:29:00 · 3268 阅读 · 63 评论 -
Java核心知识点整理大全9-笔记
而 LinkedBlockingQueue 之所以能够高效的处理并发数据,还因为其对于生产者 端和消费者端分别采用了独立的锁来控制数据同步,这也意味着在高并发的情况下生产者和消费 者可以并行地操作队列中的数据,以此来提高整个队列的并发性能。是一个不存储元素的阻塞队列。默认情况下 不保证访问者公平的访问队列,所谓公平访问队列是指阻塞的所有生产者线程或消费者线程,当 队列可用时,可以按照阻塞的先后顺序访问队列,即先阻塞的生产者线程,可以先往队列里插入 元素,先阻塞的消费者线程,可以先从队列里获取元素。原创 2023-11-23 08:56:15 · 6122 阅读 · 58 评论 -
Java核心知识点整理大全8-笔记
Java核心知识点整理大全7-笔记-CSDN博客但是如果锁的竞争激烈,或者持有锁的线程需要长时间占用锁执行同步块,这时候就不适合 使用自旋锁了,因为自旋锁在获取锁前一直都是占用 cpu 做无用功,占着 XX 不 XX,同时有大量 线程在竞争一个锁,会导致获取锁的时间很长,线程自旋的消耗大于线程阻塞挂起操作的消耗, 其它需要 cup 的线程又不能获取到 cpu,造成 cpu 的浪费。原创 2023-11-22 13:58:10 · 7147 阅读 · 61 评论 -
Java核心知识点整理大全7-笔记
但是如果锁的竞争激烈,或者持有锁的线程需要长时间占用锁执行同步块,这时候就不适合 使用自旋锁了,因为自旋锁在获取锁前一直都是占用 cpu 做无用功,占着 XX 不 XX,同时有大量 线程在竞争一个锁,会导致获取锁的时间很长,线程自旋的消耗大于线程阻塞挂起操作的消耗, 其它需要 cup 的线程又不能获取到 cpu,造成 cpu 的浪费。java中的悲观锁就是Synchronized,AQS框架下的锁则是先尝试cas乐观锁去获取锁,获取不到, 才会转换为悲观锁,如 RetreenLock。原创 2023-11-21 15:00:39 · 4944 阅读 · 48 评论 -
Java核心知识点整理大全6-笔记
守护线程--也称“服务线程”,他是后台线程,它有一个特性,即为用户线程 提供 公 共服务,在没有用户线程可服务时会自动离开。原创 2023-11-21 14:20:43 · 4628 阅读 · 50 评论 -
Java核心知识点整理大全5-笔记
根据 Java7 HashMap 的介绍,我们知道,查找的时候,根据 hash 值我们能够快速定位到数组的 具体下标,但是之后的话,需要顺着链表一个个比较下去才能找到我们需要的,时间复杂度取决 于链表的长度,为 O(n)。简单理解就是,ConcurrentHashMap 是一个 Segment 数组,Segment 通过继承 ReentrantLock 来进行加锁,所以每次需要加锁的操作锁住的是一个 segment,这样只要保证每 个 Segment 是线程安全的,也就实现了全局的线程安全。原创 2023-09-23 21:10:23 · 70330 阅读 · 14 评论 -
Java核心知识点整理大全4-笔记
当一个类收到了类加载请求,他首先不会尝试自己去加载这个类,而是把这个请求委派给父 类去完成,每一个层次类加载器都是如此,因此所有的加载请求都应该传送到启动类加载其中, 只有当父类加载器反馈自己无法完成这个请求的时候(在它的加载路径下没有找到所需加载的 Class),子类加载器才会尝试自己去加载。各种虚拟 机实现的内存布局可以各不相同,但是它们能接受的符号引用必须是一致的,因为符号引 用的字面量形式明确定义在 Java 虚拟机规范的 Class 文件格式中。Java 的 List 是非常常用的数据类型。原创 2023-09-13 14:55:07 · 81085 阅读 · 13 评论 -
关于JAVA的一些基本内容-笔记
此外,我们还将分析Java在企业级应用开发中的未来趋势和发展方向,以及Java和其他编程语言(如Go和Rust)之间的竞争和比较。本节将介绍Java的未来发展趋势和新特性,包括Java 9模块化系统、Java 10局部变量类型推断、Java 11的新特性等,并给出Java在云计算和人工智能领域的应用和竞争情况,同时也会对其他编程语言的发展进行分析和比较。本节将介绍Java在企业级应用开发中的基本概念、技术架构和常用框架,包括EJB、Spring企业版、Java EE等,并给出一些企业级应用开发的应用案例。原创 2023-09-10 12:47:35 · 95532 阅读 · 16 评论 -
Java核心知识点整理大全2-笔记
Parallel Scavenge 收集器也是一个新生代垃圾收集器,同样使用复制算法,也是一个多线程的垃 圾收集器,它重点关注的是程序达到一个可控制的吞吐量(Thoughput,CPU 用于运行用户代码 的时间/CPU 总消耗时间,即吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)), 高吞吐量可以最高效率地利用 CPU 时间,尽快地完成程序的运算任务,主要适用于在后台运算而 不需要太多交互的任务。在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引 用。原创 2023-08-11 17:59:14 · 104431 阅读 · 37 评论 -
Java核心知识点整理大全-笔记
Java核心知识点整理大全原创 2023-08-10 10:21:46 · 95380 阅读 · 13 评论 -
Java核心知识点整理大全3-笔记
只是标记一下 GC Roots 能直接关联的对象,速度很快,仍然需要暂停所有的工作线程。原创 2023-08-29 21:02:28 · 83723 阅读 · 24 评论