- 博客(27)
- 收藏
- 关注
原创 07-算法打卡-链表-移除链表-leetcode(203)-第七天
203. 移除链表元素 - 力扣(LeetCode)203. 移除链表元素 - 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。
2025-04-13 19:53:24
676
原创 05-算法打卡-数组-二分查找-leetcode(367)-第五天
367. 有效的完全平方数 - 力扣(LeetCode)367. 有效的完全平方数 - 给你一个正整数 num。如果 num 是一个完全平方数,则返回 true ,否则返回 false。完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。不能使用任何内置的库函数,如 sqrt。示例 1:输入:num = 16输出:true解释:返回 true ,因为 4 * 4 = 16 且 4 是一个整数。
2025-04-13 19:52:26
584
原创 04-算法打卡-数组-二分查找-leetcode(69)-第四天
69. x 的平方根 - 力扣(LeetCode)69. x 的平方根 - 给你一个非负整数 x ,计算并返回 x 的 算术平方根。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。示例 1:输入:x = 4输出:2示例 2:输入:x = 8输出:2解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。提示: * 0 <= x <= 231 - 1。
2025-04-12 21:55:15
731
原创 03-算法打卡-数组-二分查找-leetcode(34)-第三天
当target>middle,target在右区间,向右移动,left=middle+1;当target<middle,target在左区间,向左移动,right=middle-1;当target=middle,数组存在相等的情况,target在右区间,向右移动,left=middle+1;
2025-04-12 11:44:09
805
原创 02-算法打卡-数组-二分查找-leetcode(35)-第二天
35. 搜索插入位置 - 力扣(LeetCode)35. 搜索插入位置 - 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。
2025-04-11 15:41:50
965
原创 01-算法打卡-数组-二分查找-leetcode(704)-第一天
数组可以通过下标索引快速获取数据,因为数组的存储空间是连续的所以在删除、更新数据的时候需要移动其他元素的地址。下图是一个数组的案例图形:【内存连续、索引小标从0开始可以依次获得数据】删除113位置的数据,删除前和删除后对照数组的元素是不能删除的,只能覆盖。
2025-04-11 11:57:42
955
原创 02-redis-数据结构实现原理
在redis中整体是KV键值对的方式进行访问的,redis的查询的时间复杂度O(1),底层的数据结构其实跟java中的HashMap底层实现类似,整体采用的是数组+链表的实现方式,哈希冲突的时候使用的是链表法解决;在redis中这个数组对应的数据结构是,数组的每个节点是,节点中的key使用的是,value使用的是,redisObject中除了会存储value值,还会存储对应的(String、hash、list、set、zset)以及对应的编码格式(比如String类型会有int emstr raw)
2025-04-10 22:18:55
1075
原创 01-Redis-基础
redis的作者笔名叫做antirez,2008年的时候他做了一个记录网站访问情况的系统,比如每天有多少个用户,多少个页面被浏览,访客的IP、操作系统、浏览器、使用的搜索关键词等等(跟百度统计、CNZZ功能一样)。最开始存储方案用MySQL,但是实在慢的不行,09年的时候antirez就自己写了一个内存的list,这就是redis。最开始redis支持List。现在数据类型丰富了、功能也丰富了,在全世界都非常的流行。redis(REmote DIctionary Service),远程字典服务。
2025-04-08 22:16:28
1023
原创 10-MySQL-性能优化思路
原则:使用可以正确存储数据的最小数据类型,为每一列选择合适的字段类型。比如整数类型: tinyint smallint mediumint int integer bigint bit,不同的类型最大的存储范围是不一样的,占用的存储空间也是不一样的,比如性别,只有男、女这种枚举类型,可以使用tinyint字段存储。字符类型varchar char,变长情况下使用varchar更节省空间,但是对于varchar字段,需要一个字节来记录长度。比如联系地址。固定长度使用char,比如手机号码等等。
2025-04-07 21:53:05
1584
1
原创 09-MySQL-死锁
事务结束(commit, rollback)或者客户端连接断开的时候会释放锁。如果一个事务一直未释放锁,其他事务会被阻塞多久,会不会一直等待下去?如果一直等待下去在并发访问比较高的情况下,如果大量事务因为无法获得所需的锁挂起,会占用大量的计算机资源,造成严重性能问题,甚至拖垮数据库。MySQL有一个参数来控制获取锁的等待时间,默认是 50 秒。对于死锁这种无法获取到锁的情况,还要等待50秒,这样就会浪费50秒的时间。
2025-04-03 11:00:00
1308
原创 08-MySQL InnoDB锁的基本类型
MyISAM只支持表锁,而InnoDB同时支持表锁和行锁。表锁和行锁的区别到底在哪里?锁定粒度:表锁 > 行锁加锁效率:表锁 > 行锁冲突概率:表锁 > 行锁并发性能: 表锁 < 行锁表锁锁粒度大,加锁快,锁的并发性能低,而行锁锁粒度小,加锁慢,锁的并发性能高。
2025-04-02 11:59:55
1261
原创 07-MySQL-事务的隔离级别以及底层原理
可重复读(Repeatable Read)不可能不可能不可能不可能不可能InnoDB支持的四个隔离级别和SQL92定义的完全一致,隔离级别越高,事务的并发度越低。唯一的区别就在于,InnoDB在PR的级别就解决了幻读的问题。也就是说,不需要使用串行化的隔离级别去解决所有问题,既保证了数据的一致性,又支持了越高的并发度。这个就是InnnoDB默认使用的RP作为事务隔离级别的原因。
2025-03-31 21:36:50
1145
原创 06-MySQL-数据库事务
事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。这里面有两个关键点,第一个,所谓的逻辑单位,意味着它是数据库最小的工作单元,是不可以再分的。第二个,它可能包含了一个或者一系列的 DML语句,包括insertdelete update。(单条 DDL(create drop)和DCL(grant revoke)也会有事务)
2025-03-28 23:51:39
883
原创 04-MySQL-索引存储模型推演
1、它的关键字的数量是跟路数相等的;1)比如我们要查找 28,在根节点就找到了键值,但是因为它不是页子节点,所以会继续往下搜寻,28 是[28,66)的左闭右开的区间的临界值,所以会走中间的子节点,然后继续搜索,它又是[28,34)的左闭右开的区间的临界值,所以会走左边的子节点,最后在叶子节点上找到了需要的数据。还是刚才的这一批数字,如果我们插入的数据刚好是有序的,2、6、11、13、17、22、它会变成链表(我们把这种树叫做“斜树”),这种情况下不能达到加快检索速度的目的,和顺序查找效率是没有区别的。
2025-03-24 12:55:11
1170
原创 01-MySQL-SQL执行流程
得到解析树之后,是不是执行SQL语句了呢?这里我们有一个问题,一条SQL语句是不是只有一种执行方式?或者说数据库最终执行的SQL是不是就是我们发送的SQL?这个答案是否定的。一条SQL语句是可以有很多种执行方式的,最终返回相同的结果,他们是等价的。但是如果有这么多种执行方式,这些执行方式怎么得到的?最终选 择哪一种去执行?根据什么判断标准去选择?这个就是MySQL的査询优化器的模块(Optimizer)。
2025-03-22 23:05:56
994
原创 tomcat-面试题整理
定义: Tomcat服务器是一个免费开放源代码的web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。tomcat_百度百科在tomcat/conf存放了各种配置文件如:server.xml、tomcat-user.xml、web.xml;a、server.xml服务器相关的配置server:创建tomcat的Server,默认的实现类是StandardServer。
2025-03-22 11:38:54
917
2
原创 Tomcat-服务器、web、管理配置
服务器配置服务器配置Tomcat服务器的配置主要集中于下的server.xmlweb.xml文件server.xml是tomcat服务器的核心配置文件,包含了Tomcat的Servlet容器(Catalina)的所有配置。由于配置的属性特别多,我们在这里主要讲解其中的一部分重要配置。Server是server.xml的根元素,用于创建一个Server实例,默认使用的实现类是org.apache.catalina.core.StandardServer。
2025-03-21 14:58:36
1280
原创 tomcat-Jasper
解析指令节点, 验证其是否合法,同时将配置信息保存到PageInfo 中, 用于控制代码生成。但是无论经过何种形式的处理,最终输出到客户端的都是标准的HTML。,最终将访问的结果直接响应在浏览器端。另外,在运行的时候,应用运行过程中,便可以不必再进行实时编译,而是直接调用JSP。包等,便于后续处理过程中使用(如重新编译检测,因此它以Map。文件, 而是在客户端第一次请求时,才编译需要访问的JSP。) 如果没有配置该选项, 则会将编译后的结果,存储在。, 该类是HttpServlet 的子类 , 所以。
2025-03-21 11:58:07
689
原创 Tomcat基础以及整体架构
每一级的组件除了完成自身的处理外,还要负责调用子组件响应的生命周期管理方法,组件与组件之间是松耦合的,因为我们可以很容易的通过配置文件进行修改和替换。中的各个组件各司其职,组件之间松耦合,确保了整体架构的可伸缩性和可拓展性,那么在组件内部,如何增强组件的灵活性和拓展性呢?这里单容器对象指的是最底层的Wrapper。容器实现,包含了之前讲到的所有的容器组件,以及后续章节涉及到的安全、会话、集群、管理等Servlet。Tomcat采用了组件化的设计,它的构成组件都是可配置的,其中最外层的是Server。
2025-03-20 17:57:33
1437
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人