- 博客(32)
- 收藏
- 关注
原创 JVM面试题
程序计数器:线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址堆(线程共享的区域):主要用来保存对象实例,数组等,当堆中没有内存空间可分配给实例,也无法再扩展时,则抛出OutOfMemoryError异常年轻代被划分为三部分,Eden区和两个大小严格相同的Survivor区,根据JVM的策略,在经过几次垃圾收集后,任然存活于Survivor的对象将被移动到老年代区间。老年代主要保存生命周期长的对象,一般是一些老的对象JDK1.7和JDK1.8的区别JDK1.7有一个永久代。
2023-07-31 16:22:40
176
原创 并发编程面试题
AQS:AbstractQueuedSynchronizer,是多线程中的队列同步器,是一种锁机制,它是作为一个基础框架使用的AQS常见的实现类ReentrantLock 阻塞式锁Semaphore 信号量CountDownLatch 倒计时锁工作机制在AQS中维护了一个使用了volatile修饰的state属性来表示资源的状态,0表示无锁,1表示有锁提供了基于 FIFO 的双向等待队列,类似于 Monitor 的 EntryList,存储排队的线程。
2023-07-28 22:05:49
231
原创 集合面试题
在添加元素或初始化的时候都需要调用resize方法进行扩容,第一次添加数据初始化数组长度是16,以后每次都是达到了扩容阈值(数组长度*0.75)
2023-07-22 20:50:19
155
原创 消息中间件面试题
消息中间件1.RabbitMQ如何保证消息不丢失2.RabbitMQ消息重复消费问题如何解决3.RabbitMQ延迟队列(死信交换机)了解过吗4.RabbitMQ有消息堆积怎么解决5.RabbitMQ高可用机制1.RabbitMQ如何保证消息不丢失生产者确认机制持久化消费者确认机制消费者失败重试机制2.RabbitMQ消息重复消费问题如何解决解决方案:每个消息设置唯一标识id幂等方案(分布式锁,数据库锁(悲观锁,乐观锁))3.RabbitMQ延迟队列(死信交换机)了解过吗
2023-07-19 20:46:05
110
2
原创 微服务面试题
创建类实现IRule接口,可以指定负载均衡策略,这个是全局的,对所有的远程调用都起作用在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略,只是局部对配置的这个服务生效远程调用雪崩:一个服务失败,导致整条链路的服务都失败的情形解决方案:服务降级:服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃,一般在实际开发中与feign接口整合,编写降级逻辑服务熔断。
2023-07-19 19:45:58
83
原创 Spring框架
AOP:面向切面编程,在spring中用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合,提高可维护性。
2023-07-17 20:58:15
67
原创 Redis面试题
缓存穿透:查询一个不存在数据,MySQL查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库,这种情况大概率是遭到了攻击。解决方案:1.缓存空数据:查询结果为空时,仍把这个空结果存入缓存。优:简单缺:消耗内存,可能发生不一致的问题2.布隆过滤器什么是布隆过滤器?布隆过滤器:用于检索一个元素是否在一个集合中,拦截不存在的数据。我们当时使用的是redisson实现的布隆过滤器。底层原理:初始化一个bitmap(位图)的数组,默认为0。
2023-07-04 17:14:58
99
原创 MySQL面试题
答:索引(index)是帮助MySQL高效获取数据的数据结构(有序)提高数据索引效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,减低CPU消耗话术:嗯,索引在项目中还是很常见的,索引是帮助MySQL高效获取数据的数据结构,能够提高数据索引效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,减低CPU消耗答;聚簇索引(聚集索引):数据和索引放在一起,B+树的叶子节点保存了整行数据,有且只有一个。
2023-05-25 14:30:01
141
原创 AOP基础,快速入门,连接点,切入点,通知,切面,目标对象,AOP进阶,@execution,@annotation,@Around,@AfterReturning,@AfterThrowing
AOP:Aspect Oriented Programming(面向切面编程、面向方面编程),其实说白了,面向切面编程就是面向特定方法编程。AOP的作用:在程序运行期间在不修改源代码的基础上对已有方法进行增强AOP面向切面编程和OOP面向对象编程一样,它们都仅仅是一种编程思想,而动态代理技术是这种思想最主流的实现方式。记录系统的操作日志权限控制事务管理代码无侵入:没有修改原始的业务方法,就已经对原始的业务方法进行了功能的增强或者是功能的改变减少了重复代码提高开发效率维护方便。
2023-05-24 15:48:29
1403
2
原创 事务基础及进阶,事务的四大特性,ACID,@Transactional,rollbackFor,propagation
注意:我们一般会在业务层当中来控制事务,因为在业务层当中,一个业务功能可能会包含多个数据访问的操作。在业务层来控制事务,我们就可以将多个数据访问操作控制在一个事务范围内。@Transactional作用:就是在当前这个方法执行开始之前来开启事务,方法执行完毕之后提交事务。如果在这个方法执行的过程当中出现了异常,就会进行事务的回滚操作。:事务是一组操作的集合,它是一个不可分割的工作单位。:传播行为就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行事务控制。常见的事务传播行为。
2023-05-24 11:46:35
119
原创 登录校验,会话技术,Cookie,Session,JWT令牌,统一拦截技术,过滤器FIlter,拦截器Interceptor,全局异常处理器
会话:在web开发当中,会话指的就是浏览器与服务器之间的一次连接,我们就称为一次会话。需要注意的是:会话是和浏览器关联的,当有三个浏览器客户端和服务器建立了连接时,就会有三个会话。同一个浏览器在未关闭之前请求了多次服务器,这多次请求是属于同一个会话。会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据。使用会话跟踪技术就是要完成在同一个会话中,多个请求之间进行共享数据。
2023-05-23 21:12:19
194
转载 程序员的职业发展|自勉
作者:陈皓(左耳朵耗子)以下为陈皓前辈文章的原文:这篇文章的主要内容主要是我今年3月份在腾讯做的直播,主要是想让一些技术人员对世界有一个大体的认识,并且在这个认识下能够有一个好的方法成就自己。而不是在一脸蒙圈的状态下随波逐流,而日益迷茫和焦虑。直播完后,腾讯方面把我的直播形成文字的形式发了出来,我觉得我可以再做一个精编版。所以,有了这篇文章,希望对大家有帮助。
2023-05-23 00:59:42
94
原创 腾讯云对象存储COS,Springboot文件上传,附完整流程,详细步骤及代码实现
操作步骤:1.注册腾讯云账号,开启对象存储服务2.编写程序,实现文件上传。
2023-05-22 17:36:12
2827
2
原创 mybatis入门 增删改查 主键返回 日志输入 预编译 sql注入 参数占位符 数据封装 concat XML配置文件 动态SQL
性能更高更安全(防止SQL注入)在页面原型中,列表上方的条件是动态的,是可以不传递的,也可以只传递其中的1个或者2个或者全部。动态SQL。
2023-05-18 16:15:27
203
原创 SpringBoot MyBatis入门配置
红框中的信息都需要修改注意!!!jdk版本一定要是11springboot一定要选择2开头的,才能和jdk11适配,选择稳定版(后边不带括号的)idea右下角会显示自动下载mysql,mybatis等依赖的进度条,静等进度条加载完成即可,出问题可能网不好,或者刚才jdk或版本选错了成功就像下边这样。
2023-05-18 11:12:17
229
原创 MySQL数据库,多表查询(内连接,外连接,子查询),事务(四大特性),索引语法操作
SQL语句中嵌套select语句,称为嵌套查询,又称子查询。-- 子查询,以where举例 select * from 表 1 where 表 1 的字段 1 =(select * from 表 2 where 表 2 的字段 1 =(. . .) , 表 2 的字段 2 =(. . .) , . . .) , 表 1 的字段 2 =(select * from 表 2 where 表 2 的字段 1 =(. . .) , 表 2 的字段 2 =(. . .) , . . .) , . . .;
2023-05-17 10:56:53
484
原创 常见的多表设计: 一对多 ,一对一 , 多对一
在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)建立第三张中间表,中间表至少包含两个外键,分别关联两方主键。只在逻辑上存在关系,数据库物理层面并没有关系。外键的作用是在多表设计中,将表与表关联起来。使用 forgign key 关联另一张表。在员工的一方增加字段关联部门的一方的主键。两张表存在一对多的关系:用户与身份证、两张表存在一对多的关系:部门与员工。两张表存在一对多的关系:学生和课程。
2023-05-15 16:21:29
680
原创 构造器中Value ‘this.name‘ is always ‘null‘
调用有参构造器时想要输出时值为null 0.0 0.0。需要进行修改将有参构造器中的参数赋值给this。
2023-03-28 12:29:18
278
原创 IDEA自动导入包
3.以上两个都不行的话,就看看这块是不是添加了你要导入的包,点减号,删了试试。1.打开file-settings将下边这两个勾选。2.alt+enter就会出现可导入的包。
2023-03-26 20:58:04
555
原创 代码随想录训练Day8
344. 反转字符串、541. 反转字符串 II、剑指 Offer 05. 替换空格、151. 反转字符串中的单词、剑指 Offer 58 - II. 左旋转字符串
2023-01-04 22:09:52
119
3
原创 代码随想录训练Day4
Leetcode24. 两两交换链表中的节点、Leetcode19. 删除链表的倒数第 N 个结点、Leetcode面试题 02.07. 链表相交、Leetcode142. 环形链表 II
2023-01-02 12:47:41
97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人