java命令--jstack的使用 jstack用于生成java虚拟机当前时刻的线程快照。可以用来分析线程问题(如死锁),CPU突然飙升问题 1. 案例一 找出死锁1.1 问题代码1234567891011121314151617181920212223242526272829303132333435public class DeadLockTest { private static Object lock1 = ne 2022-06-25 JVM #java命令
对象内存回收 垃圾回收垃圾收集主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后就会消失,因此不需要对这三个区域进行垃圾回收。 判断一个对象是否可被回收要对垃圾进行回收,首先得判断这个对象是否可以被回收,有两种方法来判断: 引用计数法给对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的对象 2022-06-24 JVM #性能调优 #垃圾回收 #常见引用类型 #如何判断一个类是无用的类 #finalize()方法
java命令--jinfo&jstat Jstatjstat命令可以查看堆内存各部分的使用量,以及加载类的数量。 垃圾回收统计jstat -gc pid 最常用,可以评估程序内存使用及GC压力整体情况 S0C:第一个幸存区的大小,单位KB S1C:第二个幸存区的大小 S0U:第一个幸存区的使用大小 S1U:第二个幸存区的使用大小 EC:伊甸园区的大小 EU:伊甸园区的使用大小 OC:老年代大小 OU:老年代使用大小 2022-06-19 JVM #java命令
mysql事务隔离级别 mysql 事务1.事务定义事务是一个操作集合,这些操作要么都执行,要么都不执行,他是一个不可分割的工作单位。 2.事务的四大特性 原子性:事务是一个原子操作单元,它对数据的修改,要么都执行,要么都不执行。 一致性:一个事务执行前和执行后,数据必须保持一致,如:转账前用户AB的钱加在一起时500,转账后也应该是500 隔离型:事务外的实体不可以知道事务过程中的中间状态 持久性:对数据库的操作是永久 2022-06-14 数据库 #mysql事务
mysql事务隔离性的实现 mysql事务隔离性的实现MVCC机制(多版本并发控制) Mysql在读已提交和可重复读隔离级别下都实现了MVCC机制。 主要是保存数据在某个时间点的快照实现的。 mysql在每行记录后面,保存了两个隐藏列,分别为:创建事务id和删除事务id MVCC机制的实现就是通过read-view机制与undo版本链比对机制,使得不同的事务会根据数据版本链对比规则读取同一条数据在版本链上的不同版本数据。 2022-06-13 数据库 #mysql事务
postgresql索引基础 PostgreSQL索引类型 PostgreSQL提供了多种索引类型: B-tree、Hash、GiST、SP-GiST 、GIN 和 BRIN。 每一种索引类型使用了 一种不同的算法来适应不同类型的查询。 默认情况下,CREATE INDEX命令创建适合于大部分情况的B-tree 索引。 数据类型 2022-06-01
flex 布局 1 开启flex 布局 开启flex布局,只需要在最外层容器设置 display: flex即可 采用 Flex 布局的元素,称为 Flex 容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称”项目”。 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。 主轴的开始位置(与边 2022-05-29 前端 #css flex
数据库三大范式 第一范式(确保每列保持原子性)数据库表中的所有字段值都是不可分解的原子值。 比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。 但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。 第二范式(确保表中的每列都和主键相关)第二范 2022-05-24 数据库 #数据库
hooks的使用 useRef案例效果: 点击按钮,文本title修改 点击按钮,input聚焦123456789101112131415161718192021222324252627282930import React, { useRef, PureComponent } from 'react'class TestChild extends PureComponent 2022-05-12 React #hook
git修改指定的提交 1. git修改指定的提交 git rebase --interactive 'cffa46f19811496d9165cf2c32250943f94f0099^' 修改 git add . git commit --amend git rebase --continue 2. 更新gitignore文件后,git删除仓库中的缓存git rm -r --cached targe 2022-05-10 Git #Git