自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode字节面试高频题思路总结(二叉树专栏)

leetcode刷题,一个好的思路很重要,刷leetcode不如就只看好的解题思路,记下来关键思路然后面试的时候就会容易很多。自己的算法思路可能就会有很多冗余代码,跟好的算法思路比起来差距很大,并且看了很多题解就不会出现有没有一点思路的情况。举例:顺时针打印数组,寻找重复数lc287,k个一组翻转链表。287:给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。

2021-09-17 16:14:21 548

原创 测试中心等等

我们自定义一个类加载器,同时不指定它的父加载器,一个classloader只负责加载一个类,那么当新的类需要加载时,我们为其生成一个新的classloader即可。类的卸载必须要有,热加载就需要每次加载都是新的classloader。1.线程池内的线程可以捕获异常和oom,提交时设置超时时间。全链路跟踪,很多面试都要带脑子,猜也能猜个大概的原理。

2024-09-03 22:52:11 114

原创 c++学习笔记

1.返回引用变量不能返回局部变量,局部变量在栈里面由编译器管理回收。话说为什么有返回引用变量??2.结构体改了变量后打印却出现不同??诡异事件。

2022-05-05 22:52:14 798

原创 初高中数学物理学习方法

每天做教辅,做作业,预习。数学物理。时间不够就看教辅,不会的作业看答案,预习可以看着办。估算各部分花的时间每周汇报。副科可以抄作业,边抄边记就行了。很多科目其实都是不用学的。...

2022-03-27 22:10:27 294

原创 leetcode笔记

1.为什么分发糖果可以左边遍历右边遍历取最大值就完事了。左边遍历可以确定左边上坡的值,右边遍历确定下坡的值,然后波峰取两者中更大的那一个。里面的证明包含了贪心算法,找波谷之间的糖果如何分配,波谷全部分配成1,然后后面的上坡加1,波峰要取更大的那个值。...

2022-01-06 20:22:42 309

原创 牛客社区项目总结

第一章、主页功能分页实现,按页码搜索10条帖子信息以及对应的用户信息返回给模板。第二章、1.任务:注册用户,给注册邮箱发送激活邮件,点击邮件的激活链接进行激活。核心实现:mysql用户表存放用户激活情况,用户激活码,盐,md5加密的密码。注册时生成随机盐(随机数都是用的uuid)并且对密码用md5加密,这时发送激活邮件,随机字符串激活码也是uuid生成,并且激活链接必须包含用户以及激活码信息(这里用pathvariable),判断这个路径和mysql里面数据是否对应。2.任务:登录功能。核心实现

2021-12-30 16:20:55 6637 1

原创 kafka学习笔记重点

kafka

2021-12-22 15:05:36 1113

原创 快手面经 (又忘记录音)

1.redis分布式锁相关,问的很细,分布式锁设置时间,可能出现的问题,具体到value以及获取锁释放锁的步骤。2.说这里对算法没过高要求,做业务的,所以算法题考察很简单。去了解微服务可以在公司快速上手。建议就是学习项目,带着学框架,列出遇到的困难,然后学微服务相关的。3.g1回收器...

2021-12-17 18:05:41 463

原创 京东面试 (忘记录音靠回忆写面经)

1.char 和 varchar哪个效率高,怎么存储的,对后面数字的理解2.跨域问题,访问百度的cookie访问京东有效吗3.建议看spring源码,mybatis源码学习,每次看一个点,比如看拦截器的实现。4.问数据库mysql的资料推荐,说的数据库原理课程。5.分布式锁在关锁时的操作,不要直接删除来释放锁。6.下次应该问下对算法题的要求,周赛前500怎么样。7.对称加密算法有哪些,非对称加密底层原理。...

2021-12-16 18:07:33 1416

原创 springmvc部分学习总结

参考黑马b站视频1.返回值返回值字符串,重定向和转发。重定向加redirect: 前缀,返回302,客户端二次http请求。转发是服务器端负责页面跳转。上面有直接返回字符串,也有设置modelandview对象里面的view就是要跳转的页面。加responsebody的情况返回对象或者字符串,直接返回数据到http响应里面。对象会自动解析成json格式。2.获得请求参数获得基本类型,直接写在controller层的方法参数里。获得对象,用pojo封装后写在方法参数里。获得数组,和上面一样的

2021-12-03 14:22:33 65

原创 面经,含有mysql语句面试总结

spring事务传播required ,外部没有事务开启新事务,外部有事务就加入,属于同一个事务,一个回滚全部回滚。非聚集索引:搜答案老是看到很多版本就很烦。比如网上的跟高性能mysql不一样。mysql窗口函数面试题面试完美世界sql失利,故做总结。一般简单的就记住,select from where group by having order by desc limit 0,1但是面试肯定问分组,聚集函数,每一科的最高分。我们要首先找到按哪一列分组,这里肯定是科目,然后max(分数),

2021-11-29 20:56:12 331

原创 rabbitmq总结

1.如何实现削峰改为手动确认应答,用basicqos预取值设置出在多少个消息没有接到应答时停止推送到该消费者(分为推,拉模式,拉会建立很多连接比较慢,推模式建立一个消费者缓冲区可以比较实时)。所以如果缓冲区有比较多的消息未处理时mq就不会继续发送达到限流。2.正常队列,工作队列是多个消费者用一个队列,轮询,公平分发(根据各自处理速度分发)需要设置预取值和手动应答。如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?confirm模式(发送方确认模式),在信道上发布的消息都会被指派

2021-11-28 11:44:33 744

原创 连续子数组的leetcode总结

和为 K 的子数组1.一般看到连续子数组都是dp,dp[i]表示当前i为连续的最后一个。2.滑动窗口也是连续,但是数组值需要为正。3.前缀和也是需要想到的,加上哈希表可以优化到o(n).这里获得前缀和转化问题为b-a=k.哈希表存前面的整数的个数。...

2021-11-26 15:41:52 190

原创 单调栈,找数组右边第一个大于该数的位置

首先回忆这个算法流程。使用一个有特点的测试用例。比如:5 3 1 2 3 4 5从右往左维护单调栈。public static void main(String[] args) {// dfs("", new boolean[4], "abcd"); new Main().dandiaozhan(new int[]{5, 3, 1, 2, 3, 4, 5}); } void dandiaozhan(int[] a) { int i

2021-11-24 11:21:32 259

原创 秒杀项目面试总结

1.介绍项目登录模块:两次md5,防止密码泄漏。分布式session(用到了缓存存sessionid到用户信息,过期时间一周吧,每次登录刷新过期时间),保证多个服务器服务。(参数解析器保证了不用每次都手写用sessionid查缓存用户信息)jsr303校验检查号码格式。全局异常处理器。用户进入商品列表页,选中要秒杀的商品,点击详情进入商品详情页,点击秒杀,秒杀成功,进入订单详情页。用户表,商品表,秒杀商品表(外键商品,库存,秒杀活动时间),订单表(外键用户和商品),秒杀订单表(外键用户商品订单)。

2021-11-18 20:47:33 2260

原创 回溯法总结

零钱兑换dfs+记忆化,dfs返回值为结果,每一层都考虑拿数组中所有元素。组合总和和上面差不多,数字可以无限制重复被选取,但是组合要去重,所以不能取序号在自己前面的数字。组合总和 II和上一题差不多...

2021-10-30 22:38:00 219

原创 2021-10-28

数据库缓存一致性数据库事务中不可重复读与幻读的区别码住,后面看。

2021-10-29 00:00:59 67

原创 滑动窗口leetcode

无重复字符的最长子串吉比特面试时遇到的原题,思考思路用了一点时间,最慌的就是这段时间。然后用笔模拟了一遍双指针的过程,后面就只要分阶段实现思路就行了。这里用的set集合,看题解用map会简单很多。几个技巧:拆分为右指针滑动和左指针滑动,再循环下去。写代码先考虑最普通的情况,之后再考虑一些特殊情况,这里就需要有一个普通的测试用例。最后循环写好再考虑退出条件。其中用到while (true) ,和一些局部变量。public static void main(String[] args) { .

2021-10-28 16:40:01 2968

原创 mysql技术书籍部分总结

...

2021-10-26 23:40:33 75

原创 leetcode字节跳动链表总结

1.反转链表记下来依次加到一个新链表上。2.k个一组翻转链表dummy节点记作0,后面第k个节点就是往后移k次。这里找第n个节点都可以这样子。只有一个pre变量在循环外,只需要标记是哪k个反转。在反转链表的情况下需要断开尾巴。3.相交链表通过双指针+数学公式,需要注意第一次遍历要到null143. 重排链表找链表中点+反转+合并,找中点是找中间靠前的那个,合并时循环外的变量就是每次处理的头节点。144. 环形链表 II就是快慢指针(可以用来找中点while (fast.next !=

2021-10-06 22:20:43 150

原创 2021-09-15

死锁避免有序资源分配法,银行家算法(进程 已占有资源数,还需申请资源数, 系统某类剩余资源实例数,这时不能分配资源给那些需要很多资源的进程)死锁如果进程请求资源后属于安全状态就同意请求。死锁检测与解除有一个资源分配图。对图里面的节点一个个去除最后发现按照这个顺序都能执行完就是无死锁。资源剥夺法,撤销进程,进程回退。...

2021-09-15 23:01:42 63

原创 2021-09-11

get和post没有本质区别HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。redis过期键定期删除,定时删除,惰性删除

2021-09-11 23:25:41 35

原创 2021-09-09

springspring循环引用这里需要两个集合,一个存已经初始化的bean,一个存半初始化的bean。半初始化的bean表示未填充依赖的bean。当初始化beanA时,填充依赖beanB,beanB又填充beanA,填充beanA时显然就会从半初始化的bean集合里找到,这时候可以返回。最好的循环引用文章A引用创建后,提前暴露到半成品缓存中依赖B,创建B ,B填充属性时发现依赖A, 先从成品缓存查找,没有,再从半成品缓存查找 取到A的早期引用。B顺利走完创建过程, 将B的早期引用从半成品缓存移

2021-09-09 23:03:23 48

原创 2021-09-06

页面置换算法主要是clock算法,最近最少使用,先进先出算法。在进程运行过程中,若需要访问的物理块不在内存中,就需要通过一定的方式来将页面载入内存,而此时内存很可能已无空闲空间,因此就需要一定的算法来选择内存中要被置换的页面,这种算法就被称为页面置换算法。页面置换算法的好坏,将直接影响系统的性能。一个好的页面置换算法,应做到减少页面置换的频率。尽量将以后不会用到的或较长时间不会使用的页面给置换出。进程是CPU资源分配的基本单位,线程是独立运行和独立调度的基本单位(CPU上真正运行的是线程)。协程是

2021-09-09 09:57:54 34

原创 2021-09-04

虚拟内存的重要意义是它定义了一个连续的虚拟地址空间,并且 把内存扩展到硬盘空间。分段是把虚拟内存划分为多个独立的地址空间,每个地址空间可以动态增长,互不影响。每个段可以单独进行控制,有助于保护和共享。分页是一维的,主要是为了获得更大的线性地址空间。页表实现了虚拟内存到物理内存的映射第三次握手,ACK包丢了的话,如果客户端接着发送数据包,服务器端可以从接收到的数据包中得到与ACK包同样的信息,所以服务端并不非要收到ACK包;如果客户端不发数据包,服务端会认为自己的SYN+ACK包丢失了,会重新发fo

2021-09-05 18:32:13 48

原创 2021-08-30

Redis主要认为失败都是使用者造成的所以就没有回滚操作。缓存一致性缓存延迟双删,删缓存,更新数据库,过一段时间再删缓存。tokenjava多路复用,bio nio aio,同步需要等结果,异步用回调,多线程下理解。非阻塞直接返回。多路复用为什么innodb不像myism存储记录总条数,因为有事务的隔离性。count(字段),非主键字段,这样的使用方式最好不要出现。因为它不会走索引....

2021-08-31 10:24:36 61

原创 2021-08-28

掘金面试题新的二进制格式:HTTP 1.x的解析是基于文本,HTTP 2.0的解析采用二进制,实现方便,健壮性更好。HTTP 1.1支持长连接和请求的流水线操作。有锁竞争升级成轻量级锁,自旋十次升级成重量级锁一致性hash算法,解决redis集群数据分库在机器数量变动时出错最小的问题,hash指的是将数据映射到不同的机器...

2021-08-29 18:33:55 68

原创 2021-08-26

1.syn攻击,就是大量伪造tcp第一次握手数据包.ip欺骗.2.非对称加密将客户端的对称加密密钥传给服务器,之后两者通过对称加密密钥互相传递信息.https加密3.进程是CPU资源分配的基本单位,线程是独立运行和独立调度的基本单位(CPU上真正运行的是线程)。协程无需线程上下文切换的开销.线程 包含于 进程 , 协程 包含于 线程4.mysql主从同步一主多从,主写从读,分散压力。这样从库压力比主库高,保护主库。可以实时灾备,用于故障切换;读写分离,提供查询服务,实现负载均衡;数据热

2021-08-27 23:24:23 49

原创 8.25阿里巴巴一面(共19分钟)

太难了,有些内容看过,但是就忘了,场景题感觉需要练过才知道,我肯定是不会了。早投晚投都是不会,早投hc多些。电话过来就直接开始面试。感觉拿阿里练手了。1.自我介绍,项目介绍,讲实习做了什么,难点在哪里。mysql 有两种 数据库引擎 一种是 MyISAM ,一种是 InnoDB MyISAM 发音 为 “my-z [ei]m”; InnoDB 发音 为 “in-no-db”,我读的my is am。2.分布式锁的实现有哪些实现Redlock,setnx ,set if not exist。3.悲

2021-08-25 23:39:50 137

原创 8.22面经

事务的持久性:重做日志原子性:undo log回滚日志mvcc:rc和rr下提高并发读写快照读和当前读mvcc在rr下读事务开始后的第一个快照。rc下读行最新的快照数据。(就记这个算了)事务ID递增,每一行数据都有对应事务id。事务第一次快照读生成一致性视图,包括活跃的事务id数组、低水位高水位。...

2021-08-22 16:59:30 89

原创 华为机试题库总结8.18

while(scanner.hasNext()){String str= scanner.nextLine();char[] chars= str.toCharArray();Arrays.sort(chars);for(char c :chars ){System.out.print©;}System.out.println();}这个是说输入可能包含很多行,不能仅判断一行,需要逐行判断,并且打印的输出也要保证跳到下一行。nextLine方法是得到这一行光标后面的字符串并且切换光标到下

2021-08-14 21:44:31 143

原创 2021-07-07

ping icmp协议用户态到内核态有系统调用,中断,异常

2021-07-10 19:30:45 40

原创 2021-07-05刷面经

redis跳表布隆过滤器位图加一系列映射函数来判断一个元素是否在某个集合。解决缓存穿透。

2021-07-05 17:13:43 57

原创 刷java面经

缓存和数据库数据一致性:读数据先找缓存,找不到找数据库并更新缓存,更新数据库相应数据时删除缓存归并稳定,快排不稳定,快排topk是o(n)的时间复杂度。Redis是个单线程程序,所以它是线程安全的。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。mvcc快照技术实现事务隔离级别快照生成时间读已提交:每次读都会生成快照保证与之前的不同。可重复读:第一次读生成快照保证一样。原子类原理:CAS (compare and swap) + volatile。synchron

2021-06-25 10:04:41 48

原创 刷java面经

1.http无状态:交互场景无法保持登录状态。需要session和cookie,session是服务器保存客户数据,cookie是服务器发给浏览器保存。2.进程是系统资源调度基本单位,程序执行的过程。线程更小粒度。3.进程通信方式:管道,内存共享,socket,信号,信号量,消息队列。4.线程通信方式:volatile共享内存,wait,signal,join消息传递,管道流。5.为什么用b+树:B+树的中间节点没有卫星数据的。所以同样大小的磁盘页可以容纳更多的节点元素。(这就意味着B+会更加矮胖

2021-06-23 22:07:39 50

原创 redis学习

尽量找易懂的学习方式。redis这里先粗略看了B站视频,然后看的官网学习。(视频,谷歌,经典书,官网文档哪个能看懂看哪个)Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,可以用来作为数据库、缓存和消息队列。Redis 比其他 key-value 缓存产品有以下三个特点:Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存使用。Redis 不仅支持简单的 key-value 类型的数据,同时还提供 list,

2021-06-23 10:35:51 57

原创 操作系统(主要)

MySQL的WHERE子句中包含 IS NULL、IS NOT NULL、!= 这些条件时便不能使用索引查询,只能使用全表扫描。红黑树性质黑顶到黑null叶经历相同数量的黑节点,红节点的子节点是黑的。

2021-06-21 21:49:52 132

原创 刷java面经

threadlocal看源码总结场景:一个工具类很多线程要使用时,可以加锁,也可以人手一个工具。threadlocal里面有个map,每个threadlocal都可以获得thread对象,thread里面有个属性是map。每个map存的是threadlocal–》某对象。threadlocal.set(a)就是获得当前线程的map并且存this–》a。threadlocal.get()就是获取当前线程的map并且获得a对象。线程池拒绝策略:抛异常,丢当前任务,丢最老的任务,直接运行任务。乐观锁,乐

2021-06-18 21:07:39 78

原创 mybatis学习

mybatis重点:结果映射resultmap。parameterType传入参数。找到了之前的配置好的mybatis代码,稍微看下代码就记起来了,代码看B站视频自己弄。sqlSession.commit();sqlSession.close();增删改必须有提交才能完成。也可以在openSession时设置自动commit。parameterType=“com.example.demo.pojo.User”parameterType=“map” map可以自己控制有哪些属性。like 模糊查

2021-06-14 19:07:23 49

原创 刷java面经

长连接和短连接http用短连接,连接数据库用长连接。http和https的区别HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都

2021-06-07 17:58:10 58

空空如也

空空如也

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

TA关注的人

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