自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记一次线上内存溢出问题排查

最近线上的服务出现了一次内存溢出的报错,但是服务进程在GC后自动恢复了,记录下本次问题的排查过程。1.服务日志监控,在某个时间点,日志中有java.lang.OutOfMemoryError:Java heap space的报错,并且服务线程数有飙升的情况,在经历GC后,服务恢复。2.由于线上以前出现过JVM内存溢出的问题,在JVM启动参数中加了 内存溢出时,dump出当前堆内存快照的指令-XX:+HeapDumpOnOutOfMemoryError3.可以在服务的tomcat日志输出目录下,找到异

2021-08-18 17:47:04 636

原创 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 116

原创 mysql的事务和事务隔离级别

事务的四个特性:原子性(Atomicity)事务操作虽然可能是一系列的,但却不可分割,要不都执行,要不都不执行隔离性(Isolation)多个事务之间是隔离的,互不干扰持久性(Durability)持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。一致性(Consistency)The consistency aspect of the ACID model mainly involves internal InnoDB pro

2021-08-16 16:34:55 91

原创 多线程之互斥锁(synchronized关键字)

synchronized关键字经常被用来做线程互斥锁,但是使用不当的话,经常达不到目的。初学者常对锁住的是对象还是类有疑问。 原理:无论是对象还是类都有唯一的锁,synchronized只是声明了函数调用时需要什么锁,每个锁同一时间只能由一个线程获取,借此实现了线程互斥。 (1)分析对象锁 A.synchronized修饰非静态函数 接下来看实例:public enum Person {

2017-09-12 14:47:54 4688

原创 java设计模式之单例模式

单例模式(singleton pattern)真的是老生常谈了。本质上就是为了节省内存开销,希望尽可能减少对象创建数量,尤其是只用来做函数调用的对象。 单例模式分两种:懒汉式和饿汉式。补充一点,不管是哪种,都应该私有化构造函数强化单例性质。 A.懒汉式 关于懒汉式我真的不想说啥,这玩意线程安全问题太多了,多到都不想去用。直接上案例:/** * 懒汉式单例 */public class L

2017-09-08 18:44:42 183

原创 java设计模式之装饰器模式

装饰器模式(decorator Pattern)一般用来扩展原有类的功能。“装饰模式把复杂的功能简单化,然后在运行期间动态组合”,这句话是引用。。 其实最生动的例子,莫过于JDK源码中的IO流源码了,有兴趣的童鞋可以自己看看。 构建场景,最开始给我们盖一个房子,然后我们装修的时候要给房子安装门和窗户。 (1)首先我们有一个接口:public interface Building { v

2017-09-08 17:39:14 335

原创 java设计模式之适配器模式

适配器模式(adapter pattern)相当于一种补救手段,在项目开发期基本不会用到。 适配器的核心目的是不改动原有的逻辑,而又可以使用新的函数 首先构建代码场景: 我们项目里有一个支付的模块,支付模块是相对隔离的,即支付后的操作都是一致的。 一开始设计的时候,只想用户用支付宝支付,于是我们这么写 (1)先声明一个支付的接口public interface Pay { void

2017-09-08 17:07:44 265

转载 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 288

原创 SSM整合中遇到的问题总结

最近在用SSM框架,使用过程中遇到的问题,就本博客做一个总结:1.struts2不是所有情况下都支持pojo的struts2本身是支持pojo的,即当以account.name形式的参数进行http访问的时候,可以自动封装成对象。但是表单中有一个enctype属性,该属性指定了表单数据的编码格式:默认格式为:application/x-www-form-urlencoded,它将表

2015-11-27 11:00:58 4697

原创 使用httpclient模拟表单上传文件,后台用struts2接收

使用httpclient模拟表单上传文件,后台用struts2接收

2015-11-24 09:56:07 2612 1

空空如也

空空如也

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

TA关注的人

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