自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实习问题总结

为什么使用GRPC作为通信方式,对比如REST好处在哪里?使用protobuf作为序列化格式,以二进制进行传输,减小了数据包的大小,效率高 proto强类型定义、支持复杂数据类型,编译运行可以进行严格的数据验证,每个字段都有唯一编号,作为序列化和反序列化 JSON便于阅读,没有强类型约束,通过键序列化和反序列化 proto二进制,空间小,效率高,解析速度快 更适合高性能,强类型系统 支持HTTP2,本身HTTP2就是字节传输,多路复用、首部压缩,提高了传输性能和并发处理能力。 强

2024-07-18 10:33:37 19

原创 面经总结dd

继承和抽象的区别:继承是一种允许子类继承父类属性和方法的机制,可以重用代码,抽象是一种隐藏复杂性和只显示必要部分的基数,在面向对象编程中,抽象可以通过抽象类和接口实现。抽象类和普通类的区别:抽象类不能被实例化,只能作为其他类的父类,关键词:abstract,抽象类可以有普通方法和抽象方法,可以看作是模板设计模式的一个组成部分。:类像是一种原型,用于创建对象,接口像是一种规范,定义了类应该实现的方法。同一个行为具有不同的表现形式。

2024-07-03 19:19:45 401

原创 KDoc规范

【代码】KDoc规范。

2024-07-02 11:14:52 622

原创 计算机网络八股文

递归查询和迭代查询是DNS查询的两种方式,各有优缺点。迭代查询对解析器负担小,但增加了客户端的复杂性。实际应用中,客户端通常会使用递归查询,通过本地DNS解析器处理大部分的查询过程。本地解析器将 .com TLD服务器地址返回给客户端。根DNS服务器返回 .com TLD服务器地址。根DNS服务器返回 .com TLD服务器地址。本地解析器查询 .com TLD服务器。客户端查询 .com TLD服务器。本地解析器查询根DNS服务器。本地解析器查询根DNS服务器。客户端查询本地DNS解析器。

2024-07-01 19:34:54 9378 17

原创 场景题11111

饿汉可以,静态内部类、枚举也可以,还能用CAS实现,但是其实loadclass就是synchronized修饰的。B+磁盘友好(顺序性,以及磁盘预读,页分裂时就读取或者修改一页),跳表内存友好(多级索引结构,磁盘IO性能低)关系型数据库以表的形式存储,非关系型以key-value的形式存储。

2024-05-28 18:31:02 909

原创 设计模式八股文

设计模式是软件开发过程中经常遇到的问题的通用解决方案。类似于前人总结的经验,遇到相似问题的时候有个参考。设计模式七大基本原则?单一职责:一个类应该只作一件事情。将功能分为小的独立的单元。开放封闭原则:对扩展开放,对修改关闭。里氏替换原则:任何一个父类出现的地方,都可以用子类替换,而不会导致错误或者异常。依赖倒置:高层模块不应该依赖于底层,应该依赖于抽象,实现解耦。接口隔离:一个类不应该强迫它的客户端依赖于它们不需要的方法,接口应该小而专注,不应该包含多余的方法。

2024-05-26 18:42:58 891

原创 分布式八股文

集中式系统,可以理解为将一整个系统的所有功能,包括数据库各种都部署在一起,统一向外提供服务。分布式就是将集中式系统拆分成多个系统,每一个系统单独对外提供服务,整一个提供一整套服务。意味着能够采用更多的服务器,CPU、内存、存储资源增加,能够应对更大的并发量。这里举例商城系统。各个模块部署在不同机器上,通过RPC(远程调用)等方式进行通信。与集群的区别:集群是相同应用或者相同模块。

2024-05-02 21:04:24 1326 1

原创 JVM复习

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

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

原创 Kafka复习

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

2024-04-12 03:40:18 1022

原创 Redis

仅适用于复习

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

原创 MySQL复习

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

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

转载 操作系统复习

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

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

原创 并发编程复习

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

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

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

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

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

原创 Mybatis框架复习

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

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

原创 JVM内部的优化逻辑

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

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

原创 JVM垃圾收集器复习

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

2024-03-21 22:47:38 1113

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

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

2024-03-14 18:04:32 614

原创 算法笔记day1

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

2024-03-13 19:06:54 319

空空如也

空空如也

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

TA关注的人

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