自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 JVM复习

新生代中的可用内存:复制算法用来担保的内存为9:1可用内存中Eden:S1区为8:1即新生代中Eden:S1:S2 = 8:1:1现代的商业虚拟机都采用这种收集算法来回收新生代,IBM公司的专门研究表明,新生代中的对象大概98%是“朝生夕死”的。

2024-04-13 14:09:26 962 2

原创 Kafka复习

(将不同磁盘mount到不同目录,然后在server.properties中,将log.dirs设置为多目录(用逗号分隔)。消费者订阅主题,可以订阅不同的主题,可以负责不同分区,但是一个分区只能对应一个消费者,all(-1)再返回确认之前,会等待(min.insync.replicas。一个主题可以跨越多个服务器,高性能之一,多台服务器磁盘读写比单台更高。1集群收到消息,并写入分区数据文件(不一定是在磁盘上)会返回信息。record里面指定了分区,那就使用它,record里面指定了分区,那就使用它,

2024-04-12 03:40:18 961

原创 Redis

仅适用于复习

2024-04-11 04:47:25 931 1

原创 MySQL复习

前面是一些不了解的面试题,后面是符合自己思维的一些话和总结,指适合学过看着复习,不适合0-1

2024-04-10 14:58:58 914 1

转载 操作系统复习

操作系统就是内核态的一种软件。应用在程序和硬件之间的媒介,向程序提供硬件的抽象管理硬件资源。内核就是一个计算机程序,是操作系统的核心,提供了操作系统最核心的能力,可以控制操作系统中的所有内容。内核态:权限很高,可以控制及cpu、内存、硬盘等硬件,出于权限控制的考虑:将内存分为了内核空间和用户空间,使用什么空间就是什么态。用户空间的代码只能访问一个局部的内存空间,但是内核空间的代码可以访问所有的内存空间。

2024-04-05 00:02:49 705 1

原创 并发编程复习

数组实现的无界二叉堆(可自定义比较器),最大容量为Integer.MAX_VALUE - 8,分虚拟机,一把锁一个Condition,通过一个volatile变量CAS实现扩容,此时会释放锁,小于64会2背,大于64会1.5倍,长度超过最大就会失败,其他的线程就等待新数组生成写新数组,会调整结构所以一把锁。trylock(time),可以中断,分为公平锁和非公平锁逻辑,拿不到就看时间是否挂起,没时间就算了,有时间就挂起这么久,但是唤醒的时候要看是中断、到时间了、被唤醒,前两个要取消节点。

2024-04-02 03:24:27 762 1

原创 Morris树时间复杂度O(N)空间复杂度O(1)

后序遍历比较麻烦,当第二次遍历当前节点的时候,需要将左孩子的节点逆序打印,如下面。1、如果当前节点有左孩子,则将当前节点做孩子的最右孩子指向自己;3、如果当前节点左孩子最右节点指向自己,则断开,跳向下一个节点。遍历顺序就是ABDBEAC,有左孩子的节点都会遍历两遍。所以前序遍历就是当第一次到达当前节点的时候进行打印。中序遍历就是当第二次遍历当前节点的时候进行打印。2、如果当前节点没有左孩子,则跳向右边孩子;遍历到每一个节点的时候,最后将根节点右边逆序打印。

2024-03-30 20:42:20 183 1

原创 Mybatis框架复习

1、Mybatis基本介绍1、Mybatis基本介绍一种持久层框架的ORM()框架。特点:易于配置和使用:使用XML或注解配置数据库操作,只需定义SQL语句和参数映射。灵活的SQL编写:允许开发人员直接编写原生SQL语句。更好的优化查询,处理复杂的操作。提供了ORM功能:简化了数据的处理和操作,帮助转换。支持动态SQL:根据不同条件生成不同SQL语句。MyBatis 使用${}和#{}来实现动态 SQL 的功能,但它们的用法和目的有所不同#{}

2024-03-24 16:53:32 577 1

原创 JVM内部的优化逻辑

幸运的是,JVM提供了一个。循环体代码,回边计数器目的就是触发栈上替换,OSR 实际上是一种技术,它指的是在程序执行过程中,动态地替换掉 Java 方法栈桢,从而使得程序能够在非方法入口处进行解释执行和编译后的代码之间的切换。它指向了方法被调用时的指令地址(即,调用者的位置)。只会执行我们的方法调用次数(方法计数器)以及循环的回边次数(回边计数器)(多次执行的循环体)Profiling(监控)的C1编译。JVM采取的是混合模式,解释加编译的方式,不常用的代码解释执行,小部分的热点代码编译执行,追求效率。

2024-03-22 01:18:29 504 1

原创 JVM垃圾收集器复习

老年代的担保机制:当一个大对象分配不到young区的时候就会分配到老年代。默认2:1(9:1)增量回收:无论是标记清除-标记复制、标记整理(随机(双指针)、线性、滑动(Lisp2))算法,都类似于大扫除,增量式是与运用程序交替回收,三色标记算法为例子。hotspot每个垃圾收集器都会STW三色标记:并发导致的多标-浮动垃圾本应该回收,但是没有回收当成黑色的,下一轮再回收漏标-读写屏障1、灰色断开白色,灰色引用发生了变化 原始快照,记录下删除引用,再以灰色对象为根,重新扫描 CMS。

2024-03-21 22:47:38 1056

原创 认证授权单体及分布式

使用JWT可以实现无状态认证,什么是无状态认证?传统的基于session的方式是有状态认证,用户登录成功将用户的身份信息存储在服务端,这样加大了服务端的存储压力,并且这种方式不适合在分布式系统中应用。如下图,当用户访问应用服务,每个应用服务都会去服务器查看session信息,如果session中没有该用户则说明用户没有登录,此时就会重新认证,而解决这个问题的方法是Session复制、Session黏贴。JWT令牌的优点:1、jwt基于json,非常方便解析。

2024-03-14 18:04:32 588

原创 算法笔记day1

思路在于:curside[i]是指向的连接自己的某条边,而通过former[i]又能找到上一条,0这个位置不用,当找到0的时候说明这个点的所有边都找完了,找这些边的时候就可以穿插迪克斯拉和Prim算法进去了,迪克斯拉主要是能找到从某个点开头到所有点的距离集合,通过一个点找到这个点的所有边,全部放进小根堆里面去,pop出来一条就处理一条,处理到数目就完成了(还有一种是加强堆,带了个调整,写不动了)。prim是最小生成树,点解锁边,把解锁的边全部放进去小根堆里面,一个个弹出来,全部都处理完了就结束。

2024-03-13 19:06:54 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除