鱼友3486

鱼友3486

暂无个人简介
知识星球
Java后端
2025
长沙学院

该用户非会员

会员专享项目教程/ 答疑等服务

day68 今天没有刷力扣,主要是复习了一下HashMap和HashSet之间的关系,HashSet主要是利用了HashMap中的键的唯一性进行去重的操作,将添加元素放进键中即可,值的话给一个固定的值即可,从而实现了数据的去重操作。顺便看了一下HashMap的源码,它的扩容机制是以2的幂进行的,这个跟它的Hash取余的操作是有点帮助的。 明天就是线下培训的第一天了,说实话有点小兴奋,虽然给的培训项目并不是很难,就是商品和用户的一个权限操作。但是没有过一起开发的过程,这次体验一下。 小目标:顺利通过线下培训进入暑期实习

day67 一、力扣 1. 84 柱状图中最大的矩形:这题也是想了好几天,今天才开始动手,用的是单调栈的思路,因为需要计算水柱的面积总和最大值,分别记录左右两边的比他小的矩形距离即可。 二、项目相关 1. 最近说实话,好像到达了一种瓶颈期,项目把,做也算做了几个,基本的也都知道,但是都是一些技术的简单应用,体现不了项目的复杂性。但是又细分到每个步骤又有点繁琐,感觉好像基础也不是很扎实。 2. 由于不知道干啥,开始去了解之前不是很熟悉的一些操作,比如 PR(pull request),CICD。 3. 今天主要是了解了CICD的操作,由于开发项目到部署项目的流程是不变的,可以使用自动更新部署的操作,大大减少了部署的时间,可以利用github的仓库机制webhook,每次更新代码进行通知,服务端接受后进行脚本部署,也可以在github端进行docker镜像的打包,通知下载镜像进行重新运行即可。 三、计划 超额完成数马线下项目,明天应该看一看数据库查询机制,之后的话看一看设计模式和源码理解,还有jvm和juc,如果时间允许,在完成一个项目(RPC或者MallChat)。

day66 一、力扣 1. 394 字符串解码:这题一开始并没有什么思路,所以去看了一下题解,题解的做法是利用两个栈进行配合使用,一个存放需要扩张的字符串,一个存储需要扩展的倍数,但是后面实现了一下,但是运行起来有点小偏差。暂时还不知道哪里出了什么问题。 2. 739 每日温度:这题一开始也没有什么思路,后面去小破站上看了一下教程,使用的是单调栈的一种技术(之前并没有接触过),但是仔细看了一下好像不是很难。就是将最大、小的放进栈内,如果小直接入栈,否则循环比较,直到遇到小的。 二、项目相关 1. 今天就只是详细了解了一下TCC机制,一开始理解还不是很透,prepare阶段进行资源检查,commit进行业务代码执行(肯定是能执行成功的),失败重试。也彻底理解了AT和TCC的区别,AT会自动帮你回滚无需资源预检,TCC是确保业务一定能正常运行才执行,由于这个机制所以TCC不直接依赖底层数据库。 2. 然后就是看了一下博客,关于MVCC多版本控制机制的,也算是有点入门了,主要是利用行的隐藏列事务id与回滚地址来实现。简单的防止幻读的现象也理解了一下,主要是利用锁的机制间隙锁 记录锁。 三、计划 明天主要是复习一下线上实训的内容,明晚考试。

day65 一、力扣 1. 20 有效的括号,这题说实话有点小简单,就是简单的栈的应用,记录对应的括号关系,然后进行对比就可以得出来了 2. 155 最小栈,这题说实话一开始不知道怎么构思,所以看了一下题解,说实话,代码很少,思路也很简单,但是我没想到,还是做题做少了。就是用一个辅助数组就记录最小值就可以了。 二、项目相关 1. 今天勉强按照昨天的计划完成,但是只是简单的入门,还没有进行实际的应用。说实话很大程度上锻炼了我看官方文档的能力。 2. 今天主要是看了rocketmq部分,seata部分是在没有时间进行回顾了,rocketmq和Rabbitmq在架构上还是有点区别的,前者的注册中心和broker都需要自己部署,很大程度上支持分布式比起Rabbitmq。 3. 现在有点不是很理解的就是顺序消息和事务消息那,感觉没有很理解 三、计划 1. 后天就是数马的第一阶段线上考试了,明天主要是回顾一下这阶段线上学习的一些基础概念。(晚上考的话,好像还不是很急) 2. 明天把这两天学习的不懂的知识进行巩固一下,顺便记一下笔记。 加油加油!!![拳头][拳头][拳头]

day64(恢复打卡的一天,加上昨天) 一、力扣 1. 33 搜索旋转排序数组,这题一开始做没点思路,后面看了题解,其实就是利用对数组进行分半,然后肯定至少有一边是有序的,然后进行判断操作即可(直到中间值命中为止) 2. 153 寻找数组中的最小值,这题和上题的思路一样,但是返回的条件不一样(找有序的最小比较,都有序时返回结果),找不到直接返回 -1。 3. 4. 寻找两个正序数组的中位数,这题看起来要点数学的思想,再加上做出上面两题头已经炸了,所以这题直接打算不做了。稍微看了一下题解 二、项目相关 1. 这几天都在做实习计划的线上任务,虽然任务比较简单,但是都是一些不熟悉的技术。这几天也是跟着官方文档去看他们的一个使用 2. 昨天做的是一个关于分库分表(用的sharding-jdbc)的一个操作,其实就是配置一下就可以实现,主要了解一下配置的主要作用即可 3. 昨天还实现了一个sofaStack一系列的操作,都是看的官方文档进行操作,其中有sofarpc,sofaregistry,sofaboot,进行还算顺利,和dubbo没什么区别 4. 今天主要是学习了seata部分,这部分之前是没有学过的,今天也是看着官方文档进行一个操作,感觉它的官方文档写的不是很好。而且好像它的理论部分还是有点难,理解还是花了不少时间,今天主要是学习了AT和TCC,感觉理解的还不是很透。 三、计划 明天的计划就是再巩固一下AT和TCC,然后再学了实习计划的rocketmq,应该不会很难,但是好像和Rabbitmq区别不是很少,实现机制好像都不一样。看看明天能不能完成。 加油加油!!![加油][加油][加油]

哇,一下子有十多二十天没有打卡了,这些天因为放假去找女朋友玩去了,今天刚回来,今天开始恢复打卡。好多天没有刷算法了。

day63 今天上午考试,所以算法就没刷了,项目相关的也没学什么,有点迷茫(不知道干啥的感觉) 简单说一下学了啥吧 今天主要是看看星球上面的文章:redis实现单点登录(多个服务器确定认证对象的问题)、双token无感刷新问题(解决用户体验和安全问题),CICD(暂时理解为快速交付项目上线),文档编写(解决他人以及未来自己能看懂,记录过程),代码规范(命名、代码复用),好像就这些。到考试前应该对学习的欲望都不是很大了。

day62 昨天由于补觉去了,所以摆了一天 一、力扣(二分搜索的开始) 1. 35 搜索插入的位置:这题说实话还是有点简单,唯一需要注意的是如果没命中应该返回什么,这里的话,直接返回左指针即可,因为最后左指针肯定刚好大于目标值。 2. 74 搜索二维矩阵:这题的话,也不是很难,就是二维二分查找,第一重寻找元素所在的索引,第二次沿着此行进行寻找。要注意返回的行索引即可,命中直接返回,没有直接返左指针 - 1。不过效率不是很高,比半循环半二分慢,主要是数据量有点少 3. 34 在排序数组中查找元素的第一个和最后一个位置:这题和之前的不一样,元素是能重复的,但是做法差不多,先命中元素,没有命中直接返回规定值,找到就以这个为中心,向两边进行扩展寻找,然后直接返回。 二、项目相关 1. 最近有点小迷茫,感觉没什么目标了,项目这块像是有点麻木的感觉,现在主要是在学设计模式。 2. 今天主要学习了 建造者、观察者模式,桥接模式也再看了一下,主要是手动写了几个事例代码 3. 也看了相关spring中的使用,比如桥接模式在jdbctemplate中的体现,抽象部分为操作数据源对象,实现部分为jdbc的操作实现,比较深的体会是,除非实现部分和抽象部分联系很紧密才进行抽象成桥接模式,不然没有必要,会增加系统的复杂度 4. 观察者模式的话,主要了解了一下事件的监听机制的实现,事件为主题对象的通知(能注册和移除多个观察者对象),监听对象相当于观察者的的接受方法。 5. 建造者模式的话,就自己简单实现了一下,就创建一个Builder对象,里面有要建造的对象,然后每个方法都是对建造的对象进行属性的注入,最后build建造完成,返回要建造的对象即可。 6. 其他的话,就没事做,将写的项目注释写清楚点,然后,知道了Aware接口的作用了,提供一种接口让我们访问Spring上下文对象。还有Request对象的获取,每次一个请求会放进ThreadLocal里面,然后可以从这里面去取。

今天考试,顺势又摆了一天啥都没干,追剧去了(最近有点上瘾)

day61 今天没有学习什么,主要是明天考试,复习了一下考试的内容,学的话就是建造者模式和责任链模式,建造者模式很好理解(lombok中的build注解就是建造者的一种体现),责任链模式的话,相当于执行链路的一个区别(拦截器,过滤器就是一种体现)。

下载 APP