- 博客(60)
- 收藏
- 关注
原创 Spring事务传播属性
假设在两个A和B,将B依赖注入A中,则A依赖B,在A方法中调用B方法,且A有事务,B也有事务,通过编程式事务或者@Transactional注解使A,B分别具有事务,在具有事务A方法中调用事务B方法,就产生了事务传播。PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,这是最常见的选择,也是Spring默认的事务传播行为。PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。
2024-03-28 17:23:38 552
原创 redis
子进程读取内存存数据写入新的RDB文件,用新的RDB文件替换旧的RDB文件。(fork采用copy-on-write,当主进程执行读操作,访问共享内存,主进程执行写操作时,会会拷贝一份数据,执行写操作)。通过执行bgrewriteaof命令,可以让AOF文件执行重写功能,用最少的命令达到相同效果。在获取锁时存入线程标识,通过UUID,释放锁时获取锁中标识是否与线程标识一致,如果一致就可以释放锁。always :同步刷盘,可靠性高,基本不会丢失数据,性能影响最大。2.redis持久化。
2024-03-26 19:52:12 294
原创 102. 二叉树的层序遍历
所以需要提前定义一个队列长度。此时一维集合中还没有值,那么就就将队列根节点弹出来,并将值添加到集合中。接下来获取根节点的左孩子右孩子,并添加到队列中。从循环开始,记住有两个循环,要记住两个循环的判断条件值,最外边判断队列是否为空。接下来要往二维集合中存一维集合,所以定义一个一维集合。第二个判断条件是队列长度。这个总是会忘(反正不管是理解还是死记硬背啥的)
2024-03-20 20:44:20 227
原创 jvm面试题总结
1.判断类是是否加载过,检查方法区的常量池能否找到该类的符号引用,能的话通过符号引用检查该类是否加载链接初始化过,没有则在双亲委派的机制下将类信息加载到内存中,生成类的class对象,作为方法区这个类各种数据的访问入口。第一个过程是加载,根据类的全限定名称获取该类的二进制流,将二进制流中的静态存储结构转化为方法区的运行时数据结构,在内存中生成该类的Class对象作为该类的数据访问入口。运行时数据区(jvm内存模型):分为五个部分,方法区,堆区,栈区,本地方法栈,程序计数器。优势:避免类的重复加载。
2024-03-19 08:48:11 693
原创 简述AQS
它的所有子类中,要么实现并使用了它的独占功能的api,要么使用了共享锁的功能,而不会同时使用两套api,即便是最有名的子类ReentrantReadWriteLock也是通过两个内部类读锁和写锁分别实现了两套api来实现的。AQS的核心思想是,被请求的共享资源空闲,则将当前请求资源的线程设置为有效工作线程,并将共享资源设置为锁定状态。用一个int型的变量表示同步状态,通过内置的FIFO队列完成获取资源线程的排队工作,队列的底层数据结构是一个双向链表,使用CAS操作对同步状态的变量值进行原子操作和修改。
2024-03-12 20:28:15 153
原创 BIO,NIO,AIO
客户端发起请求时,程序可以执行其他操作,但需要程序去主动轮询的方式获取IO操作结果。NIO基于Selector选择器,channel通道和buffer缓冲区的模式处理数据,Selector监听多个管道中的连接请求和数据,因此单条线程就可以处理多个客户端的数据。客户端发起请求时,程序会被阻塞知道IO操作完成并返回结果,才能完成其他的任务。这种模式下一个请求对应一条线程处理,以字节流或者字符流的方式处理数据。AIO,异步非阻塞IO,客户端IO请求先由OS完成,然后再收到结果通知或者回到函数在处理结果。
2024-03-12 15:02:29 146
原创 3.无重复字符的最长子串
用一个集合当作滑动窗口,这里我们选择Set,保证key的唯一性,定义一个窗口的大小(我个人喜欢用一个变量手动更新,而不喜欢使用Math.max()),定义左边界left,有边界right,当右边界出现重复key时,移除左边界的值。
2024-03-07 11:07:00 115
原创 整理的面试题或知识点(只含题目)
具体来说,FileInputStream可以用于读取任何类型的文件,包括文本文件、图像文件、音频文件等,而FileOutputStream则可以用于将任何类型的数据写入到文件中,例如文本、图像、音频等。其中,FileReader用于读取文件中的字符数据,而FileWriter用于向文件中写入字符数据。具体来说,FileReader可以读取文本文件中的字符数据,并将其转换为Java中的字符类型,而FileWriter则可以将Java中的字符类型转换为文本文件中的字符数据并写入文件。
2023-11-03 15:11:22 36
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人