- 博客(34)
- 收藏
- 关注
原创 索引面试题总结
在之前a>1 的时候,b=2是无序的,但是现在a>=1,这里面包含了a=1,对于符合a=1 夜间的二级索引记录的范国里,b字段的值是「有序」的(因为对于联合索引,是先按照 a字段的值排序,然后在a字段的值相同的情况下,再按照b字段的值进行排序)(联想到这个最左匹配原则去思考问题)由于树是存储在磁盘中的,访问每个节点,都对应一次磁盘 I/O 操作(假设一个节点的大小「小于」操作系统的最小读写单位块的大小),也就是说树的高度就等于每次查询数据时磁盘 IO 操作的次数,所以树的高度越高,就会影响查询性能。
2024-10-12 09:07:53
1167
原创 MySQL索引知识个人笔记总结(持续整理)
在之前a>1 的时候,b=2是无序的,但是现在a>=1,这里面包含了a=1,对于符合a=1 夜间的二级索引记录的范国里,b字段的值是「有序」的(因为对于联合索引,是先按照 a字段的值排序,然后在a字段的值相同的情况下,再按照b字段的值进行排序)(联想到这个最左匹配原则去思考问题)由于树是存储在磁盘中的,访问每个节点,都对应一次磁盘 I/O 操作(假设一个节点的大小「小于」操作系统的最小读写单位块的大小),也就是说树的高度就等于每次查询数据时磁盘 IO 操作的次数,所以树的高度越高,就会影响查询性能。
2024-09-18 10:21:19
1249
原创 Selenium with Python学习笔记整理(网课+网站持续更新)
是 HTML 元素的一个属性,用于标识多个元素共享的样式或功能,因此使用。定位一个元素(通常是一个输入框),然后向这个输入框中输入。输出找到的链接数量,方便确认是否正确定位了页面上的所有链接。(推荐靠谱的博客文章来进行环境配置,具体的我就不写了)│ └── test_search.py # 测试用例。│ ├── __init__.py # 初始化文件。│ ├── element.py # 页面元素封装。│ ├── __init__.py # 初始化文件。│ └── page.py # 页面对象类定义。
2024-09-18 10:15:27
1149
原创 【Python】编程学习笔记
面向对象编程(OOP):类的定义与使用、构造方法__init__和实例方法、重载__eq__方法、类的继承与方法重写、多继承、多态。类型注解:变量和集合类型注解、联合类型Union注解。随机数生成:生成随机数。JSON 数据解析:解析 JSON 数据。错误示例:有错误的代码示例,需要修正。
2024-07-27 15:35:02
462
原创 【黑马点评】面试可能被问整理
我们可以在写入数据库数据时,使用布隆过滤器做个标记,然后在用户请求到来时,业务线程确认缓存失效后,可以通过查询布隆过滤器快速判断数据是否存在,如果不存在,就不用通过查询数据库来判断数据是否存在,即使发生了缓存穿透,大量请求只会查询 Redis 和布隆过滤器,而不会查询数据库,保证了数据库能正常运行,Redis 自身也是支持布隆过滤器的。如果缓存中的某个热点数据过期了,此时大量的请求访问了该热点数据,就无法从缓存中读取,直接访问数据库,数据库很容易就被高并发的请求冲垮,这就是缓存击穿的问题。
2024-07-23 13:00:00
3007
原创 软件测试常见面试题【附答案】
TCP是面向连接的,UDP是无连接的TCP是可靠的,UDP是不可靠的TCP是面向字节流的,UDP是面向数据报文的TCP只支持点对点通信,UDP支持一对一,一对多,多对多TCP报文首部20个字节,UDP首部8个字节TCP有拥塞控制机制,UDP没有TCP协议下双方发送接受缓冲区都有,UDP并无实际意义上的发送缓冲区,但是存在接受缓冲区登录界面的测试用例面试问烂了的测试用例: 登录界面的测试用例_登录测试 不存在的用户怎么提示-优快云博客如何设计测试用例。
2024-07-14 10:30:00
4887
原创 测试面试题【jmeter/postman工具的使用】
设置请求Body: 对于POST请求或者其他需要传递Body的请求,可以在Postman中设置请求的Body。在添加 HTTP 请求时,我们需要填写请求的 URL 和请求参数。在弹出的窗口中,选择请求的类型(GET、POST等),填入请求的URL,选择请求的Header、Body等信息。HTTP 请求是一个发送 HTTP 请求的元素,它可以模拟客户端向服务器发送请求的过程。查看响应: 在发送请求后,可以查看Postman显示的响应信息,包括响应的状态码、响应体等。可以根据需要进行断言、验证响应的正确性。
2024-07-13 15:30:00
357
原创 【java面试题】个人总结
方便:提高代码的复用性:比如将String类型和Integer类型放入List集合中,放String类型的时候需要定义一个List接口,而放Integer类型需要在定义一个接口,那么这样的化代码比较冗余,使用泛型很好的解决整个问题。举个简单的例子,比如说造一辆车,车具有方向盘,轮胎等属性,跑起来,转弯这些行为,我们将这些属性和行为进行抽象并且组合成一个Car类,这就是面向对象编程。在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法,对于任意一个对象,哦都能够调用它的任意一个方法和属性 就是反射。
2024-07-12 16:40:39
906
1
原创 Java最常见的面试题:什么是缓存穿透?解决方案?
当我们在数据库里面写入数据的时候,每写入一个数据都要标记在布隆过滤器上,当用户请求数据的时候,发现缓存里面没有这个数据,业务线程确认缓存失效后,就可以通过布隆过滤器查询有没有想要的那个数据,不存在就不用通过数据库查询数据是否存在,就不会造成缓存穿透了。缓存穿透就是:当用户来请求数据的时候,发现缓存里面没有想要请求的数据,就奔向数据库,但是数据库也没有他们请求的这个数据,那么当有大量这样的请求到来时,数据库的压力骤增,这就是缓存穿透的问题。黑客恶意攻击:拿着缓存和数据库里面根本没有的数据来访问。
2024-06-24 18:30:00
579
原创 最全测试开发面经总结
什么是死锁?死锁如何解决?-优快云博客什么是死锁死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。通俗一点就是当多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进 ,这种情况就是死锁若没有外力作用 锁死涉及到的线程都会处于永远封锁状态竞争资源引起进程死锁。
2024-06-23 18:00:00
1611
1
原创 【黑马点评】面试题总结(通俗易懂版)
利用set nx ex 获取锁(set nx充满互斥性)(利用set ex保证故障时锁依然能释放,记住这句话,就是为了避免死锁 提高安全性)(利用redis集群保证高可用和高并发特性)并设置过期时间,保存线程标示释放锁时先判断线程标示是否一致,一致则删除锁Ression分布式锁可重入是指在同一线程可以多次获取同一把锁比如a要调用b,同时a要获取锁,b也要获取同一把锁,如果不可重入,则b就获取不了锁,要等a释放锁,b才可以获取锁,如果可重入,则能同时获取锁不可重入:同一线程不可以获取同一把锁。
2024-06-23 15:15:00
9310
1
原创 redis面试题汇总(通俗易解版)
在redis主从架构中,部署方式一般是一主多从,主节点提供写操作,从节点提供读操作主节点的网络突然发生问题,它与所有的从节点失联了,但是测试的主节点和客户端的网络是正常的,这个客户端并不知道redis内部已经出现了问题,还在照样的向失联的主节点写数据,此时这些数据被旧节点缓存到了缓冲区里,因为主节点之间的网络问题,这些数据都是无法同步给从节点的哨兵以为主节点挂了,就从中选一个leader来上任主节点。
2024-06-23 13:45:00
534
原创 Vector底层结构和源码剖析|分析HashSet的扩容和转成红黑树机制【源码解析】
定义一个Employee类,该类包含: private成员属性name,age要求: 1.创建3个Employee放入HashSet中 2.当name和age的值相同时,认为是相同员工,不能添加到HashSet集合中。要使属性的值相同时不能加入到集合中就chong'xie重写equals就行(alt+insert)linkedlist一样。链表元素到8个之后再加元素到这一条链表的话,数组会自动扩容,直到满足树化的条件。查看源码和上一篇的差不多一样一样的,只不过扩容机制这里有点不一样。还有好多分析不下去了。
2024-06-22 18:30:00
399
原创 ArrayList底层操作机制源码分析
(1)真的扩容 (2)使用扩容机制来确定要扩容到 多大 (3)第一次newCapacity =10 (4)第二次及其以后,按照1.5倍 扩容 (5)(1) modCount++记录集合被修改的次数 (2)如果elementData的大小不够,就调用grow()去扩容。就先到这了,这是我自己一遍遍调试并截图总结出来的,废话不多说先赶进度了。执行list.add (1)先确定是否要扩容 (2)然后在执行赋值。Step over 到创建的指定大小的elementDate数组。不够用了开始扩容,到扩容机制。
2024-06-22 15:15:00
255
原创 [java日常学习笔记]零钱通项目
子类可以重写该方法做一些释放资源的操作 2.什么时候被回收:当某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁该对象,在销毁该对象前,会先调用finalize方法。3.垃圾回收机制的调用,是由系统来决定(即有自己的GC算法),也可以通过 System.gc()主动触发垃圾回收机制,1.断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一 行就会停住,然后可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。
2024-06-19 18:45:00
386
原创 请求处理、响应处理(请求映射,基本注解响应JSON、内容协商的一点笔记)
多个值可以用逗号隔开,比如 “color=red,green,blue”,或者分开写 “color=red;没成功,缺着点比较重要的,反正就是不知道哪缺了,除了能访问个网页其他都没访问成功,先这样吧等有更多的时间了又回来再刷一遍,源码部分直接跳过了,实在是太多了看不下去一点,之前学javase的时候明明很有耐心的,现在就这样吧。除了没分析源码外,其他的我自己跟着手敲了一遍理解了一下评论区的同学们标注的知识点,然后没学过的或者没学好的知识都去搜了学,狂补内容。在这个网页,老师笔记做的很完美真的很棒!
2024-06-17 14:09:47
728
原创 Java基础学习笔记整理
String保存的是字符串常量, 里面的值不能更改,每次String类的更新实际 上就是更改地址,效率较低//private final char value[];StringBuffer保存的是字符串变量,里面的值可以更改,每次 StringBuffer的更新实际上可以更新内容,不用每次更新地址,效率较高。StringBuilder和StringBuffer均代表可变的字符序列,方法是一样的,所 以使用和StringBuffer一样。String是一个final类, 代表不可变的字符序列。
2024-06-17 13:28:09
1006
原创 黑马程序员Springboot2简单学习笔记
重写上述三个方法,preHandle方法中获取session,如果为空则拦截,转发到login页面,并提示“请登录”,不为空则放行。访问网站的时候,不经过login直接访问后续网页时不被允许的,可以先将登录信息放入session中,当访问后续页面的时候,看看session中是否有值就可以了,但是当页面多了,每个页面都得判断这就太麻烦了。Servlet 的doGet()方法 https://blog.youkuaiyun.com/qq_40395874/article/details/113885985。
2024-06-16 15:25:15
1113
原创 请求处理、响应处理(请求映射,基本注解响应JSON、内容协商的一点笔记)
cookie 和 session 的机制就是,session里面保存一个k-v的值,然后每个人都有一个jsessionid,这个jsessionid 会被保存在cookie里面,每次用户发送请求cookie 都会携带jsessionid ,如果把cookie 禁用掉,我们要获取session 的k获取v ,肯定要通过jsessionid来拿到这个session对象,但是jsession有保存在cookie 所以无法从session对象的v。在这个网页,老师笔记做的很完美真的很棒!
2024-06-11 18:45:00
2086
原创 关于赃读 不可重复读 幻读
为解决赃读问题,可以将 set session transaction isolation level read uncommitted;中read uncommitted改为read committed;为解决不可重复读问题,可以将 read committed改为Repeatable Read。下面这个,我自己跟着老师弄都没弄出来只能截一下他的图。就说明read uncommitted是存在赃读问题的。这里,我真的搞了好久才给它弄明白一点!这样就规避了赃读的问题。
2024-06-10 18:00:00
296
原创 MySQL的相关笔记整理
做一点关于mysql的笔记。记一下笔记参考文章MySQL在表中插入中文时报错:ERROR 1366 (HY000)/ Incorrect string value/ ‘\xE6\x9D\x8E\xE5\x8B\x87’ for column 'S怎么解决。
2024-06-10 15:00:00
345
原创 学习Spring框架的笔记整理
Order( )//指定有个优先级的值 值越小 优先级越高!越高的前置先执行 后置后执行//Order低的优先执行 优先级越高 在外包着。
2024-06-10 13:45:00
756
原创 《黑马点评》至此告一段落啦
在关系数据库中,数据以表格的形式存储,每个表格称为一个关系(relation),而表格中的每一行称为一个元组(tuple)。跟6一样的有2个,则下一次查询的offset为2,上一次查询分析出来的信息就作为下一次查询的参数。最大值为上一次查询的最小值、偏移量第1次给0,第1次后给在上一次的结果中,与最小值一样的元素的个数。最大值为上一次查询的最小值、偏移量第1次给0,第1次后给在上一次的结果中,与最小值一样的元素的个数。offset偏移量:第一次:0 在上一次的结果中,与最小值一样的元素个数。
2024-06-09 20:15:00
819
原创 《苍穹外卖》电商实战项目的一点笔记整理
笔记全在项目代码里面 比较重要且难@Aspect@Component@Slf4j/*** 切入点:对哪些类的哪些方法进行拦截* ①定义切入点,即统一拦截加入了AutoFill 注解的方法*///*.*(..)表包里面所有的类所有的方法// @Pointcut里面写的是对哪些方法进行拦截,要满足2点:①必须是mapper下的所有类的方法,②还要有AutoFill这个注解。/*** 前置通知 在通知中进行公共字段的赋值*/log.info("开始进行公共字段自动填充...");/*
2024-06-09 12:15:00
2898
原创 《黑马点评》异步秒杀优化|消息队列
就是我们常说的MQ,英文叫Message Queue,是作为一个单独的中间件产品存在的,独立部署。下面的我听不懂了,就自己跟着写了一下脚本改了一下代码太绕了,等我有时间又回来重新学吧。放入阻塞队列之后要去执行义务下单,这个任务认为百分百成功,因为库存是足的,怎么操作?1.初始化时执行线程池,线程池业务就是从这个组合队列不断的取出这个订单,去创建。3.创建订单:一人一单进来,做一个判断是否存在,做一个库存判断 ,创建订单。2.创建的流程:获取锁什么的,锁拿到去创建订单。基于阻塞队列的异步秒杀存在哪些问题?
2024-06-08 15:00:00
1248
原创 《黑马点评》优惠券秒杀的一点笔记
关于代理对象事务的问题:通常情况下,当一个使用了@Transactional注解的方法被调用时,Spring会从上下文中获取一个代理对象来管理事务。但是如果加@Transactional方法是被同一个类中的另一个方法调用时,Spring不会使用代理对象,而是直接调用该方法,导致事务注解失效。因此最终方案是把synchronized加在createVoucherOrder的方法外部,锁住的是用户id。首先不建议把锁加在方法上,因为任何一个用户来了都要加这把锁,而且是同一把锁,方法之间变成串行执行,性能很差。
2024-06-08 11:15:00
991
原创 Mybatis增删改查
这mybatis算是我学框架以来学的最顺利最舒畅的一部分了,一天就给基础视频全部搞定了。吃大亏了,之前应该先好好的把spring mvc和mybatis部分学完了再去学sprngboot的,这样就不会那么吃力了,前两天单独一个拦截器就搞了三天。然后出现了插入中文报错问题,我想永久解决这个问题去看了一下my.ini文件发现明明都已经改了怎么还是这个样子,算了我也不想搞了真的解决不完这么多问题。然后到了晚上又恢复正常了。这idea真是时不时犯病!先记一下cmd启动mysql命令,两星期之前学的感觉快忘记了。
2024-06-07 20:08:29
195
原创 利用互斥锁|逻辑过期解决缓存击穿问题
1 在ShopServiceImpl类中定义一个tryLock方法(在Redis中的setnx相当于setIfAbsent方法。setnx,是「 set if Not eXists」的缩写)3 ShopServiceImpl类中定义一个queryWithPassThrough方法、在queryWithPassThrough基础上看图修改。逻辑过期解决缓存穿透实现 看图。Java 多线程:线程池。如何添加逻辑过期字段?
2024-06-07 19:30:38
369
原创 Redis的缓存问题|将redis常用操作封 装成工具类
之前发的文章的代码看着实在是太黑太不清楚了,因为之前一直用的midnice网页一键多平台分发的,所以就造成了这样的问题。//这里不知道是什么类型 将来一定会有一个Class告诉你什么类型(泛型推断)//当不确定用的是什么工具的时候 用泛型。Java 8 Function 函数接口。//这里不是Shop 是一个工具。
2024-06-07 19:13:34
409
原创 Redis的缓存问题|将redis常用操作封装成工具类
/这里不知道是什么类型 将来一定会有一个Class告诉你什么类型(泛型推断)//当不确定用的是什么工具的时候 用泛型。Java 8 Function 函数接口。//这里不是Shop 是一个工具。好了,给我学晕了都。
2024-06-07 18:57:14
235
原创 黑马点评短信登录实现
苍穹外卖先写到这里了,剩下的部分先不学了,感兴趣的可以自行去看一下什么的,好累,纠结了半天最终还是决定做黑马点评,每天学的我想紫砂,烂大街就烂大街吧呜呜呜。然而只是简单那么一会儿,今晚学的还是难的,笔记全写代码里面了。,就会越写越顺畅了。
2024-05-20 16:14:40
436
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人