自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 9.22学习记录

equals默认比较两个对象的引用,但是实际需要更多的是判断两个对象的值是否相等,所有我们通常要进行重写。3.0引入了quik协议,连接建立只需要0次或1次握手,利用多个数据流解决了队头阻塞问题,使用HPACK算法来进行头部压缩,有更好的错误恢复和安全性。hashcode是返回对象的哈希码值,而这个哈希码值默认是对地址的哈希,如果equals进行了重写,则hashcode必须重写。1.1支持长连接,引入更多的状态码如409、410,引入多种缓存机制,允许请求部分更节省带宽,并且Host可以设置多个域名。

2024-09-22 16:32:46 594

原创 9.20学习记录

抽象⼯⼚模式通过在 AbstarctFactory 中增加创建产品的接⼝,并在具体⼦ ⼯⼚中实现新加产品的创建。Server 确认了:自己发送、接收正常,对方发送、接收正常。如果 key 不存在的话,才会设置 key 的值。Server 确认了:对方发送正常,自己接收正常。Server 确认了对方发送正常,自己接收正常。第二次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;第三次握手:Client 确认了:自己发送、接收正常,对方发送、接收正常;控制报文发送速率,流量控制。

2024-09-20 17:18:49 1113

原创 9.19学习记录

当我们执行 UPDATE、DELETE 语句时,如果 WHERE条件中字段没有命中唯一索引或者索引失效的话,就会导致扫描全表对表中的所有行记录进行加锁。RIGHT JOIN 的特点是返回右表的所有记录,以及左表中匹配的记录。如果左表中没有匹配的记录,则结果中的相应列将包含 NULL。虚引用:任何时候都可能被回收,主要用来跟踪对象被垃圾回收的活动。织入:将通知应用到目标对象,进而生成代理对象的过程。连接点:目标对象的类中所有的方法,都是连接点。软引用:有内存不回收,没内存回收。切入点:被切面拦截的连接点。

2024-09-19 11:24:29 494

原创 9.18学习记录

通过 ReentrantLock 实现了互斥访问和 Condition 实现了线程间的等待和唤醒操作。一级缓存是 MyBatis 自动开启的,主要用于减少同一 SqlSession 内的重复查询。二级缓存需要显式配置,并且可以在多个 SqlSession 之间共享,适用于跨事务的查询优化。底层是一个基于 PriorityQueue 实现的一个无界队列。浅拷贝会创建一个新的对象,与原对象共用一个内部对象。深拷贝会完全复制整个对象,包括内部对象。缺点:依赖有序数据,可能会二次查询。缺点:依赖有序的数据。

2024-09-18 16:46:34 451

原创 9.15学习记录

即使应用程序没有处理该事件,只要条件仍然满足,epoll_wait() 在后续的调用中仍会报告相同的事件。边缘触发:当一个文件描述符的状态从“未准备就绪”变成“准备就绪”的时候,epoll_wait() 会报告一次事件。Propagation_nested:如果存在事务,创建一个事务当作当前事务的嵌套事务,否则创建一个新事务。Propagation_requires-new:创建一个新的事务,如果当前有事务,挂起当前事务。Propagation_required:如果存在事务就加入,否则创建一个新事务。

2024-09-15 15:41:09 1032

原创 9.14学习记录

Redis是远程字典服务器,使用ANSIC语言编写的完全开源的键值型数据库,提供了丰富的数据类型,数据保存在内存中,支持事务、持久化、发布订阅、lua脚本等多种特性,提供了主从、哨兵、集群等多种架构InnoDB支持事务支持外键支持行级锁支持故障恢复Myisam不支持事务支持表级锁支持全文索引支持压缩Memory存储在内存中快速访问Archive支持压缩存储,适合大量数据的归档存储。

2024-09-14 11:53:12 1131

原创 9.13学习记录

可以用json来实现,json是一种轻量级数据交换格式,而且易于读取。数据偏移、保留、标志位、滑动窗口大小、校验和、紧急指针、选项、数据。原子性:事务是最小单位不允许分割,要么同时成功,要么同时失败。从他们的优势劣势、文件保存、触发机制、启用禁用方面来回答。隔离性:并发访问数据库时一个事务不会对其他事务产生干扰。单一职责、开闭、接口隔离、迪米特、依赖倒置、里氏替换。持久性:事务提交之后,对数据库的改变是永久的。New、反射、克隆、静态工厂方法、单例模式。排行榜、评分系统、推荐系统。

2024-09-13 11:51:03 586

原创 常见网络攻击概括

3.SYN-Cookie:服务器使用 SYN-ACK 数据包响应每一项连接请求,而后从积压工作中删除 SYN 请求,同时从内存中删除请求,保证端口保持打开状态并做好重新建立连接的准备。指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方 直接对话,但事实上整个会话都被攻击者完全控制。目标因请求而达到饱和,且无法响应正常流量后,将拒绝来自实际用户的其他请求。攻击时,伪造大量的合法 IP 地址,向目标发送 RST 数据,使服务器不对合法用户服务。

2024-09-06 09:37:10 354

原创 Spring Boot相关知识

Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象实现了EJB的功能。缺点:虽然Spring的组件代码是轻量级的,但他的配置却是重量级的(需要大量xml配置),除此之外,相关库的依赖、版本冲突也非常常见。Spring Boot Staters是一系列依赖关系的集合,因为它的存在,项目的依赖关系对我们来说变得更加简单了。YAML是一种人类可读的数据序列化语言,通常用于配置文件。优点:YAML文件具有结构化的特点,直观清晰,有层次感。

2024-08-06 11:29:37 1205 1

原创 Redis3

请求去查询一条记录,先查redis没有,再查数据库也没有,请求每次都打在数据库上面,导致数据库压力暴增,这种现象称为缓存穿透解决:1.空对象缓存或者缺省值2.布隆过滤器redis中有大量key同时过期大面积失效,后面的请求都直接落到了数据库上,造成数据库短时间内承受大量请求。解决:1.将某些key设置为永不过期或者将过期时间错开2.缓存集群实现高可用3.多缓存结合预防4.服务降级。

2024-08-05 14:21:23 525

原创 Redis2

实现类似照片记录效果的方式,就是把某一时刻的数据和状态以文件的形式写到磁盘上,也就是快照。这样一来即使故障宕机,快照文件也不会丢失,数据的可靠性也就得到了保证。这个快照文件就称为RDB文件(dump.rdb)以日志的形式来记录每个写操作,将Redis执行过的所有写命令记录下来,只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据。

2024-08-04 12:21:31 461

原创 Redis1

所谓 I/O 多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作。当某条连接有新的数据可以处理时,操作系统通知应用程序,线程从阻塞状态返回,开始进行业务处理。Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其它客户提供服务,而 I/O 多路复用就是为了解决这个问题而出现。

2024-08-03 15:06:15 451

原创 JVM相关知识3

比如在Tomcat中,类加载器所采用的加载机制就和传统的双亲委派模型有一定区别,当缺省的类加载器接收到一个类的加载任务时,首先会由它自行加载,当它加载失败时,才会将类的加载任务委派给它的超类加载器去执行,这同时也是Servlet规范推荐的一种做法。功能强大,但是收费。原则:防止出现OOM,进行JVM规划和预调优,解决程序运行中各种OOM,减少Full GC出现的频率,解决运行慢、卡顿问题。-Xms3550m:等价于-XX:InitialHeapSize,设置JVM初始堆内存为3550M。

2024-08-03 08:09:29 547

原创 JVM相关知识2

源代码经过编译器编译之后便会生成一个字节码文件,字节码是一种二进制的类文件,它的内容是JVM的指令,而不像C、C++经由编译器直接生成机器码。

2024-08-02 08:24:46 835

原创 JVM面试题

可达性分析算法是以根对象集合(GC Roots)为起始点,按照从上至下的方式搜索被根对象集合所连接的目标对象是否可达。使用可达性分析算法后,内存中的存活对象都会被根对象集合直接或间接连接着,搜索所走过的路径称为引用链(Reference Chain)。如果目标对象没有任何引用链相连,则是不可达的,就意味着该对象己经死亡,可以标记为垃圾对象。1.虚拟机栈中引用的对象2.方法区中常量引用的对象3.本地方法栈中引用的对象4.Java虚拟机内部的引用5.所有被同步锁持有的对象。

2024-08-01 10:40:52 934

原创 计算机网络面试题3

一切网络设备都由MAC地址唯一标识。ARP地址解析协议,解决了IP地址转MAC地址的一些问题。

2024-07-30 11:58:49 439

原创 计算机网络面试题2

WebSocket是一种基于TCP连接的全双工通信协议,即客户端和服务器可以同时发送和接收数据。

2024-07-29 12:19:50 429

原创 计算机网络面试题1

服务器推送:HTTP/2.0支持服务器推送,可以在客户端请求一个资源时,将其他资源一并推送给 客户端,HTTP/1.1需要客户端自己发送请求来获取相关资源。二进制帧:HTTP/1.1使用文本格式的报文,HTTP/2.0使用二进制帧进行数据传输,更加紧凑和高 效,减少了传输的数据量和带宽消耗。:HTTP超文本传输协议,FTP文件传输协议,DNS域名管理系统,SMTP简单邮件发送协议,SSH安全的网络传输协议。

2024-07-28 12:28:45 1166

原创 MySQL面试题

第三范式:满足第二范式的前提下,表的每一列必须和主键有直接关系,不能是间接关系,消除传递依赖。id:select查询的执行序列号,按照表顺序(id相同,从上向下,大值优先)第二范式:满足第一范式的前提下,表的每一列都必须和主键有关系,消除部分依赖。(1)char定长,varchar长度可变,varchar的空间利用率高。B+:只有叶子节点存储data,叶子节点有指向相邻叶子节点的指针。InnoDB支持行级锁,MyISAM支持表锁,不支持行级锁。5.or分别开的条件,前面列有索引,后面没有,都会失效。

2024-07-05 17:26:17 386

原创 JAVA集合类

LinkedHashSet:HashSet的子类,底层是数组+双向链表,存放的是Entry类型对象。LinkedList:实现双向链表和双端队列特点,便于插入和删除,线程不安全,增删效率较高,改查效率较低。Vector:底层也是数组,线程安全,扩容与Array不同的是后期按照2倍扩容,效率不如Array。ArrayList:可变数组,允许所有元素,包括null,适合快速的随机访问,线程不安全。:线性方式存储对象,有序,可以通过对象的索引来操作对象,可以包含重复对象。:提供了将键映射到值的对象。

2024-07-04 14:36:08 321

原创 类的高级特性

在Object类中定义了一个getClass()方法,该方法返回一个类型为Class的对象。如果在一个类中再定义一个类,就将在类中再定义的那个类称为内部类。(2)该内部类可以访问当前代码块的常量以及外部类的所有成员。2.Out类必须有一个带参数的构造方法,该参数为A类。(1)内部类中可以随意使用外部类的成员方法及变量。(1)创建静态内部类的对象,不需要其外部类的对象。(2)内部类的实例一定要绑在外部类的实例上。(1)以对象名替代内部类的名字。Out类继承 A类内部的B类。:在类的方法中定义的内部类。

2024-07-03 10:20:47 239 1

原创 C. Queries for the Array

codeforces 154

2023-09-26 16:46:24 348

原创 C. Insert Zero and Invert Prefix

codeforces 876c

2023-06-09 10:12:27 715

原创 C. No Prime Differences

codeforces 877 c

2023-06-08 08:33:55 310 2

原创 C. Card Game

codeforces136

2023-05-27 12:02:46 712

原创 E1 - Divisible Numbers (easy version)(hard version)

codeforces828

2023-05-26 10:25:11 928

原创 Make Nonzero Sum (easy version)(hard version)

codeforces 829c1

2023-05-25 18:48:51 812

原创 Yet another ProblemHint 1

codeforces832d

2023-05-24 15:22:56 829

原创 C. Hamiltonian Wall

规定从左边开始走(从左或者右都是一样的),如果起点所处列两个都是B,那么分别枚举两个作为起点,在一步一步走的过程中,有当前列的B先走当前列的,再向右走,如果遇到W,就是NO,可以用一个标记表示下一步要走到右边的第一行还是第二行。首先,起点一定是在两边,因为不能重复走,从中间开始走只能先一个方向。

2023-05-22 12:30:47 489

原创 Flexible String

codeforces 848

2023-05-15 20:21:46 391

原创 C. Maximum Set

最小数是l, 先算出 l 连乘几个2会刚好小于等于r , 假设为num,那么第一个需要输出的数就是num,再通过二分找有多少个数能连乘num个2 <= r,但这还比实际答案小,因为还有一种情况是乘3,(4及以上不行因为4已经是2的倍数),多一个3多1.5倍,多两个是2.25倍就相当于多放一个2多一点,但是原num已经是最大的2,再放就超过r了,所以3最多只能放一个,也可以用二分来求。这个集合里的数后一个一定是后一个数为前一个数的倍数,那么2倍肯定是最好的,

2023-05-11 20:28:34 228

原创 C. LuoTianyi and the Show

codeforces872

2023-05-10 15:33:39 139

原创 codeforces 870 div2

codeforces870

2023-05-08 15:42:12 127

原创 DP练习题

dp练习

2023-05-05 22:25:43 648

原创 F. Inverse Manacher

【代码】F. Inverse Manacher。

2023-05-03 17:04:26 150

原创 B. Long Legs

codeforces146

2023-04-30 09:23:06 939

原创 D. Li Hua and Tree

codeforces 864

2023-04-28 13:54:21 107

原创 The Butcher

当时我想的是两个结构体,都排序,然后记录下标哪个被用过,写着写着觉得太麻烦去看题解,还是大佬的代码简洁,multiset很方便。差距还体现在解决问题的方法上。对大佬代码作简单的注释。

2023-04-27 22:28:04 115

原创 ZJOI2006

来源:牛客网物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是一件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个n天的运输计划,使得总成本尽可能地小。

2023-04-16 10:31:02 83

原创 牛客小白月赛60

牛客小白月赛60

2022-11-16 08:20:50 148

空空如也

空空如也

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

TA关注的人

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