自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

原创 ArrayList iterator源码分析,为什么迭代器删除元素不会报错

arraylist源码,迭代器删除元素,iterator删除元素

2023-01-03 21:43:04 886

原创 ArrayList扩容源码解析

arraylist grow扩容源码、arraylist add源码、arraylist整数溢出、arraylist扩容bug。

2022-11-05 19:34:08 398

原创 2022 oracle账号,下载jdk账号

oracle账号,下载jdk账号

2022-09-01 21:28:38 829 1

原创 Java堆:Shallow Size和Retained Size

java堆 Shallow和retained sizes idea的Shallow和retained

2021-06-20 18:35:30 633

转载 sysbench压测MySQL数据库

一般情况下,在企业中我们申请了一台数据库服务器,不是直接开发使用,而是先进行压测,这样就能心里有数,这台数据库服务器的负载压力如何,性能表现如何,每秒能抗住多少个请求。1、测试机器2 vCPU 4 GiB (I/O优化)2、数据库压测工具sysbench,开源项目,去github下载就行。3、建立测试库create database test_db character set utf8mb4 collate utf8mb4_bin;4、准备测试表sysbench //基于mysql的驱

2021-04-18 15:48:19 328

原创 mysql count 浅析

上次打了慢sql日志,发现有很多包含count逻辑的sql,周末抽空来梳理下mysql里的count。一. count(*)的实现与执行在mysql中,不同的存储引擎,count(*)的实现方式是不同的Myisam:Myisam会把表的行数存在磁盘上,每当执行count(*)的时候,直接返回就行了,所以速度非常快。Innodb:Innodb执行count(*)的时候,需要一条一条把数据从存储引擎里读出来,然后累计计数。既然myisam的count这么快,为什么innodb不能基于myisa

2021-04-11 22:03:49 365

原创 五百万数据 mysql count(*)优化

一、故事背景有一张 500w 左右的表做 select count(*) 速度特别慢。二、原 SQL 分析Server version: 5.7.24-log MySQL Community Server (GPL)SQL 如下,仅仅就是统计 api_runtime_log 这张表的行数,一条简单的不能再简单的 SQL:select count(*) from api_runtime_log;我们先去运行一下这条 SQL,可以看到确实运行很慢,要 40 多秒左右,确实很不正常~mysql

2021-04-11 18:46:40 6424 2

原创 openjdk 11 jmap 取消了 -heap 参数

openjdk 11 jmap工具取消了 -heap 参数,该 jmap 命令行工具打印内存相关统计运行中的VM或核心文件。对于核心文件,请使用 jhsdb jmap。$ jhsdb jmap --heap --pid 29620Attaching to process ID 29620, please wait...Debugger attached successfully.Server compiler detected.JVM version is 11.0.5+10-LTSusing

2021-01-26 21:17:56 2945

原创 feign自定义请求拦截器、编码器、解码器

feign自定义header,请求体,返回体,feign拦截器,编码器,解码器。feign返回的不是json格式。feign请求格式不是json。

2020-10-17 15:53:05 7229

原创 Idea使用eclipseCodeFormatter插件报错Invalid byte 1 of 1-byte UTF-8 sequence

在该插件 github isssus中找到了解决办法,参考以下isssus:*.java failed to format with Eclipse Code Formatter. Invalid byte 1 of 1-byte UTF-8 sequence.failed to format with Eclipse Code Formatter. Invalid byte 1 of 1-byte UTF-8 sequenceisssus 215 中给出了一个 EclipseFormatter.

2020-10-16 16:28:50 871

转载 java 泛型 PECS准则

  我们知道<?>表示:我想使用Java泛型来编写代码,而不是用原生类型;但是在当前这种情况下,我并不能确定下泛型参数的具体类型,因此用?表示任何某种类型。因此,根据我们对通配符的了解,使用无界通配符的泛型类不能够写数据,而在读取数据时,所赋值的引用也只能是 Object 类型。那么,我们究竟如何向泛型类写入、读取数据呢?  《Effective Java2》给出了答案。 PECS: producer(读取)-extends, consumer(写入)-super。换句话说,如果输入参数表示一

2020-09-19 20:27:12 431

转载 java对象作为方法参数传递到一个方法后,对象内容是否发生改变的相关分析

java方法接收一个对象,修改该对象是否影响调用方

2020-09-03 19:24:33 5526

原创 jdk8默认垃圾收集器 UseParallelGC

jdk8默认垃圾收集器 UseParallelGC

2020-08-23 20:46:31 2121

转载 Java8—HashMap之tableSizeFor()

Java8—HashMap之tableSizeFor()

2020-08-17 12:08:58 718

转载 Spring AOP 之 理论篇

spring aop,理论基础,spring aop是什么

2020-08-12 20:01:58 485

原创 idea切换jdk版本,用来查看不同版本源码,简单方法

idea切换jdk版本,查看源码

2020-08-05 16:10:49 2246

原创 并发编程问题频发的原因

并发编程问题频发的原因

2020-07-30 14:34:32 635

原创 synchronized原理和偏向锁、轻量级锁、重量级锁的升级过程

synchronized原理,偏向锁,轻量级锁,重量级锁,锁升级

2020-07-29 15:33:30 2170 3

转载 mysql 慢查询日志的Query_time、Lock_time

mysql 慢查询日志的Query_time、Lock_time

2020-07-25 11:53:59 2909

原创 mysql的bin log、redo log、undo log 详解

mysql bin log、redo log、undo log的作用

2020-07-23 14:24:08 831

原创 mysql为什么对字段使用函数就不能走索引

mysql为什么对字段使用函数就不能走索引,mysql使用函数后不走索引

2020-07-15 16:01:16 7562 13

原创 mysql count(1) count(*) count(字段) count(主键id)区别

mysql count(1) count(*) count(字段) count(主键id)区别

2020-07-15 10:07:17 1138

原创 mysql性能抖动原因

之前文章介绍了 WAL 机制。现在你知道了,InnoDB 在处理更新语句的时候,只做了写日志这一个磁盘操作。这个日志叫作 redo log(重做日志)。当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”。平时执行很快的更新操作,其实就是在写内存和日志,而 MySQL 偶尔“抖”一下的那个瞬间,可能就是在刷脏页(flush)。什么情况会引发数据库的 flush 过程呢?InnoDB 的 redo log 写满

2020-07-14 10:45:25 1368

原创 mysql字符串前缀索引

mysql字符串前缀索引

2020-07-13 16:57:54 2095

原创 mysql为什么会选错索引

mysql为什么会选错索引

2020-07-13 16:56:21 574

原创 普通索引和唯一索引的区别

mysql普通索引,唯一索引

2020-07-13 10:17:38 944

原创 快照在mvcc中如何工作

讲事务隔离级别的时候提到过(mysql事物隔离级别),如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。和你分享行锁的时候又提到(mysql行锁),一个事务要更新一行,如果刚好有另外一个事务拥有这一行的行锁,它又不能这么超然了,会被锁住,进入等待状态。问题是,既然进入了等待状态,那么等到这个事务自己获取到行锁要更

2020-07-06 09:32:53 1916

原创 mysql全局锁,表锁,行锁

根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。全局锁加全局读锁的命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。FTWRL 前有读写的话 ,FTWRL 都会等待 读写执行完毕后才执行FTWRL 执行的时候要刷脏页的数据到磁盘,因为要保持数据的一致性 ,理解的执行FT

2020-07-05 14:45:30 670 2

原创 mysql主键索引、非主键索引、联合索引、覆盖索引、最左匹配、索引下推

mysql主键索引、非主键索引、联合索引、覆盖索引、最左匹配、索引下推

2020-07-01 22:36:33 1616 1

原创 mysql事物隔离级别

mysql事物隔离级别

2020-07-01 10:24:50 1026

原创 mysql的redo log和bin log

mysql bin log redo log

2020-06-30 19:45:49 766

原创 grant之后为什么要flush privileges

grant之后为什么要flush privileges

2020-06-28 17:04:01 944

原创 mysql基本架构及select语句执行过程(笔记)

MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory

2020-06-28 16:12:28 732

转载 【踩坑总结】java8中stream的findAny踩坑

java8中stream的findAny踩坑需求:寻找list中符合要求的对象通过findAny去实现A a = bList().stream().filter(b -> "test".equals(b.getName())).findAny().get();结果后面发现这个方法并不是找得到就返回,找不到就不做处理,而是找不到直接抛异常了。于是后面改用了这种方式A a =bLi...

2020-05-08 15:18:49 1981

原创 逃逸分析、栈上分配、标量替换

逃逸分析、栈上分配、标量替换

2020-04-10 07:20:47 888

原创 什么是即时编译

什么是即时编译

2020-04-09 14:08:50 4094

原创 JVM 运行时数据区

JVM 运行时数据区,程序计数器,虚拟机栈,堆,方法区

2020-04-07 21:57:53 219

转载 Java一个16进制字符占多少个字节

一个16进制占多少个字节,1个字节占多少个16进制位

2020-04-03 10:32:21 2790

原创 git 复习笔记

2020-04-02 11:56:30 597

原创 spring - resources 体系

spring resources 体系

2020-03-31 12:46:51 457 1

SpringContextUtils

java工具类, 用于不方便注入的地方获取spring bean. 根据名称,类型,注解.

2018-12-27

空空如也

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

TA关注的人

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