自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM中的对象探秘(三)- 对象的实例数据与对齐填充

引言上一篇文章我们讲解了JVM对象内存布局的第一部分对象头,今天我们继续来讲讲剩下的两部分实例数据(Instance Data) 、对齐填充(Padding)。实例数据与对齐填充这两部分我们放在一起将,先来看一下概念(深入理解JAVA虚拟机 第2.3.2节):实例数据(Instance Data):实例数据部分是对象真正存储的有效信息,也既是我们在程序代码里面所定义的各种类型的字段内容,无论是从父类继承下来的,还是在子类中定义的都需要记录下来。 这部分的存储顺序会受到虚拟机分配策略参数Fiel

2020-08-22 15:42:41 3411 2

原创 JVM中的对象探秘(二)- 对象头

引言  上一篇文章讲述了JVM中对象是如何被创建的,这篇文章来讲一下对象在JVM内存中的布局。  首先在HotSpot虚拟机中,对象存储在内存中被分为了三部分:对象头(Header)、实例数据(Instance Data) 、对齐填充(Padding)。  其中对象头又包含两部分信息:第一部分是存储对象自身运行时的数据,如HashCode、Gc年龄、锁状态等等,另一部分存储了类型指针,虚拟机可以通过这一指针来确定这个对象是哪个类的实例。  实例数据就是对象真正存储的有效信息。对其填充没有什么特别的含

2020-08-20 16:52:41 1851 5

原创 JVM中的对象探秘(一)- 对象的创建

  JAVA代码中我们最熟悉的关键词莫过于 new 了,使用new我们可以轻而易举的创建一个对象,可是在jvm中这个对象是如何被创建的呢?今天,我们一起来探秘一下。  当JVM遇到一条new指令时,首先会去检查这个指令的参数能否在常量池中定义到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有,那么必须先进行相应的类加载过程(类加载过程我之后别的文章会详解一下,本期暂不讲解)。  当类加载检查通过以后,JVM就可以为新生对象分配内存了。那么为新生对象分配内存这件事其实

2020-08-19 16:09:23 430 1

原创 ElasticSearch 不停机重新索引(reindex)

假设需要reindex的索引为 book1.新建一个临时索引 book_v1 (我们通常都使用template,所以不需要指定mapping)PUT /book_v12.将旧索引数据reindex到临时索引中POST /_reindex{ "source": { "index": "book" // 这里可以写query,指定reindex哪些数据 // "query": {} }, "dest": { "index": "book_v1"

2020-08-14 16:45:16 1855 1

原创 java.lang.Object类详解

Object类详解一、引言​ Object类作为所有类的父类,因此被默认继承所以省略了 extends Object,该类中定义了其它所有类都需要的方法,本文将针对这些方法进行一个详细解释。二、源代码省略大部分原注释,并增加了部分个人理解/* * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subje

2020-07-17 12:58:39 5137

原创 JDK8源码阅读-WINDOWS下环境搭建

引言  之前在阅读JDK源码时,我们通常都是直接打开的引入JDK包下的类进行学习的,可是这里面的类文件我们是无法做修改,没有办法直接写我们自己的注释到上面,笔记记录非常麻烦。因此我们可以搭建自己的源码环境,在后续阅读过程中可以直接对类文件做修改,也方便我们回顾和复习。搭建环境一.解压源码压缩包  首先找到我们JDK的安装目录,本人当初安装JDK时候使用的安装版并且装在了默认路径下。所以我的安装目录在 C:\Program Files\Java\jdk1.8.0_181  解压之前,我们先在IDEA

2020-07-13 17:11:34 1487

转载 SpringBoot偶现的参数丢失问题

  前两天排查生产环境ERROR日志时候,发现了很多参数丢失的异常;查看了Ingress访问日志,发现请求参数和请求体中,前端确确实实传了该参数到后端,那么怎么就丢了呢?  https://blog.csdn.net/Mr_SeaTurtle_/article/details/79274748  在参考了该博主的文章 之后立刻排查了代码,发现我们为了记录操作日志,确实在切面中使用了HttpServletRequest对象,并且为了更快的响应结果给前端,我们将HttpServletRequest对象一同丢

2020-07-09 19:46:52 2238

原创 从源码层面分析TOMCAT的一些连接器参数配置

引言  作为一个JAVA程序员,Tomcat应该是我们工作中最常见的Web服务器了,最近正好工作之余有点空闲时间就简单研究了一下。  本文主要讲的是我们在做Tomcat性能调优时常修改的一些参数,深入到源码当中,看看这些参数到底是什么含义,起了什么作用。Tomcat的整体架构以及各个组件本文不作讲解。Springboot 内置的 Tomcat修改 Tomcat 版本可以直接看第四步1.打开父POM<spring-boot-starter-parent>2.再打开父POM的父POM&

2020-07-09 19:15:38 724

原创 每隔十小时定时FULLGC的问题排查

  由于项目需要对接webservice接口于是在项目中引入了CXF框架,今天查看POD日志时候发现日志中有规律性的FULLGC,GC日志上显示System.gc(),说明是外部调用的,而不是垃圾收集器自发收集的。  因为这个服务是专门为了对接webservice所创建的,除了cxf框架外没有引入任何其它第三方的框架,因此猜想如此规律的gc会不会是因为cxf导致的。  看了一下其它博主的博客更加证实了我的猜想。讲的很详细,我就不粘过来了,链接如下:  https://blog.csdn.net/qq_

2020-07-06 11:24:10 452

原创 ElasticSearch三种分页方式比较

ElasticSearch 三种分页方式比较分页方式说明优点缺点适用场景from + size最常用的分页方式,指定分页大小和偏移量可以直接获取到需要的数据。但是内存消耗特别大,而且速度也很一般,当我们指定from = 100000,size = 10 的时候,每个node都会取出top 100000的数据,再进行汇总排序,假设3个node,那么就需要取出3*1000...

2020-04-20 16:20:18 519

原创 【SuperCsv】java.lang.StringIndexOutOfBoundsException: null

记一次SuperCsv线程不安全的用法在使用SuperCsv进行Csv文件导出时进行表头写入时发生了以下异常。java.lang.StringIndexOutOfBoundsException: null at java.lang.AbstractStringBuilder.delete(AbstractStringBuilder.java:760) at java.lang.String...

2020-04-16 15:30:06 937 1

空空如也

空空如也

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

TA关注的人

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