小刘的学习日记
文章平均质量分 77
BaiRanAn123
这个作者很懒,什么都没留下…
展开
-
JVM内存模型-JAVA堆(Java Heap)
系列文章目录Java虚拟机内存模型这里主要讲的是Java堆(Java Heap)Heap是OOM故障最主要的发源地,它存储着几乎所有的实例对象,堆由垃圾收集器自动回收,堆区由各子线程共享使用通常情况下,它占用的空间是所有内存区域中最大的,但如果无节制地创建大量对象,也容易消耗完所有的空间堆的内存空间既可以固定大小,也可运行时动态地调整,通过如下参数设定初始值和最大值,比如1-Xms256M. -Xmx1024M其中-X表示它是JVM运行参数ms是memorystart的简称 最小堆容量原创 2021-07-13 21:13:34 · 336 阅读 · 0 评论 -
Java中的常见的四大排序
冒泡排序比较简单每次冒泡过程都是从数列的第一个元素开始,然后依次和剩余的元素进行比较, 跟列队一样, 从左到右两两相邻的元素比大小, 高的就和低的换一下位置. 最后最高(值最大)的肯定就排到后面了.public class MaoPao { public static void sort(int[] arr){ for (int i = 1; i < arr.length; i++) { //第一层for循环,用来控制冒泡的次数 for (in原创 2021-07-11 21:30:26 · 211 阅读 · 0 评论 -
Redis分布式锁的实现
一、什么是分布式锁?要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized是共享对象头,显示锁Lock是共享某个变量(state)。进程锁:为了控制同一操作系统中多个进程访问某个共享资源,因为进程具有独立性,各个进程无法访问其他进程的资源,因此无法通过synchronized等线程转载 2021-07-09 21:16:02 · 129 阅读 · 0 评论 -
Spring中常用注解说明
前言传统的spring的做法是使用xml文件对bean进行注入或者是配置其他的aop或者事物,这样子就会引申出一些问题,如果所有的东西都配置在xml文件当中那么会使得xml文件体积以及数量变得过于庞大,无论是对系统性能或者操作以及维护都将会是一个巨大的挑战,而且在java文件操作与xml文件操作之间过于耦合,也不利于思维的连贯性以及代码的解耦、微服务化,所以spring为了解决这一问题,通过“@***”的方式去标识一个文档亦或是一个特殊的动作、功能,让注解与java的bean之间紧密结合,这样子大大的减少原创 2021-07-08 21:05:33 · 208 阅读 · 0 评论 -
Spring的bean创建中循环依赖的问题
1、什么是spring-bean的循环依赖什么是spring-bean的循环依赖,顾名思义也就是两个或者多个bean之间互相依赖,互相持有对方形成一个闭环,比如spring在初始化创建beanA的时候,发现beanA中有beanB的依赖,然后创建beanB的时候发现beanB中又依赖了BeanC,接着beanC又依赖了beanA<,如下图所示:/font>当然这里指的是bean之间的相互依赖,而不是函数之间的互相调用,大家不要搞混了。Spring中互相依赖的场景有:(1)构造器的循环原创 2021-07-07 20:56:08 · 197 阅读 · 0 评论 -
缓存穿透、缓存雪崩、缓存击穿的区别和解决方案
前言随着互联网行业不断的演进与变更,体量与复杂性的变化催生出一个又一个难题,从而衍生出一系列方便开发者解决问题的中间件,比如Redis,我们为什么要使用redis,有两个重要的原因,一个是为了减轻服务器数据库的压力,另一个当然就是因为它很‘快’,本文主要阐述在使用Redis过程中遇到高并发的情况下容易产生的几个问题,缓存击穿,缓存雪崩以及缓存穿透一、缓存穿透缓存穿透是指查询一个数据库中不存在的数据,数据库中不存在的数据自然也不会被加载到缓存当中,正常的查询流程应该是,查询一个数据先去缓存中判断这个数原创 2021-07-06 20:56:05 · 129 阅读 · 0 评论 -
关于Spring中上下文如何获取bean
问题描述:有一天小刘见隔壁同事小王抓耳挠腮,想必是遇到了什么问题,过去一问果不其然,小王在spring项目代码中怎么也获取不到通过注解@Autowired自动注入的bean实例,如果这个bean直接配置在spring文件中就可以获取到,但是如果不配置就获取不到让我们来看看他是怎么获取的。ApplicationContext context = new ClassPathXmlApplicationContext("Spring-applicationContext.xml");问题就出在这个...原创 2021-07-05 21:07:52 · 1682 阅读 · 0 评论