自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 个人简介

🤳一个积极向上,乐于探索的00后,欢迎来 follow ,我们一起学习进步!

2023-04-07 20:16:49 313 1

原创 Java后端开发-面试总结(集结版)

基于数组, 基于双向链表。在查询方面 效率高,添加和删除频繁场景下 更具优势, 需要连续内存空间, 不需要。为什么基于数组的 查询效率高,是因为可以通过索引直接定位元素,时间复杂度为 O (1);而 查询需要从头或尾遍历链表,时间复杂度为 O (n)。在添加和删除操作上, 只需修改前后节点的指针,时间复杂度为 O (1),而 在中间位置添加或删除元素时,可能需要移动大量元素,时间复杂度为 O (n) 。举一些实际业务场景例子,比如在报表数据展示,需要频繁查询数据,适合用 ;在实现一个消息队列,频

2025-04-09 10:48:17 797

原创 Java面试总结

另外,除了这些常见索引类型,还有唯一索引,它与主键索引类似,要求索引列的值唯一,但可以有 NULL 值,一张表可以有多个唯一索引;例如在链表中间插入一个新节点,只需修改前一个节点的后继指针和后一个节点的前驱指针,使其分别指向新节点。重写是发生在具有继承关系的子类与父类之间,子类重写父类的方法时,要求方法名、参数列表、返回值类型(JDK1.5 之后,返回值类型可以是父类方法返回值类型的子类)必须相同,访问修饰符不能比父类中被重写方法的访问修饰符更严格,而且抛出的异常不能比父类被重写方法抛出的异常范围更大。

2025-03-26 22:05:39 1023

原创 Java面试总结+算法

正确内容:Java 中有三种主要的类加载器。启动类加载器(Bootstrap ClassLoader):它是用 C++ 实现的,是 JVM 自带的类加载器,负责加载 Java 核心类库,比如rt.jar中的类,像等包中的类。它是所有类加载器的祖先,并不继承自类。扩展类加载器(Extension ClassLoader):负责加载目录下的类库以及系统属性指定的路径中的类库 ,这些类库是 Java 平台的扩展功能。应用程序类加载器(Application ClassLoader)

2025-03-25 14:58:28 1001

原创 HTTP 1/2/3

HTTP 是超文本传输协议。详细介绍:HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式、超媒体信息系统的应用层协议。它主要用于客户端(如浏览器)和服务器之间进行通信,是互联网上应用最为广泛的协议之一。【协】:两个以上的参与者【议】:一种行为约定和规范HTTP/1.1版本的默认连接都是长连接,但为了兼容老版本的 HTTP,需要指定 Connection 首部字段的值为 Keep-Alive。

2025-03-19 17:07:02 436

原创 Mac本地安装运行FastDFS

macOS 上需要安装以下依赖:Homebrew(macOS 包管理器)gcc(编译器)libevent(FastDFS 依赖)安装 Homebrew如果尚未安装 Homebrew,可以通过以下命令安装:

2025-03-09 20:01:05 1133

原创 mac本地安装运行Redis-单机

​安装地址:https://github.com/redis/redis/tags?after=7.0.0官网:Redis - The Real-time Data PlatformMac版本:Apple M1

2025-03-08 17:56:09 1284

原创 Java的缓存

MyBatis提供了两级缓存机制,一级缓存(SqlSession级别)和二级缓存(全局级别),以通过减少数据库的查询次数来提高应用的性能。一级缓存(SqlSession级别)一级缓存是MyBatis默认开启且无法关闭的缓存,作用范围是SqlSession级别(SQL会话==SqlSession)作用范围:仅限于同一个SqlSession实例。

2025-03-07 21:40:20 1046

原创 链表-相关面试算法题

从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。在 B 中,相交节点前有 1 个节点。

2025-03-03 19:10:55 884

原创 分享一道算法题

来源:力扣《程序员面试金典》

2025-02-28 10:21:43 133

原创 Java-14

专项练习-后端开发SMTP:简单邮件传输协议。只有发送邮件用到。http:应用层tcp:传输层IP:网络层3.执行以下代码段(程序已包含所有必需的头文件)会输出什么结果()A4, 4B4, 10C5, 5D5, 10字符串“abcd”占用5个字节,因为包含结束符'\0',初始化时未指定数组a的大小,所以sizeof(a)为5。数组b初始化时指定了长度10,所以sizeof(b)为10。所以正确答案为D。4.TCP/IP 参考模型的网络层提供的是() A无连接不可靠的数据报服务B无连接可靠的数据报服

2025-02-24 19:50:55 894

原创 Java-13

因此,当路径字符串中包含反斜杠时,需要使用双反斜杠(在switch语句中,必须有default关键词,它通常在所有case之后。setPriority(p:int)方法的参数p的取值为0到10。Math.random()*10会随机产生0到10之间的一位整数。近日总结:好好学习,天天向上,所以测评这东西,真的很难受啊。if(even = true)等价于if(even)interrupt()方法的作用是结束该进程。这三种方式都可以正确表示文件路径中的反斜杠。在Java中,反斜杠(Dijkstra算法。

2025-02-22 18:24:30 483

原创 Java-12

A①②B①③C②③D②④。

2025-02-21 16:55:00 558

原创 Java-11

如果一个事务需要对事务过程中发现的多个数据项加锁,并且获取每个锁都需要与数据服务器进行往返通信,则容易在获取锁上耗费大量时间,可以通过多粒度锁来避免多重请求。锁高速缓存就是如果数据的使用主要是在客户端之间划分的,而客户端很少请求其他客户端也请求数据,那么锁也可以在客户端高速缓存。数据高速缓存就是在单个事务范围内,代表事务的数据在发送到客户端的时候可以在客户端高速缓存。

2025-02-20 21:06:00 771

原创 6

书读的多了,束缚也多了,行为举止上也多了很多限制,书读的多了明白了更多人的想法,会看到自己的贫瘠,发现周围的黑暗,自己却无力改变。还有一个感悟,很多时候,多和读很多书的人交谈交谈,能让你觉得仿佛你正在读一本书,获得一些其他意见,开阔视野,说不定还能被净化。说说最近看的一本小说,烂尾了,强行解释前期挖的坑,已经意难平到心情郁闷好几天了,只能说,后劲儿真大,高开低走也真令人烦闷。再说说最近的天气,很冷,但不下雪,天空也是一直阴沉沉的,笼罩在城市上方的霾,就像是厚重的乌云重重的压在心头。

2024-12-25 16:25:41 255

原创 Java-10

Prim算法的核心思想是每次从未处理的顶点中选择一个与当前生成树连接权重最小的顶点加入生成树,这个过程与图中的边数没有直接关系,而是与顶点数有关(因为每次选择都是基于顶点的)。因此,在更广泛的意义上,可以认为Prim算法与网中的边数“相对无关”,因为它主要关注的是顶点之间的连接关系。在一般情况下,可以认为GET请求的长度是受限的。聚簇索引会根据索引键的值来组织数据,如果索引键(即聚簇索引所基于的列)经常变化,那么维护聚簇索引的成本会很高,因为每次更新都可能需要移动数据行,这会降低性能。

2024-12-23 22:23:32 491

原创 Java-09

由于String是Object的一个子类,根据Java的规则,更具体的版本(在这种情况下是接受String的版本)会被选中,前提是调用是合法的。如果出现了一个优先权更高的进程,并且当前系统的调度策略是基于优先权的(如优先权调度算法),那么当前运行的进程可能会被抢占CPU,从而从运行状态变为就绪状态。用户级线程的切换通常不需要内核的支持,因为用户级线程的管理和调度是由用户空间的线程库完成的。无论是在传统的单线程进程模型中,还是在引入线程的多线程模型中,进程都是资源的拥有者,它负责申请和占有所需的资源。

2024-12-23 15:20:40 944

原创 Java-08

如果我们在遍历过程中遇到已经访问过的顶点(且该顶点不是当前顶点的父顶点),则表明存在一条从当前顶点到该已访问顶点的路径,这通常意味着存在一个环。反之,如果拓扑排序算法无法完成排序(例如,因为存在至少一个顶点没有确定的拓扑位置,这通常意味着存在环),则可以确定图中存在环。setPriority(p:int)方法,这个参数的取值范围是1到10(包括1和10),其中1是最低优先级,10是最高优先级,而5是默认优先级(也称为“普通”优先级)。这样,我们就可以在运行时调用子类重写的父类方法,实现动态绑定。

2024-12-17 21:16:10 631

原创 Java-07

堆排序的比较次数主要发生在调整堆的过程中,虽然这一过程与初始序列的具体顺序关系不大,但堆的构建过程(尤其是初始序列接近逆序时)可能会涉及较多的比较操作,不过从整体上看,堆排序的比较次数仍可以认为是相对稳定的,不如快速排序那样受初始序列影响大。但是,仅仅调用run方法并不会启动一个新的线程,而是在当前线程中顺序执行run方法中的代码。这是因为选择排序每一趟都从待排序的数据元素中选出最小(或最大)的一个元素,无论初始序列如何,这一过程的比较次数是固定的,为n(n-1)/2次,其中n是待排序元素的数量。

2024-12-10 22:22:12 762

原创 Java-06

HTTPS 在HTTP 的基础下加入TLS(Transport Layer Security 安全传输层协议)/SSL(Secure Sockets Layer 安全套接层协议),HTTPS 的安全基础是 TLS/SSL,因此加密就需要TLS/ SSL。在HTTPS数据传输的过程中,需要用TLS/SSL对数据进行加密,然后通过HTTP对加密后的密文进行传输,可以看出HTTPS的通信是由HTTP和TLS/SSL配合完成的。和所有其他疾病一样,如果不治愈,随着时间的推移,它可能导致致命的应用程序崩溃。

2024-12-04 22:23:53 754

原创 Java-05

正确匹配并调用父类构造方法:当super(arguments)中的参数列表与父类中某个构造方法的参数列表完全匹配,并且该构造方法是可访问的时,调用不会报错。super调用是子类构造方法的首行:如果super(arguments)调用正确地位于子类构造方法的首行,那么它不会导致编译错误。子类正确处理或声明了父类构造方法中的受检异常:如果父类构造方法声明了受检异常,并且子类构造方法通过try-catch块处理了这些异常,或者在其方法签名中声明了相同的受检异常,那么这不会导致编译错误。

2024-11-29 16:45:23 837 1

原创 按照数组中字符串出现频率对字符串进行降序排序,频率相同按照字典升序排序

现在给定小红的搜索记录(记录为分词后的结果),我们认为当一个单词出现的次数不少于3次时,该单词为“用户期望搜索的单词”,即称为关键词。请你根据小红的记录,输出小红的用户画像对应的所有关键词。方法获取当前单词的频率,如果该单词没有出现过,则初始频率为 0;列表进行排序,首先按照频率降序排列,如果频率相同,则按字典序升序排列。小红书有一个推荐系统,可以根据用户搜索的关键词推荐用户希望获取的内容。进行字典序的比较,确保在频率相同的情况下,按字母顺序排列。的条目,检查每个单词的频率,并将符合条件的单词添加到。

2024-11-19 22:21:08 407

原创 Java-04

Redis集群由多个主节点和从节点组成,主节点负责处理客户端的写入和读取请求,从节点则负责同步主节点的数据。例如,一个Redis集群可以包含多个主节点和从节点,每个主节点都配备有哨兵,以确保在任何主节点故障时,集群都可以继续工作。由于从节点只负责处理读取请求,它们通常会部署在性能较低的节点上,而主节点则处理写入请求,并负责数据的完整性和一致性。通过这种方式,Redis集群可以自动将数据分散存储到不同的节点上,每个节点负责管理一部分哈希槽,从而实现数据的分片存储和负载均衡。来避免潜在的溢出问题。

2024-11-19 21:50:36 969

原创 Java-03

Java中的IO流主要有4个基类:InputStream、OutputStream、Reader、Writer。其中,InputStream代表字节输入流,OutputStream代表字节输出流,Reader代表字符输入流,Writer代表字符输出流。其他的IO流都是从这4个基类派生而来的,并且子类的名字往往以基类的名字结尾。之后Java提供了新的IO模型(NIO),这种IO模型是基于IO多路复用实现的。

2024-11-11 20:16:11 1173 3

原创 Java-02

首先,T 一开始为空,之后进行如下操作:从左往右开始,剪切 S 中开头 k 个字符构成的子串。例如,aabbaa、a、abcba 是回文串,而 ab、ba、abc 不是回文串。

2024-11-02 22:22:17 269

原创 Java-01

Java中的IO流主要有4个基类:InputStream、OutputStream、Reader、Writer。其中,InputStream代表字节输入流,OutputStream代表字节输出流,Reader代表字符输入流,Writer代表字符输出流。其他的IO流都是从这4个基类派生而来的,并且子类的名字往往以基类的名字结尾。之后Java提供了新的IO模型(NIO),这种IO模型是基于IO多路复用实现的。

2024-10-31 20:44:08 587

原创 Java笔试07

用于声明一个类或方法。抽象类可以被继承,抽象方法可以被重写。在Java中,流处理(stream processing)是指使用流式处理数据集合的方式,这通常与Java 8引入的Stream API有关。

2024-10-24 15:59:54 738

原创 Java笔试06

因此,从Java 8开始,抽象类可以包含具体方法的实现,这些方法可以被同一个抽象类的其他方法调用,也可以被继承这个抽象类的子类调用,而不需要子类提供这些方法的实现。抽象方法只在抽象类(abstract class)或接口(interface)中声明,不提供具体的实现,目的是强制要求任何非抽象的子类提供这些方法的具体实现。在Java中,多态性(Polymorphism)是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的实例以不同的方式实现。接口和抽象类在Java中是两种不同的概念。

2024-10-22 22:12:03 966

原创 Java笔试05

是一个非访问修饰符,它用于声明抽象类和抽象方法。抽象类不能被实例化,抽象方法没有具体的实现,必须由子类提供实现。在Java中,“短路”(short-circuit)求值是指在布尔表达式中,如果表达式的结果已经可以确定,那么就不会对表达式的其他部分进行求值。这通常发生在逻辑运算中,特别是使用逻辑AND(&&)和逻辑OR(||)操作符时。

2024-10-21 21:28:55 1049

原创 Java笔试04

在内存只有4KB的ATM机上,对2,000,000笔交易进行排序时,需要考虑排序算法的内存使用效率和数据的特性。:Belady现象是指在采用某种页面置换算法时,增加页面数反而导致页面置换次数增加的现象。FIFO算法不会出现Belady现象,因为随着页面数的增加,页面置换次数会减少或保持不变。:抖动现象是指频繁地进行页面置换,导致系统资源大部分时间用于页面置换而不是实际的计算工作。FIFO算法由于其简单的先进先出特性,可能会导致频繁的页面置换,从而引发抖动现象。:内碎片是指内存分配中未被利用的小部分内存。

2024-10-18 21:13:12 655

原创 正则表达式

正则表达式是一种强大的文本处理工具,用于匹配字符串中字符的模式。它由一系列字符组成,这些字符可以是普通字符(如字母a到z)、特殊字符(如星号*或问号?正则表达式可以用来搜索、编辑或处理文本。例3:^[A-Za-z](?=.*\\d)[A-Za-z\\d]*$即:输入的字符串至少包含一个字母和一个数字,并且以字母开头。即:输入的字符串以数字开头,后面可以跟任意数量的字母。即:以字母开头,后面跟着至少一个数字。例1:^[A-Za-z]\\d+$例2:^\\d[A-Za-z]*$

2024-10-17 20:59:06 873

原创 Java笔试03

DNS查询通常使用UDP协议,因为它速度快,适合简短的查询和响应。然而,对于需要传输大量数据的情况,如区域传送(zone transfer),DNS可以使用TCP协议。每当一个函数递归调用自身时,一个新的参数和局部变量的集合被推送到堆栈上。当递归调用返回时,当前的堆栈帧被弹出,返回到上一个堆栈帧,直到达到基本情况。DNS的缓存时间并不是固定的,它由多个因素决定,包括DNS记录的生存时间(TTL)和本地系统的缓存策略。DNS(域名系统)的主要功能就是将域名转换为IP地址,以及将IP地址转换为域名。

2024-10-17 20:31:41 769

原创 知道二叉树前序中序求后序,知道二叉树中序后序求前序

二叉树:二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。这是因为前序遍历和后序遍历都只提供了关于根节点与其子节点相对位置的部分信息,但不足以完全确定树的结构。已知一棵二叉树的前序遍历为CABEFDHG,中序遍历为BAFECHDG,那么它的后续遍历是。首先找到根节点,A,那么在再看中序,在A左边的都是左节点,在右边的都是右节点。C是根节点,则BAFECHDG,BAFE为左节点。前序遍历为:A, B, D, E, C。中序遍历为:D, B, E, A, C。

2024-10-17 09:50:44 630

原创 Java笔试02

VLAN ID:VLAN TAG包的VLAN ID号,有效范围是1-4094,0和4095都为协议保留值,VLAN ID 0 表示不属于任何VLAN,但携带802.1Q的优先级标签,所以一般被称为Priority-only frame,其一般作为系统使用,用户不可使用和删除。1为系统默认VLAN,即Native VLAN,2-1001是普通的VLAN,1006-1024保留仅系统使用,用户不能查看和使用,1002-1005是支持fddi和令牌环的VLAN,1025-4095是扩展的VLAN。

2024-09-30 11:41:23 957

原创 再看Java-笔试

在一个进程终止后,其所打开的文件通常不会被系统删除。文件的删除需要由用户或程序通过显式的删除操作来完成。1 代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作2 数据段:存放程序静态分配的变量和全局变量3 BSS段:BSS段包含了程序中未初始化的全局变量,在内存中 bss段全部置零。

2024-09-19 11:38:38 1074

原创 异步和多线程

3. 调度机制:多线程需要操作系统提供的线程调度器来进行线程之间的切换,而异步则是通过事件循环机制完成任务的调度。4. 错误处理:多线程中一个线程抛出异常时,其他线程不受影响,但异步中一个任务出错可能会影响后续的任务执行。总的来说,多线程适用于CPU密集型的任务(如计算),而异步则适用于IO密集型的任务(如网络请求)。JVM私有:栈,本地方法栈,程序计数器。

2024-09-13 18:00:55 473

原创 罗马数字与整数(水)

数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。可以看到罗马数字中,凡是以六种情况,都代表一个新的数字。所以针对此道题,就可以用直接替换的写法。先将这些特殊的替换出去,再解决剩下的。近日总结:人生总是在面临抉择。,即为两个并列的 1。

2024-09-13 16:06:44 495

原创 Java获取随机数

在Java中获取随机数通常会使用类或者方法。

2024-09-12 16:49:32 1358

原创 遍历Map

Map:Map是一种将键(Key)映射到值(Value)的对象,一个键可以映射到最多一个值。so Map提供了一种快速查找、插入和删除键值对的方法。

2024-09-06 14:43:12 246

原创 QueryWrapper中的or和and

eq!>=

2024-09-05 15:04:22 3652

设计模式流程图全览,全面

设计模式流程图全览,全面

2024-11-17

nginx-1.22.1.tar.gz安装包

nginx-1.22.1.tar.gz安装包,直接下载

2022-11-07

java基础知识(笔记)

super等一些基础知识,这个是测试文件,应该可以直接免费下载,里面是一张图,就是这个https://blog.youkuaiyun.com/Hubery_sky/article/details/126328850?spm=1001.2014.3001.5501里面的一些东西。

2022-08-18

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

TA关注的人

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