- 博客(9)
- 收藏
- 关注
原创 JVM垃圾收集
垃圾对象引用计数法:概念:在对象中添加一个计数器,当这个对象被引用时计数器加1,引用失效时时,计数器减1,任何计数器为0的对象都可被视为垃圾对象。优点:实现简单,效率高。缺点:无法解决循环引用的问题。循环引用即两个或多个对象之间循环调用,除此之外再无其他的引用,这些对象虽然为垃圾,计数器却无法为0导致不能被回收。因此这个方法目前没有垃圾收集器在使用。可达性分析算法:概念:1.算法:从GC Roots根节点开始向下扫描,依次扫描结束后不能扫描到的对象视为垃圾对象2.GCRoots:方法栈中的.
2021-03-22 15:36:52
187
原创 JVM对象的创建
对象创建流程1.检测所在类是否已经被加载:如未加载先加载类2.内存分配:对象的大小是在类加载时就已经确定的,所以对象的内存分配只是在内存中分配一个指定大小的空间,一般有两种方式:分配方式①指针碰撞:内存中使用的区域较为规整,使用区和空闲区之间由一个指针分割,当需要放入新的数据时,只需要将指针向空闲区域这边移动一段(默认采用)②空闲列表:内存中剩余空间比较杂乱,这时是由一块区域存储目前空闲空间的索引,当新的数据进来时,先查询空闲列表,然后将数据放入空闲区域这两种分配方式都存在并发问题,解决方法有
2021-03-18 17:12:23
136
原创 JVM类加载
类加载器分类引导类加载器:加载jdk核心类库,由c++语言编写扩展类加载器(ExtClassLoader):加载jdk的ext中的扩展类库,由java语言编写应用程序类加载器(AppClassLoader):加载classpath路径下的类,主要是我们自己编写的类,由java语言编写自定义类加载器:需继承ClassLoader类,其核心方法为getLoader和findClass,findClass默认为空实现,自定义类加载器时主要是重写findClass方法,调用defineClass加载类,de
2021-03-18 16:53:28
141
原创 JVM内存模型
jvm的内存模型是指运行时数据区,包括:堆,栈,本地方法栈,方法区和程序计数器。堆:主要存放new出来的对象实例,一般分为新生代和老年代,默认比例为1:2。新生代分为eden区,survivor1,survivor2,比例为8:1:1。属于公有的栈:栈内存放栈帧,栈帧中包括局部变量表,操作数栈,动态链接,方法出口。属于线程私有的a.局部变量表:存放方法中的局部变量b.操作数栈:存放变量赋值以及运算时的操作数c.动态链接:d.方法出口:存放该方法调用结束后,调用该方法的方法执行到的位置除此之外栈
2021-03-18 16:48:51
98
原创 redis解决分布式并发数据安全问题
示例程序模拟电影票售票过程,票售出时该服务被调用,库存中票数减一。@RestControllerpublic class RedisDemoController { @Autowired private StringRedisTemplate stringRedisTemplate; @GetMapping("/stock") public String demo01(){ int stock = Integer.parseInt(stringRedi
2021-03-17 12:47:34
802
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
140
原创 当需要的端口被占用...
当服务因为端口被占用启动失败时打开cmd输入:netstat -ano 查看所有进程(这步可省略)![在这里插入图片描述](https://img-blog.csdnimg.cn/202012021126492.png1.netstat -aon|findstr “4500” 查看端口号为4500的进程文件末尾为该进程的PID号2.taskkill /pid 5152 -t -f 杀死pid号为5152的进程及子进程tasklist|findstr “4708”...
2020-12-03 09:34:04
393
原创 java读取dbf文件
环境:maven,idea1.导入依赖<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
584
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
1368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人