标签:swap

Java

一次 Young GC 的优化实践(FinalReference 相关)

4

hanze 发布于 2020-01-17

前言 博客已经好久没有更新了,主要原因是 18 年下半年工作比较忙,另外也没有比较有意思的题材,所以迟迟没有更新。 此篇是 18 年底的微信上的某同学提供的一个 Young GC 问题案例,找我帮忙解决。这个 GC 案例比较有意思,虽然过去有一段时间了,但是想想觉得还是有必要写出...

阅读(8)评论(0)赞 (0)

Java

Java中的锁「原理、锁优化、CAS、AQS」

22

zhuangli 发布于 2020-01-16

一、为什么要用锁? 锁-是为了解决并发操作引起的脏读、数据不一致的问题。 二、锁实现的基本原理 2.1、volatile Java编程语言允许线程访问共享变量, 为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某...

阅读(18)评论(0)赞 (0)

Java

JVM菜鸟进阶高手之路九(解惑)

14

刘莉莉 发布于 2020-01-16

关于MAT工具相关知识解惑 MAT 不是一个万能工具,它并不能处理所有类型的堆存储文件。但是比较主流的厂家和格式,例如 Sun, HP, SAP 所采用的 HPROF 二进制堆存储文件,以及 IBM 的 PHD 堆存储文件等都能被很好的解析,MAT下载地址,以及相关文档: htt...

阅读(11)评论(0)赞 (0)

Java

JAVA锁原理之 CAS原子操作篇

6

尖兵 发布于 2020-01-15

原子操作(atomic operation)指的是由 多步操作组成的一个操作 。如果该操作不能原子地执行,则要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集。 现代操作系统中,一般都提供了原子操作来实现一些同步操作,所谓原子操作,也就是一个独立而不可分割的操作...

阅读(14)评论(0)赞 (0)

Java

透过面试题掌握HashMap【持续更新中】

3

hanze 发布于 2020-01-15

最近做了一个面试题解答的开源项目,大家可以看一看,如果对大家有帮助,希望大家帮忙给一个star,谢谢各位大佬了! 《面试指北》项目地址: https://github.com/NotFound9/… 下面是主要是自己看了《疯狂Java讲义》和一些Java容器类相关的博...

阅读(14)评论(0)赞 (0)

Java

七. AOP 的实现原理源码分析

9

小丁 发布于 2020-01-12

1、先简单的概述下 关于切面的概念可以参考下这篇文章,已经解释的很好了: https://mp.weixin.qq.com/s/BYxXMAEIfOSCCx1KanP9lg 但是上面流于概念的讲解,少了一些具体源码上的分析。 下面按照我的理解,说明一下吧。 1.1 实现一个切面功...

阅读(19)评论(0)赞 (0)

Java

JVM—【01】认识JVM的内存布局和运行时数据区

5

小丁 发布于 2020-01-11

1. Java 内存区域 1.1. JVM 内存布局 与 运行时数据区 JVM 内存布局 与 运行时数据区 1.2. Heap 堆 它的唯一目的就是存放对象实例; 几乎所有对象实例和数组,分配内存的区域 。 堆内存区域是线程共享区域,并发编程时需要考虑线程安全问题。 可以通过 -...

阅读(11)评论(0)赞 (0)

Java

java 线程中常常遇到的锁的讲解

1

zhuangli 发布于 2020-01-10

互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求该资源,则请求者只能等待,直至占有该资源的进程用毕释放。 请求和保持条件:指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又被其它进程占有,此时请求进程阻塞...

阅读(13)评论(0)赞 (0)

Java

MyBatis项目实战 快速将MySQL转换成Oracle语句

puefu.he 发布于 2020-01-10

一、前言 因项目需求,小编要将项目从mysql迁移到oracle中 ~ 之前已经完成 数据迁移 ( https://zhengqing.blog.csdn.net/article/details/103694901 ) 现在将完成 基于 MyBatis-Plus 将项目中的 My...

阅读(19)评论(0)赞 (0)

Java

一文看懂JUC之AQS机制

7

xiaoli.he 发布于 2020-01-09

为了解决原子性的问题,Java加入了锁机制,同时保证了可见性和顺序性。JDK1.5的并发包中新增了Lock接口以及相关实现类来实现锁功能,比synchronized更加灵活,开发者可根据实际的场景选择相应的实现类。本文注重讲解其不同衍生类的使用场景以及其内部AQS的原理。并发问题...

阅读(17)评论(0)赞 (0)

Java

GC一些长时间停顿问题排查及解决办法

yeseng 发布于 2020-01-09

对于许多企业级应用,尤其是OLTP应用来说,长暂停很可能导致服务超时,而对这些运行在JVM上的应用来说, 垃圾回收(GC)可能是长暂停最主要的原因 。本文将描述一些可能碰到GC长暂停的不同场景,以及说明我们如何排查和解决这些GC停顿的问题。 下面是一些应用在运行时,可能导致GC长...

阅读(21)评论(0)赞 (0)

Java

CAS解析

1

puefu.he 发布于 2020-01-09

CAS:compare and swap,也有的叫做 compare and set;意思都差不多,翻译过来就是比较并交换或者比较并设值。 CAS包含三个值,内存地址(V),预期值(A),新值(B)。先比较内存地址的值和预期的值是否相等,如果相等,就将新值赋在内存地址上,否则,不...

阅读(12)评论(0)赞 (0)

Java

Java 并发进阶常见面试题总结

11

xiaoli.he 发布于 2020-01-08

Java 并发进阶常见面试题总结 1. synchronized 关键字 1.1. 说一说自己对于 synchronized 关键字的了解 synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻...

阅读(25)评论(0)赞 (0)

Java

Java线上问题排查与工具使用详解

25

songhua.gao 发布于 2020-01-08

Java 语言是当前互联网应用最为广泛的语言,作为一名 Java 程序猿,当业务相对比较稳定之后平常工作除了 coding 之外,大部分时间(70%~80%)是会用来排查突发或者周期性的线上问题。由于业务应用 bug(本身或引入第三方库)、内外部环境、底层硬件问题等原因,Java...

阅读(30)评论(0)赞 (0)

Java

JVM 与 Linux 的内存关系 java开发必看!!!

10

小丁 发布于 2020-01-08

JVM 与 Linux 的内存关系 java开发必看!!! 不建立在物理机器上的软件运行都是扯淡 更好看的格式: https://www.yuque.com/shizhiy… 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的J...

阅读(18)评论(0)赞 (0)

Java

java中的"锁"事

4

Harries 发布于 2020-01-07

在说到Java锁之前,先回顾一下Java异步编程中的多线程。 维基百科–>多线程(英语: multithreading ),是指从 软件 或者 硬件 上实现多个 线程 并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个 线程 ,进而提...

阅读(19)评论(0)赞 (0)

Java

不懂什么是锁?看看这篇你就明白了

27

Harries 发布于 2020-01-07

点击蓝色“ 高性能服务器开发 ”关注我哟 加个“ 星标 ”,一起快乐成长 Java 锁分类 Java 中的锁有很多,可以按照不同的功能、种类进行分类,下面是我对 Java 中一些常用锁的分类,包括一些基本的概述 从线程是否需要对资源加锁可以分为 悲观锁 和 乐观锁 从资源已被锁定...

阅读(22)评论(0)赞 (0)