摘要: 华东师范地图 缺闵行的,找不到 阅读全文
posted @ 2025-10-13 13:19 kuki' 阅读(3) 评论(0) 推荐(0)
摘要: 1 Arrays 1. 截取数组 int[] arr2 = Arrays.copyOfRange(int[] original, int from, int to) original − 这是要从中复制范围的数组。 from − 这是要复制的范围的初始索引,包括在内。 to − 这是要复制的范围的最 阅读全文
posted @ 2025-05-02 13:20 kuki' 阅读(17) 评论(0) 推荐(0)
摘要: 1. 查看本地和远程分支 git branch -a 有输出后,按q返回。 阅读全文
posted @ 2025-08-03 01:06 kuki' 阅读(7) 评论(0) 推荐(0)
摘要: 回调函数 回调函数是作为参数传递到另一个函数中,然后在外部函数内调用以完成某种例行程序或操作的函数。 基于回调的 API 的使用者需要编写一个被传递到 API 中的函数。API 的提供者(称为调用方)接受该函数,并在调用方的主体内的某个时刻回调(或者说,执行)该函数。调用方负责将正确的参数传递给回调 阅读全文
posted @ 2025-08-01 10:55 kuki' 阅读(9) 评论(0) 推荐(0)
摘要: NotFound.displayName = 'NotFound'; 这句话的意思是给组件设置一个显示名称。 在 React 中,displayName 属性用于指定组件在调试工具(如 React DevTools)中显示的名字。这样可以让你在调试时更容易识别这个组件,尤其是在使用高阶组件(比如 m 阅读全文
posted @ 2025-07-31 23:20 kuki' 阅读(10) 评论(0) 推荐(0)
摘要: 1. 定义 memo 用于包裹函数组件,只有 props 变化时才重新渲染,适合无状态或 props 不常变的组件。 memo 是 React 提供的一个高阶组件(HOC),用于优化函数组件的性能。它的作用是记忆组件的渲染结果,只有当组件的 props 发生变化时才会重新渲染,否则直接复用上一次的渲 阅读全文
posted @ 2025-07-31 21:38 kuki' 阅读(30) 评论(0) 推荐(0)
摘要: 元素选择器(Element Selector)是直接用HTML标签名来选中页面中的元素,比如 h1、p、div 等。例如: p { color: blue; } 这个规则选中所有<p>元素。 类选择器(Class Selector)是通过元素的 class 属性来选中具有特定类名的元素,写法是在类名 阅读全文
posted @ 2025-07-26 10:37 kuki' 阅读(98) 评论(0) 推荐(0)
摘要: List<Integer> nums 不能用 nums[rand.nextInt(nums.length)] 这种下标方式访问,因为 List 没有 length 属性,也不能用 [] 取值。 解决方法: 用 nums.size() 获取长度 用 nums.get(index) 获取元素 修改如下: 阅读全文
posted @ 2025-07-20 19:59 kuki' 阅读(4) 评论(0) 推荐(0)
摘要: 1. 报错提示: Cannot make a static reference to the non-static method quickSort(int[], int, int) from the type L912手撕快速排序Java(603979977) void L912手撕快速排序.qu 阅读全文
posted @ 2025-07-19 21:06 kuki' 阅读(11) 评论(0) 推荐(0)
摘要: 这行代码的作用是类型转换,将传入的 Object o 强制转换为 ByteSequence<?> 类型。 详细解释如下: Object o:方法参数是 Object 类型,表示可以传入任何对象。 if (!(o instanceof ByteSequence)) return false; 这行代码 阅读全文
posted @ 2025-06-27 21:35 kuki' 阅读(2) 评论(0) 推荐(0)
摘要: 深拷贝(deep copy)是指创建一个对象的完整副本,包括其所有内容和引用的对象,副本与原对象完全独立,互不影响。 在本接口中,ByteSequence copy(); 方法返回当前字节序列的深拷贝,意味着: 新的 ByteSequence 拥有一份独立的底层数据(如新的 byte[] 数组), 阅读全文
posted @ 2025-06-27 21:08 kuki' 阅读(24) 评论(0) 推荐(0)
摘要: 近似最近邻搜索(ANN)简介 精确的最近邻搜索(KNN)在高维空间中计算代价非常高,因为在2D或3D中有效的搜索空间划分方法(如 quadtree 或 k-d tree)在高维中退化为线性扫描。这种现象就是所谓的“维度灾难”。 在大规模数据集中,相较于线性时间获得精确结果,能够在对数时间内获得近似结 阅读全文
posted @ 2025-06-24 23:01 kuki' 阅读(45) 评论(0) 推荐(0)
摘要: 这个文件是 JVector 项目的完整文档,详细介绍了它的架构、使用方式、性能优势和构建方法。JVector 是一个基于图的 近似最近邻搜索(ANN)索引库,结合了 HNSW 和 DiskANN 的优点,适用于 高维向量检索场景,比如大语言模型生成的向量搜索、图像/音频/文本匹配等。 🔍 背景:什 阅读全文
posted @ 2025-06-24 22:25 kuki' 阅读(54) 评论(0) 推荐(0)
摘要: 当应用程序执行系统调用时,CPU将从用户态切换到内核态, 进入内核空间执行响应的内核代码,然后切换回用户态 系统调用是应用程序请求操作系统内核提供服务的接口, 如文件操作(如open,read,write), 进程控制(如fork,exec) 内存管理(如mmap)等 阅读全文
posted @ 2025-06-22 18:45 kuki' 阅读(25) 评论(0) 推荐(0)
摘要: 在计算机系统中,内存可以分为两大区域 内核空间(Kernel Space) 和 用户空间(User Space)。 这种划分主要用于保护系统稳定性和安全性 。 内核空间 是操作系统内核代码及其运行时数据结构所在的内存区域, 拥有对系统所有资源的 完全访问权限,如 进程管理 内存管理 文件系统 网络堆 阅读全文
posted @ 2025-06-17 21:26 kuki' 阅读(16) 评论(0) 推荐(0)
摘要: 内核是一个计算机程序, 它是操作系统的核心, 提供了操作系统最核心的能力, 可以控制操作系统中所有的内容。 阅读全文
posted @ 2025-06-17 21:04 kuki' 阅读(34) 评论(0) 推荐(0)
摘要: 负责创建和终止进程。 进程是正在运行的程序实例, 每个进程都有自己的地址空间和资源。 负责为进程分配资源 比如说内存, 并在进程终止时回收内存。 提供创建、删除、读写文件的功能, 并组织文件的存储结构,比如说目录 通过设备驱动程序 控制和管理计算机的硬件设备 如键盘、鼠标、打印机等。 阅读全文
posted @ 2025-06-17 21:01 kuki' 阅读(12) 评论(0) 推荐(0)
摘要: 操作系统 Operating System,OS) 是计算机系统中管理硬件和软件资源的 中间层系统, 屏蔽了硬件的复杂性,为用户提供了便捷的交互方式,比如windows,linux,macos等 阅读全文
posted @ 2025-06-17 20:52 kuki' 阅读(15) 评论(0) 推荐(0)
摘要: 新生代的垃圾收集,主要采用 标记-复制 算法 因为新生代的存活对象 较少,每次复制少量存活对象 效率比较高。 基于这种算法,虚拟机将内存分为一块较大的Eden空间,和两块较小的Survivor空间, 每次分配内存只使用Eden和其中一块survivor 发生垃圾收集时,将Eden和Survivor中 阅读全文
posted @ 2025-06-04 21:39 kuki' 阅读(13) 评论(0) 推荐(0)
摘要: Java堆被划分为新生代,和老年代 两个区域。 新生代 新生代又被划分为Eden空间 Eden区填满时,会触发一次Minor GC, 清除不再使用的对象 存活下来的对象从Eden区移动到Survivor区。 对象在新生代经历多次GC后,仍存活,会被移动到老年代 当老年代内存不足时,触发Major G 阅读全文
posted @ 2025-06-04 21:16 kuki' 阅读(5) 评论(0) 推荐(0)
摘要: 四种:强引用,软引用,弱引用,虚引用 软引用的对象 在内存不足时会被回收。 弱引用的对象会在下一次垃圾回收时被回收 虚引用的对象,任何时候都可能被回收。 阅读全文
posted @ 2025-06-04 21:04 kuki' 阅读(10) 评论(0) 推荐(0)
摘要: 对于局部变量, 它存储在当前方法栈 帧中的局部变量表中。 当方法执行完毕,栈帧被回收,局部变量也会被释放。 对于静态变量 存储在Java虚拟机 中的元空间中。 阅读全文
posted @ 2025-06-04 20:54 kuki' 阅读(12) 评论(0) 推荐(0)
摘要: 堆是JVM中最大的一块内存区域,被所有线程共享。 在JVM启动时创建,主要用来存储new出来的对象。 Java中几乎 所有的对象都会在堆中分配,堆也是 垃圾收集器 管理的目标区域 从内存回收的角度来看,由于垃圾收集器大部分都是基于分代收集理论设计的, 所以 堆被细分为:新生代(Eden,From S 阅读全文
posted @ 2025-06-04 20:40 kuki' 阅读(18) 评论(0) 推荐(0)
摘要: HTTPS连接 建立在SSL/TLS握手之上,其过程可以分为两个阶段:握手阶段和数据传输阶段。 客户端向服务器发起请求。 服务器收到请求 返回自己的数字证书(包括公钥,颁发机构等) 客户端收到服务器的 证书后 验证 证书的合法性 生成随机码(会话密钥), 用服务器的公钥 加密这个会话密钥 发给服务器 阅读全文
posted @ 2025-06-04 20:24 kuki' 阅读(19) 评论(0) 推荐(0)
摘要: HTTP是明文传输的,存在数据窃听,数据篡改,和身份伪造等问题。 而HTTPS通过引入SSL/TLS,解决了这些问题。 SSL/TLS 涉及两种类型的加密方法 非对称加密 服务器向客户端发送 公钥, 然后客户端用公钥加密自己的随机密钥,也就是回话密钥,发送给服务器。 服务器用私钥 解密,得到会话密钥 阅读全文
posted @ 2025-06-04 20:09 kuki' 阅读(30) 评论(0) 推荐(0)
摘要: HTTPS 是HTTP的增强版, 在HTTP的基础上 加入了 SSL/TLS 协议, 确保数据在传输过程中是加密的。 HTTP的默认端口号是80,URL以http://开头 HTTPS 的默认端口号是443,URL以https://开头 阅读全文
posted @ 2025-06-04 19:49 kuki' 阅读(13) 评论(0) 推荐(0)
摘要: HTTP/2.0 基于TCP协议 HTTP/3.0 基于QUIC协议 Quick UDP connections 快速UDP网络连接。 阅读全文
posted @ 2025-06-04 19:38 kuki' 阅读(26) 评论(0) 推荐(0)
摘要: HTTP 是基于 TCP/IP协议 的 应用层 协议 使用TCP作为传输层协议 通过建立TCP连接来传输数据。 HTTP 遵循 标准的客户端-服务器模型, 客户端打开连接发出请求,然后等待服务器返回的响应。 也就是 建立TCP连接 客户端(浏览器发出请求)HTTP请求报文 服务端 返回 HTTP响应 阅读全文
posted @ 2025-06-04 19:27 kuki' 阅读(8) 评论(0) 推荐(0)
摘要: 虚拟内存是操作系统提供 的一种 内存管理技术 它使得应用程序,认为自己有连续的,独立的内存空间, 实际上,这个虚拟内存 可能部分存储在物理内存上,部分存储在 磁盘中。 虚拟内存的核心思想是: 通过硬件和操作系统的配合, 为每个进程提供一个独立的,完整的 虚拟地址空间 解决物理内存不足的问题 每个进程 阅读全文
posted @ 2025-06-04 19:11 kuki' 阅读(20) 评论(0) 推荐(0)
摘要: @Autowired 是Spring提供的注解 按类型(byType)注入 @Resource 是Java EE提供的注解 按名称(byName) 注入。 @Resource属于Java EE标准的注解, 如果使用其他IOC容器而不是Spring也是可以兼容的 阅读全文
posted @ 2025-06-04 15:39 kuki' 阅读(12) 评论(0) 推荐(0)
摘要: @Component 是Spring提供的一个类级别注解 由Spring自动扫描并注册到容器中 @Bean 方法级别的注解 用于显示地声明一个Bean 当我们需要第三方库或者无法使用@Component注解类时, 使用@Bean来将其实例注册到容器中。 阅读全文
posted @ 2025-06-04 15:14 kuki' 阅读(29) 评论(0) 推荐(0)
摘要: 容器启动阶段 主要做的工作是加载和解析配置文件, 保存到对应 的Bean定义中 阅读全文
posted @ 2025-06-04 15:06 kuki' 阅读(13) 评论(0) 推荐(0)
摘要: Spring通过IOC容器实现单例模式,具体步骤是 单例Bean 在容器初始化时 创建并使用 DefaultSingletonBeanRegistry提供的singletonObjects进行缓存。 在请求Bean时,Spring会先从缓存中获取。 阅读全文
posted @ 2025-06-04 14:57 kuki' 阅读(27) 评论(0) 推荐(0)
摘要: 工厂模式属于创建型设计模式,主要用于创建对象,而不是暴露创建对象的逻辑给客户端。 其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。 举个例子 卡车Truck和轮船Ship都必须实现运输工具Transport接口 该接口声明了一个名为deliver的方法 卡车都实现了deliver方法 阅读全文
posted @ 2025-06-04 14:19 kuki' 阅读(23) 评论(0) 推荐(0)
摘要: 单例模式能确保一个类仅有一个实例,并提供一个全局访问点来访问这个实例 对于需要控制资源使用或需要共享资源的情况非常有用, 比如数据库连接池 通过单例模式,可以避免对资源的重复创建和销毁。 从而提高资源利用率和系统性能。 阅读全文
posted @ 2025-06-04 13:43 kuki' 阅读(17) 评论(0) 推荐(0)
摘要: 单例模式(Singleton Pattern) 是一种创建型设计模式, 它确保一个类只有一个实例。 并提供一个全局访问点来获取该实例。 单例模式主要用于控制对某些共享资源的访问,例如 配置管理器,连接池,线程池,日志对象。 实现单例模式的关键点? 私有构造方法 确保外部代码不能通过构造器创建类的实例 阅读全文
posted @ 2025-06-04 13:38 kuki' 阅读(16) 评论(0) 推荐(0)
摘要: 总述:TCP首先通过三次握手和四次挥手 来保证连接的可靠性,后通过 校验和,序列号,确认应答,超时重传,滑动窗口等机制来保证数据的可靠传输。 校验和: TCP报文段包括一个校验和字段,用于检测报文段在传输过程中的斌华 阅读全文
posted @ 2025-06-04 10:41 kuki' 阅读(26) 评论(0) 推荐(0)
摘要: 一个TCP报文段 由报文段头部(Header)和数据两部分组成。 头部包含了确保数据可靠传输所需的各种可靠信息 比如序列号,确认号,窗口大小。 具体说明: 源端口号:用于标识发送端的应用程序。 目标端口号:用于标识接收端的应用程序。 序列号:用于标识从TCP发送者发送的 数据字节流中的第一个字节的顺 阅读全文
posted @ 2025-06-03 21:17 kuki' 阅读(29) 评论(0) 推荐(0)
摘要: 1. close-wait状态有什么意义? 服务端收到客户端关闭连接的请求并向客户端发回ACK确认之后, 就会进入close-wait状态。 此时服务端可能还有一些数据没有传输完成,因此不能立即关闭连接, 而close-wait状态就是为了保证服务端在关闭连接之前将待发送的数据处理完。 2. tim 阅读全文
posted @ 2025-06-03 20:10 kuki' 阅读(38) 评论(0) 推荐(0)
摘要: 为什么需要等待? 为了保证客户端发送的最后一个ACK报文段能够到达服务端 。 这个ACK报文段可能丢失,因而使处在last_ack状态的服务端收不到客户端对已经发送的FIN+ACK报文段的确认。 服务端会超时重传这个FIN+ACK报文段, 这样,客户端就能在2MSL时间内(超时+1MSL传输)收到这 阅读全文
posted @ 2025-06-03 19:01 kuki' 阅读(118) 评论(0) 推荐(0)
摘要: 因为TCP是全双工通信协议, 数据的发送和接收需要一来一回,四次,来确保双方都能正确关闭连接。 阅读全文
posted @ 2025-06-03 16:31 kuki' 阅读(11) 评论(0) 推荐(0)
摘要: 第3次握手是可以携带数据的。 此时客户端已经处于Established状态, 对于客户端来说,它已经建立连接成功,并且确认服务端的接收和发送能力是正常的。 第一次握手不能携带数据是出于安全的考虑,因为如果携带数据, 攻击者每次在SYN报文中携带大量数据,会导致-> 服务端消耗更多的时间和空间去处理这 阅读全文
posted @ 2025-06-03 13:56 kuki' 阅读(18) 评论(0) 推荐(0)