- 博客(10)
- 收藏
- 关注
原创 记一次线上内存溢出问题排查
最近线上的服务出现了一次内存溢出的报错,但是服务进程在GC后自动恢复了,记录下本次问题的排查过程。1.服务日志监控,在某个时间点,日志中有java.lang.OutOfMemoryError:Java heap space的报错,并且服务线程数有飙升的情况,在经历GC后,服务恢复。2.由于线上以前出现过JVM内存溢出的问题,在JVM启动参数中加了 内存溢出时,dump出当前堆内存快照的指令-XX:+HeapDumpOnOutOfMemoryError3.可以在服务的tomcat日志输出目录下,找到异
2021-08-18 17:47:04
757
原创 mysql可重复读的实现
开篇先引用一篇文章解释下 快照读、当前读 的概念,以及快照读的RR实现原理正确的理解MySQL的MVCC及实现原理接下来分析下当前读的RR实现原理,本质是通过锁来实现的。mysql的锁机制行锁&表锁mysql的官方文档上,有提到四种锁(S、X、IS、IX)。其中IS和IX都是表级锁,S和X是行级锁。间隙锁除了上述四种锁以外,mysql在innodb引擎中,还引入了 gap lock (间隙锁),间隙锁本身是不互斥的,但是间隙锁的存在,会导致DB索引之间的间隙被锁住,无法进行数据的插
2021-08-16 17:13:57
159
原创 mysql的事务和事务隔离级别
事务的四个特性:原子性(Atomicity)事务操作虽然可能是一系列的,但却不可分割,要不都执行,要不都不执行隔离性(Isolation)多个事务之间是隔离的,互不干扰持久性(Durability)持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。一致性(Consistency)The consistency aspect of the ACID model mainly involves internal InnoDB pro
2021-08-16 16:34:55
132
原创 多线程之互斥锁(synchronized关键字)
synchronized关键字经常被用来做线程互斥锁,但是使用不当的话,经常达不到目的。初学者常对锁住的是对象还是类有疑问。 原理:无论是对象还是类都有唯一的锁,synchronized只是声明了函数调用时需要什么锁,每个锁同一时间只能由一个线程获取,借此实现了线程互斥。 (1)分析对象锁 A.synchronized修饰非静态函数 接下来看实例:public enum Person {
2017-09-12 14:47:54
4772
原创 java设计模式之单例模式
单例模式(singleton pattern)真的是老生常谈了。本质上就是为了节省内存开销,希望尽可能减少对象创建数量,尤其是只用来做函数调用的对象。 单例模式分两种:懒汉式和饿汉式。补充一点,不管是哪种,都应该私有化构造函数强化单例性质。 A.懒汉式 关于懒汉式我真的不想说啥,这玩意线程安全问题太多了,多到都不想去用。直接上案例:/** * 懒汉式单例 */public class L
2017-09-08 18:44:42
208
原创 java设计模式之装饰器模式
装饰器模式(decorator Pattern)一般用来扩展原有类的功能。“装饰模式把复杂的功能简单化,然后在运行期间动态组合”,这句话是引用。。 其实最生动的例子,莫过于JDK源码中的IO流源码了,有兴趣的童鞋可以自己看看。 构建场景,最开始给我们盖一个房子,然后我们装修的时候要给房子安装门和窗户。 (1)首先我们有一个接口:public interface Building { v
2017-09-08 17:39:14
432
原创 java设计模式之适配器模式
适配器模式(adapter pattern)相当于一种补救手段,在项目开发期基本不会用到。 适配器的核心目的是不改动原有的逻辑,而又可以使用新的函数 首先构建代码场景: 我们项目里有一个支付的模块,支付模块是相对隔离的,即支付后的操作都是一致的。 一开始设计的时候,只想用户用支付宝支付,于是我们这么写 (1)先声明一个支付的接口public interface Pay { void
2017-09-08 17:07:44
325
转载 java传值还是传引用的问题详解
1. 简单类型是按值传递的 Java 方法的参数是简单类型的时候,是按值传递的 (pass by value)。这一点我们可以通过一个简单的例子来说明:/* 例 1 *//*** @(#) Test.java* @author fancy*/public class Test {public static void test(boolean test) {
2015-12-02 11:10:31
318
原创 SSM整合中遇到的问题总结
最近在用SSM框架,使用过程中遇到的问题,就本博客做一个总结:1.struts2不是所有情况下都支持pojo的struts2本身是支持pojo的,即当以account.name形式的参数进行http访问的时候,可以自动封装成对象。但是表单中有一个enctype属性,该属性指定了表单数据的编码格式:默认格式为:application/x-www-form-urlencoded,它将表
2015-11-27 11:00:58
4754
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人