自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Innodb中的事务隔离级别和锁的关系

前言 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于加锁的处理,可以说就是数据库对于事务处理的精髓所在。这里通过分析MySQL中InnoDB引擎的加锁机制,来抛砖引玉,让读者更好的理解,在事务处理中数据库到底做了什么。 一次封锁or两段锁...

2019-06-17 16:11:30 48

转载 Spring3:AOP

转载:http://www.cnblogs.com/xrq730/p/4919025.html AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者...

2019-04-01 11:29:34 118

转载 IoC 之 2.1 IoC基础 ——跟我学Spring3

2.1.1 IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下: ●谁控制谁,控制什么:...

2019-04-01 09:58:07 111

转载 Java中的公平锁和非公平锁实现详解

转载:https://blog.csdn.net/qyp199312/article/details/70598480#reentrantlock%E7%9A%84%E5%8F%AF%E9%87%8D%E5%85%A5%E6%80%A7%E5%88%86%E6%9E%90 ReentrantLock的可重入性分析 synchronized的可重入性 ReentrantLock的可重入性 Reen...

2019-03-11 16:20:02 405

转载 Lock与synchronized 的区别

转载:Lock与synchronized 的区别 1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用Ree...

2019-03-11 16:17:19 98

转载 Java并发编程:Synchronized及其实现原理

转载:https://www.cnblogs.com/paddix/p/5367116.html Java并发编程系列: Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁、偏向锁) Java 并发编程:线程间的协作(wait/notify/sleep/yield...

2019-03-11 15:15:49 87

转载 Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS

转载:https://www.cnblogs.com/qjjazry/p/6581568.html 首先介绍一些乐观锁与悲观锁:   悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同...

2019-03-11 15:07:31 96

转载 Java中CAS详解

转载:https://blog.csdn.net/ls5718/article/details/52563959 在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 (2)一个线程持有锁会导致其它所有需要此锁的线程挂起。 (3)如果一个优先级高的...

2019-03-11 15:04:17 94

转载 Java并发之AQS详解

转载:https://www.cnblogs.com/waterystone/p/4920797.html 一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如...

2019-03-11 15:02:04 95

转载 Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

转载:https://www.cnblogs.com/dolphin0520/p/3920397.html  在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。   以下是本文目录大纲:   一.CountDownLatch用法   二.Cycli...

2019-03-11 14:57:48 88

转载 Java-线程池专题

转载:https://www.cnblogs.com/aspirant/p/6920418.html 1、什么是线程池: java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。...

2019-03-11 14:55:36 95

转载 JVM 性能调优监控工具

转载:https://www.cnblogs.com/anxiao/p/6796644.html?utm_source=itdadao&utm_medium=referral 企业级应用开发中经常会遇到以下问题,可以使用工具对JVM进行监管,以便及时查找问题所在。   内存不足OutOfMemory(大对象没有gc等),内存泄露;   线程死锁,线程数过多;   锁争用(Lock Con...

2019-03-11 14:49:16 110

转载 Java 内存溢出

转载:http://outofmemory.cn/c/java-outOfMemoryError java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。 导致OutOfMemoryError异常的常见原因有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据; ...

2019-03-11 14:48:54 93

转载 Java内存管理

转载:http://www.importnew.com/21463.html 对于一个Java程序员来说,大多数情况下的确是无需对内存的分配、释放做太多考虑,对Jvm也无需有多么深的理解的。但是在写程序的过程中却也往往因为这样而造成了一些不容易察觉到的内存问题,并且在内存问题出现的时候,也不能很快的定位并解决。因此,了解并掌握Java的内存管理是一个合格的Java程序员必需的技能,也只有这样才能...

2019-03-09 14:16:25 116

转载 java内存管理机制

JAVA内存管理总结 1.java是如何管理内存的 Java的内存管理就是对象的分配和释放问题。(两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。 释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够正...

2019-03-09 14:13:07 407 1

转载 Java类加载机制

转载:https://zhuanlan.zhihu.com/p/25228545 概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,...

2019-03-09 14:06:30 117

转载 Java虚拟机垃圾收集器

转载:https://blog.csdn.net/tjiyu/article/details/53983650 Java虚拟机垃圾回收(三) 7种垃圾收集器 主要特点 应用场景 设置参数 基本运行原理 在《Java虚拟机垃圾回收(一) 基础》中了解到如何判断对象是存活还是已经死亡?在《Java虚拟机垃圾回收(二) 垃圾回收算法》了解到Java虚拟机垃圾回收的几种常见算法。 ...

2019-03-09 14:00:15 119

转载 深入理解Java虚拟机笔记---运行时栈帧结构

转载:https://blog.csdn.net/xtayfjpk/article/details/41924283?utm_source=tuicool&utm_medium=referral 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表...

2019-03-09 13:57:52 120

转载 JVM调优

堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置: java-Xmx3550m -Xms3550m -...

2019-03-09 11:23:58 104

转载 Java GC 日志详解(一图读懂)

Java GC日志可以通过 +PrintGCDetails开启 以ParallelGC为例 YoungGC日志解释如下(图片源地址:这里) : FullGC(图片源地址:这里):

2019-03-09 11:20:55 224

转载 JVM调优

1、JVM参数设置 1.1 设置堆内存大小 参数:-Xmx:最大堆    -Xms:最小堆 含义:堆大小指的是新生代和老生代大小之和。 备注:Java应用程序运行时,首先会被分配-Xms指定的内存大小,并且尽可能尝试在这个空间段内运行。当内存无法满足程序时,JVM会向系统申请内存,直到内存大小为-Xmx。如果-Xms指定的内存较小,那么JVM GC的频率要更高。 注意:当内存使用量到达...

2019-03-09 11:19:04 199

转载 实际案例Java应用的GC优化

当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容: > 优化前准备: 简单回顾JVM相关...

2019-03-09 11:08:28 161

转载 JVM-GC日志分析

程序运行时配置如下参数: -Xms20M -Xmx20M -Xmn10M -verbose:gc -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:+PrintGCTimeStamps 最终,程序输出: 0.070: [GC (Allocation Failure) [PSYoungGen: 7127K->616K(9216K)] 1122...

2019-03-09 10:54:32 124

空空如也

空空如也

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

TA关注的人

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