ACanytime
码龄3年
关注
提问 私信
  • 博客:10,434
    10,434
    总访问量
  • 25
    原创
  • 116,447
    排名
  • 124
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2021-08-27
博客简介:

qq_61277489的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    244
    当月
    0
个人成就
  • 获得135次点赞
  • 内容获得11次评论
  • 获得94次收藏
创作历程
  • 21篇
    2024年
  • 4篇
    2023年
成就勋章
TA的专栏
  • java并发编程
    4篇
兴趣领域 设置
  • Java
    javaspringmavenkafkaspring bootspring cloudjvmmybatissentineljava-zookeeperjava-rocketmqguava
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

118. 杨辉三角(java)

否则的话 dp[row][col]=dp[row-1][col-1]+dp[row-1][col],这个规律可以从图中得出来的,很简单,多看几遍就懂了。用一个二维数组dp[numRows][numRows]保存每一次动态规划的结果。如果col==0的话,那么我们就直接dp[row][col]==1;在「杨辉三角」中,每个数是它左上方和右上方的数的和。生成「杨辉三角」的前 numRows。代码中的i就是row,j就是col。令dp[0][0]=1(第一列)这里row代表行,col代表列。
原创
发布博客 2024.07.05 ·
188 阅读 ·
3 点赞 ·
1 评论 ·
0 收藏

55. 跳跃游戏(java)

比如说:利用用例1来说 刚开始max=0,然后第一个格子可以跳跃的距离为2,那么max就变为了,这个时候我们就遍历从0 到 2中间的格子,因为这是我们都可以跳到的格子,属于范围内的。不断更新迭代,知道发现我们可以走到的最远的地方大于 数组的末尾的时候,返回true。然后当i==1的时候,这个格子的跳跃距离为3,所以这时候我们可以达到的范围就是下标1 再加上3。首先,我们先来一个特殊判断,如果只有一个格子,那肯定可以跳到终点,直接返回true。然后我们设置一个max值,代表的是当前可以走到最远的地方。
原创
发布博客 2024.07.05 ·
397 阅读 ·
10 点赞 ·
0 评论 ·
1 收藏

121. 买卖股票的最佳时机(java)

首先在for循环找到第一个小于min的值,然后在遍历下一天,如果发现下一天比今天的值要小,说明今天比明天贵,所以我们要把min替换掉,所以就有。但是如果明天比今天贵呢,说明我们可以有一种方案,是今天买然后明天卖,这是有利润的,但是不一定是最大的利润,所以我们要保存在max中。在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。同时,你不能在买入前卖出股票。这样我们就可以遍历出当前值跟后面几天中比我们大的值的差值,然后保留其中,选取最大值。
原创
发布博客 2024.07.05 ·
298 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

560. 和为 K 的子数组(java)

子数组是数组中元素的连续非空序列。
原创
发布博客 2024.06.15 ·
217 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

3. 无重复字符的最长子串(java)

在每一步的操作中,我们会将左指针向右移动一格,表示 我们开始枚举下一个字符作为起始位置,然后我们可以不断地向右移动右指针,但需要保证这两个指针对应的子串中没有重复的字符。在移动结束后,这个子串就对应着 以左指针开始的,不包含重复字符的最长子串。退出while循环后,左指针++,开始下一轮for循环,开始计算从左指针所指字符开始的最大不重复子串,因为左指针++了,所以set集合要remove左指针上一个字符。如果左指针不在0的坐标上,那么我们就要将窗口往前移动一格,那么就需要将上一个字符从set移除出去。
原创
发布博客 2024.06.15 ·
640 阅读 ·
6 点赞 ·
0 评论 ·
7 收藏

两数之和(java)

首先判断如果map容器中是否存在target-nums[i]的key的值,如果存在,那么说明这个值就可以跟nums【i】相加得到target目标值了,那么自然就可以return了,因为题目说明了这题只会有一个答案。如果不存在的话,那么我们就把当前的i坐标的nums[i]放入map容器中,继续遍历,直到找到答案,或者遍历完成。其实这个题精髓都在最后一句话,时间复杂度小于O(n2),不然大家一般都会想到直接两个for循环暴力就可以出答案了,但是本人没试过,好像听说还是可能会超时的。整数,并返回它们的数组下标。
原创
发布博客 2024.06.13 ·
354 阅读 ·
8 点赞 ·
0 评论 ·
4 收藏

线程有几种状态,状态之间的流转是怎样的?

java线程中将就绪(READY)和运行中(RUNNING)两种状态笼统的称为“运行”。就绪(READY):线程对象创建后,其他线程(比如main线程)调用了该对象的start0方法。该状态的线程位于可运行线程池中,等待被线程调度选中并分配cpu使用权。运行中(RUNNING):就绪(READY)的线程获得了cpu时间片,开始执行程序代码。:进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)。:新创建了一个线程对象,但是还没有调用start()方法。:表示该线程已经执行完毕。
原创
发布博客 2024.05.29 ·
151 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

什么是多线程中的上下文切换?

在多线程编程中,上下文切换是一种常见的操作,上下文切换通常是指在一个CPU 上,由于多个线程共享 CPU时间片,当一个线程的时间片用完后,需要切换到另一个线程运行。同时,需要将切换到的线程的状态信息恢复,以便于该线程能够正确运行。在多线程中,上下文切换的开销比直接用单线程大,因为在多线程中,需要保存和恢复更多的上下文信息。上下文切换是指CPU从一个线程转到另一个线程时,需要保存当前线程的上下文状态,恢复另一个线程的上下文状态,以便于下一次恢复执行该线程时能够正确运行。
原创
发布博客 2024.05.29 ·
267 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

TCP and UTP

第四次挥手:客户端收到以后,会向服务端发送一个ack应答报文。第三次握手:但是这个时候,服务器还不知道客户端的接受功能是否正常,所以需要客户端返回一个ack请求给服务器,用来告知服务器,让服务器知道客户端的接受功能正常。第二次握手:服务器发送收到客户端发送的包,返回一个ack给客户端,客户端接受到之后,确定了客户端的接受功能正常以及服务器的发送功能正常。第一次握手:客户端向服务器发送syn请求,服务器收到了客户端发送的包,然后确定了客户端的发送功能正常以及服务器的接受功能正常。TCP跟UDP的区别。
原创
发布博客 2024.04.18 ·
269 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

Synchronized和volatile、Lock有什么区别

1.volatile关键字是线程同步到轻量级实现,所以volatile性能比synchronized要好,但是volatile只能修饰变量,synchronized可以修饰方法以及代码块。第三性能层面:没有竞争时,synchronized做了很多优化,偏向锁、轻量锁性能不赖,竞争激烈时,Lock会有更好的性能。第二功能层面:都是悲观锁,但是Lock提供了许多synchronized不具备的功能,中断,超时,公平锁。Synchronized和Volatile的区别。其实二者是互补的,不是对立的存在!
原创
发布博客 2024.04.18 ·
274 阅读 ·
8 点赞 ·
1 评论 ·
0 收藏

HashMap和ConcurrentHashMap底层原理

在JDK 1.7中,ConcurrentHashMap使用了分段锁技术,即将哈希表分成多个段,每个段拥有一个独立的锁这样可以在多个线程同时访问哈希表时,只需要锁住需要操作的那个段,而不是整个哈希表,从而提高了并发性能。判断当前元素存放的位置(这里的 n 指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。相比于之前的版本,JDK1.8 以后在解决哈希冲突时有了较大的变化。时,必须首先获得对应的。
原创
发布博客 2024.04.08 ·
661 阅读 ·
14 点赞 ·
0 评论 ·
18 收藏

Spring,SpringMVC 常见面试题

目录1.介绍一下Spring的IOC2.介绍一下Spring的AOP3.Spring中事务失效的场景有哪些4.Spring的bean的生命周期5.Spring中的循环引用6.什么是MVC7.SpringMVC的执行流程所谓的IOC,就是控制反转的意思。在传统的程序设计中,应用程序代码通常控制着对象的创建和管理。例如,一个对象需要依赖另一个对象,那么它会直接new出来对象。这样的设计通常被称为“控制流程”。而在IOC中,控制关系发生了反转。控制权被转移到了Spring容器中,容器负责创建和管理对象,并在需要的
原创
发布博客 2024.04.08 ·
686 阅读 ·
7 点赞 ·
0 评论 ·
6 收藏

JVM由那些部分组成,运行流程是什么?

将字节码翻译为底层系统指令 一次编写,到处运行。由哪些部分组成,运行流程是什么?(运行时数据区,内存分区)二进制字节码的运行环境)
原创
发布博客 2024.04.04 ·
254 阅读 ·
4 点赞 ·
1 评论 ·
3 收藏

RocketMQ笔记详情

4.回滚事务消息:如果本地事务执行失败,应用程序通知RocketMQ Broker回滚该事务消息,RocketMO将该消息的状态从“prepared”改为“rollback”,并将该消息从事务消息日志中删除,从而保证该消息不会被消费者消费。Producer发送的消息会被存储到对应的Queue中,Consumer从指定的Queue中消费信息。3.提交事务消息:RocketMQ收到提交消息以后,会将该消息的状态从“prepared”改为“committed”,并使该消息可以被消费者消费。
原创
发布博客 2024.04.04 ·
444 阅读 ·
7 点赞 ·
1 评论 ·
9 收藏

Java中String的典型面试问题

String是不可变的,StringBulider和StringBuffer是可变的。而StringBuffer是线程安全的,而StringBuilder是非线程安全的。首先,不管是什么情况,一次new的过程,我们都会在堆上创建一个对象,那么就是起码有一个对象。所以,a==b的结果为true,因为它们指向的是。在java中,对于字符串使用==比较的字符串对象的。的时候,进行解析并在字符串池中创建对应的String实例。因为a和b都是由字面量组成的字符串,它们的。的,然后在运行期间,字符串常量。
原创
发布博客 2024.04.02 ·
341 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

Spring Bean的生命周期是怎么样的?

提供一种配置方式,在XML配置中指定Bean的初始化方法。如果Bean在配置文件中定义了初始化方法那么该方法会被调用。
原创
发布博客 2024.04.01 ·
340 阅读 ·
6 点赞 ·
0 评论 ·
4 收藏

MVCC详解

mvcc的意思是多版本控制并发。指维护一个数据的多个版本,使得读写操作没有冲突,它的底层实现主要是分为三个部分,第一个是隐藏字段,第二个是undo log 日志,第三个是readView读视图。
原创
发布博客 2024.03.27 ·
175 阅读 ·
9 点赞 ·
0 评论 ·
1 收藏

synchronized关键字的底层原理

synchronized底层使用的JVM级别中的Monitor来决定当前线程是否获取了锁,如果某一个线程获取到锁,在没有释放锁之前,其他线程是不能或得到锁的。关于Monitor,Monitor对象存在于每个java对象头中,synchronized锁便是通过这种方式获取锁的,这也是为什么java中任意对象都可以作为锁的原因。如果没有线程持有,则让当前线程持有,表示该线程获取锁成功。:存储当前获取锁的线程的,只能有一个线程可以获取。获得锁的线程执行完了,释放了锁,就会唤醒。锁,竞争的时候是非公平的。
原创
发布博客 2024.03.22 ·
530 阅读 ·
19 点赞 ·
1 评论 ·
7 收藏

Redis的数据过期策略还有数据淘汰策略有哪些?

Redis的数据过期策略有哪些?在redis中提供了两种数据过期删除策略惰性删除所谓惰性删除,就是表面意思,对于删除这个事情,我表示很懒,并不会及时的去做。一般惰性删除指的是,在设置该key的过期时间后,我们不去管它,当需要用到该key是,我们在检查其是否过期,如果过期,我们就删除这个key,反之返回该key。定期删除所谓定期删除,就是每个一段时间,我们就会对一些key进行检查,删除里面过期的key。定期清理的两种模式:SLOW模式是定时任务,执行频率默认为10hz。
原创
发布博客 2024.03.21 ·
299 阅读 ·
6 点赞 ·
1 评论 ·
3 收藏

Redis中的缓存穿透、雪崩、击穿的原因以及解决方案(通俗易懂)

什么是缓存穿透?缓存穿透是指查一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这个将导致这个不存在的数据每次请求都会打到DB(数据库)上,如果请求量很大的话,可能会导致DB挂掉,一般情况是遭到一些恶意攻击。缓存穿透解决方案缓存穿透有一个比较流行的解决方案,就是大家熟悉的布隆过滤器。
原创
发布博客 2024.03.20 ·
333 阅读 ·
3 点赞 ·
1 评论 ·
7 收藏
加载更多