9 Saintyyu

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 5w+

jvm之safepoint、safeRegion和OopMap

前情说明本博客只是对文末的参考博客进行一个简单的汇总整理,不能算原创,但无奈csdn没有“整理”这种类型,因而还是挂成了原创。将这些零散的博客整理到一起有两方面的考虑:一方面是方便自己以后回顾,另一方面也方便大家进行系统性地学习。正文safepointJVM在很多场景下使用到safepoint,最常见的场景就是GC的时候。对一个Java线程来说,它要么处在safepoint,要么不在safepoint。Garbage collection pauses Code deoptimizat

2020-08-09 17:32:55

MySQL生成毫秒级别的时间戳

REPLACE(unix_timestamp(current_timestamp(3)),'.','')执行如下指令:select current_timestamp(3);将得到如下结果:2020-08-08 12:09:42.192执行如下指令:select unix_timestamp(current_timestamp(3))将得到如下结果:1596859992.347执行如下指令:select REPLACE(unix_timestamp(curre.

2020-08-08 12:15:16

java中断机制深入分析之Thread源码跟踪

一、Thread.stop() VS Thread.interrupt()在jdk1.0时代,要终止一个Java线程,可以使用Thread提供的stop()和destroy()等方法,但这些方法在jdk1.4之后就已经不推荐使用了,原因是这些方法会强行关闭当前线程,并解锁当前线程已经持有的所有监视器(互斥锁、共享锁),这会导致被这些监视器保护的数据对象处于不一致的状态,其它线程可以查看到这些不一致状态的数据对象,从而导致各种不可预知的错误。在jdk1.4引入了另外一种结束线程的方式——中断。简单来说

2020-08-02 21:49:38

Unsafe类park和unpark方法源码深入分析(mutex+cond)

转发一张经典的mutex和condition配合使用的图:参考博客:1、http://blog.sina.com.cn/s/blog_967817f20101bsf0.html

2020-07-18 11:36:22

如果你们的系统 CPU 突然飙升且 GC 频繁,如何排查

转载自:https://maimai.cn/article/detail?fid=1339344060&efid=JunjWu4-ReMYOR4mnJeiCQ

2020-03-06 13:37:00

JDK字符串存储机制及String#intern方法深入研究

在jdk7或jdk8中执行如下代码:public static void main(String[] args) { System.out.println("第一组对比:"); System.out.println("======"); String s1 = "1" + new String("2"); String s2 =...

2020-02-19 23:55:14

IGNORE,REPLACE,ON DUPLICATE KEY UPDATE在避免重复插入记录时存在的问题及最佳实践

参考博客:1、https://blog.csdn.net/jbboy/article/details/46828917MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)2、https://www.cnblogs.com/moss_tan_jun/p/6909565.html MySQL auto_increment的...

2020-02-15 17:26:55

Java反序列化源码深入追踪

众所周知,Java 原生的序列化方法可以分为两种:实现 Serializable 接口:可以自定义 writeObject、readObject、writeReplace、readResolve 方法,会通过反射调用。 实现 Externalizable 接口:需要实现 writeExternal 和 readExternal 方法。实际上,Externalizable接口继承自Seria...

2020-02-08 21:40:15

利用Code128字体将文本转换为code128条形码--Java版

在项目开发过程中,遇到一个需求,需要将大量商品信息存储到excel中,供用户下载。其中商品的upc字段需要是条形码,以方便用户用扫码枪扫描。常见的方案是将upc转换为条形码的图片。但在项目中发现, 当商品的数量为数千时,会因为文件太大而无法下载。考虑到可以在客户端安装一些条码字体,从而在服务端就无须生成条形码图片,即使商品数量为数千,其下载文件也很小。利用Code128字体将...

2020-01-05 21:42:32

tsl和cas

TSL是Test and Set Lock的缩写,是CPU提供的一个原子指令,其工作如下所述:它将一个存储器字读到一个寄存器中,然后在该内存地址上存一个非零值。读数和写数操作保证是不可分割的——即该指令结束之前其他处理机均不允许访问该存储器字。执行TSL指令的CPU将锁住内存总线(实际是锁缓存)以禁止其他CPU在本指令结束之前访问内存。操作系统的Mutex就是基于TSL指令实现的。CAS是Co...

2019-12-06 18:49:00

JAVA ClassLoader双亲委派机制细节研究

我们都知道,Java类都是靠ClassLoader来加载的,而类加载器也是java类,因而java类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是java类,这个加载器正是BootstrapClassLoader。由于它不是Java类,因此它不需要被别人加载,而嵌套在Java虚拟机内核里面,也就是JVM启动的时候Bootstrap就已经启动,它是用C++写的二进制代码(不是字节码),它...

2019-11-25 21:11:44

ElasticSearch原理入门

生活中的数据总体上可以分为两种:结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据:又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、Word 文档,邮件,各类报表、图片和音频、视频信息等。...

2019-11-14 09:59:38

ElasticSearch倒排索引

一、倒排索引倒排索引(Inverted Index)也叫反向索引,有反向索引必有正向索引。通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key。以文档为例,通过文档id索引文档中出现的单词叫正排索引,而通过单词反向索引包含该单词的文档叫做倒排索引。倒排索引的样子:Term(单词):一段文本经过分析器分析以后就会输出一串单词,这一个一个的就叫做Ter...

2019-11-14 23:01:38

常见的保障盘点结果准确性的方法和盘点差异的处理方法

前言盘点,即通过实物清点结果和账面库存进行对比,发现两者差异并及时调整该差异,以保证库存的实时准确性,并追溯差异产生的原因。这里的准确性包括数量的准确性、存放位置的准确性、存货质量的准确性等。盘点的目的之一是保证库存准确性,但不恰当的盘点方法反而会导致库存变得不准确。另外,当盘点出现差异时,恰当的处理方法可以帮助发现库存管理中潜在的问题,从而优化库存管理。本文将介绍常见的保障盘点结果准确性的常...

2019-11-13 15:03:15

Spring如何解决循环依赖问题

在关于Spring的面试中,我们经常会被问到一个问题,就是Spring是如何解决循环依赖的问题的。这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不一定能够一下子思考出个中奥秘。本文主要针对这个问题,从源码的角度对其实现原理进行讲解。1. 过程演示关于Spring bean的创建,其本质上还是一个对象的创建,既然是对象,读者朋友一...

2019-11-12 10:36:46

MySQL索引原理——B树

1、MyISAM是MySQL 5.5之前版本默认的存储引擎,从5.5之后,InnoDB开始成为MySQL默认的存储引擎。MyISAM使用B-Tree实现主键索引、唯一索引和非主键索引。InnoDB中非主键索引使用的是B-Tree数据结构,而主键索引使用的是B+Tree。2、InnoDB存储引擎中有页(Page)的概念,页是其磁盘管理的最小单位。InnoDB存储引擎中默认每个页的大小为16KB,...

2019-11-11 23:10:00

G1垃圾回收器

to be continue。。。

2019-11-10 21:23:42

生产环境jvm启动参数

以下为生产环境中一套完整的启动参数配置方案:-server-Xloggc:/var/logs/appkey.gc.log -XX:ErrorFile=/var/logs/appkey.vmerr.log -XX:HeapDumpPath=/var/logs/appkey.heaperr.log-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-...

2019-11-10 09:01:59

jvm调优-命令大全(jps jstat jmap jhat jstack jinfo jvisual)

JVM自带了很多命令工具可以用于在生产环境中监控和查看虚拟机的运行情况,比如堆栈使用情况信息、GC信息、启动参数等;也可以动态修改运行参数以优化虚拟机性能。以下常用命令工具及相关缩写介绍。jhat:JVM Heap Analysis Tool, 常与jmap搭配使用,用于分析jmap生成的dump格式的文件 jps:JVM Process Status Tool,用于查看虚拟机启动相关信息,...

2019-11-09 22:15:03

CMS垃圾回收器细节思考与补充

CMS垃圾回收器作为jdk6、jdk7、jdk8等jdk版本对老年代进行垃圾回收的首选,其重要性不言而喻。深入理解CMS垃圾回收器的各个阶段存在的价值对于性能调优非常关键。CMS的正常过程参考博客3给出了CMS垃圾回收器的7个步骤:1. 初始标记(CMS-initial-mark) ,会导致swt;2. 并发标记(CMS-concurrent-mark),与用户线程同时运行;3. 预...

2019-11-03 14:25:31

查看更多

勋章 我的勋章
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。