自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 JVM垃圾收集

垃圾对象 引用计数法: 概念:在对象中添加一个计数器,当这个对象被引用时计数器加1,引用失效时时,计数器减1,任何计数器为0的对象都可被视为垃圾对象。 优点:实现简单,效率高。 缺点:无法解决循环引用的问题。循环引用即两个或多个对象之间循环调用,除此之外再无其他的引用,这些对象虽然为垃圾,计数器却无法为0导致不能被回收。因此这个方法目前没有垃圾收集器在使用。 可达性分析算法: 概念: 1.算法:从GC Roots根节点开始向下扫描,依次扫描结束后不能扫描到的对象视为垃圾对象 2.GCRoots:方法栈中的.

2021-03-22 15:36:52 138

原创 JVM对象的创建

对象创建流程 1.检测所在类是否已经被加载:如未加载先加载类 2.内存分配: 对象的大小是在类加载时就已经确定的,所以对象的内存分配只是在内存中分配一个指定大小的空间,一般有两种方式: 分配方式 ①指针碰撞:内存中使用的区域较为规整,使用区和空闲区之间由一个指针分割,当需要放入新的数据时,只需要将指针向空闲区域这边移动一段(默认采用) ②空闲列表:内存中剩余空间比较杂乱,这时是由一块区域存储目前空闲空间的索引,当新的数据进来时,先查询空闲列表,然后将数据放入空闲区域 这两种分配方式都存在并发问题,解决方法有

2021-03-18 17:12:23 108

原创 JVM类加载

类加载器分类 引导类加载器:加载jdk核心类库,由c++语言编写 扩展类加载器(ExtClassLoader):加载jdk的ext中的扩展类库,由java语言编写 应用程序类加载器(AppClassLoader):加载classpath路径下的类,主要是我们自己编写的类,由java语言编写 自定义类加载器:需继承ClassLoader类,其核心方法为getLoader和findClass,findClass默认为空实现,自定义类加载器时主要是重写findClass方法,调用defineClass加载类,de

2021-03-18 16:53:28 108

原创 JVM内存模型

jvm的内存模型是指运行时数据区,包括:堆,栈,本地方法栈,方法区和程序计数器。 堆:主要存放new出来的对象实例,一般分为新生代和老年代,默认比例为1:2。新生代分为eden区,survivor1,survivor2,比例为8:1:1。属于公有的 栈:栈内存放栈帧,栈帧中包括局部变量表,操作数栈,动态链接,方法出口。属于线程私有的 a.局部变量表:存放方法中的局部变量 b.操作数栈:存放变量赋值以及运算时的操作数 c.动态链接: d.方法出口:存放该方法调用结束后,调用该方法的方法执行到的位置 除此之外栈

2021-03-18 16:48:51 69

原创 redis解决分布式并发数据安全问题

示例程序 模拟电影票售票过程,票售出时该服务被调用,库存中票数减一。 @RestController public class RedisDemoController { @Autowired private StringRedisTemplate stringRedisTemplate; @GetMapping("/stock") public String demo01(){ int stock = Integer.parseInt(stringRedi

2021-03-17 12:47:34 679 4

原创 正则表达式基础规则

字符 描述 \ 转义字符,讲一个具有特殊功能的字符转义为一个普通字符,或反过来 ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 * 匹配前面0次或多次的子表达式 + 匹配前面1次或多次的子表达式 ? 匹配前面0次或1次的子表达式 {n} 匹配前面n次的子表达式 {n,} 匹配前面至少n次的子表达式 {n,m} 最少匹配n次,最多匹配m次 . 匹配除"\n"之外的任何单个字符 x|y 匹配x或y [xyz] 字符集合,匹配所包含的任意一个...

2020-12-29 10:06:11 113

原创 当需要的端口被占用...

当服务因为端口被占用启动失败时 打开cmd输入: netstat -ano 查看所有进程(这步可省略) ![在这里插入图片描述](https://img-blog.csdnimg.cn/202012021126492.png 1.netstat -aon|findstr “4500” 查看端口号为4500的进程 文件末尾为该进程的PID号 2.taskkill /pid 5152 -t -f 杀死pid号为5152的进程及子进程 tasklist|findstr “4708” ...

2020-12-03 09:34:04 330

原创 java读取dbf文件

环境: maven,idea 1.导入依赖 <dependency> <groupId>com.github.albfernandez</groupId> <artifactId>javadbf</artifactId> <version>1.9.2</version> </dependency> 2.代码实现 public void re

2020-11-27 11:04:06 478 1

原创 使用fastDfs上传文件流程

前几天使用fastdfs做了一个文件上传功能,在这里整理总结一下。 环境:idea、maven。 1.导入依赖 在pom.xml中添加如下依赖: <dependency> <groupId>org.csource.fastdfs</groupId> <artifactId>fastdfs</artifactId> <version>1.2</version> </dependency> PS:

2020-11-02 17:20:15 1307

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除