杜少雄的博客

一只向上爬的蜗牛🐌,对一切前沿知识保持充分的好奇。

2021.10.04

如何避免索引失效

文章首发于GitHub开源项目: Java成长之路 欢迎大家star! 案例演示 建表及初始化数据 CREATE TABLE staffs ( id INT PRIMARY KEY AUTO_INCREMENT, ...
2021.10.04

MySQL性能分析和索引优化

性能分析 文章首发于GitHub开源项目: Java成长之路 欢迎大家star! MySQL常见瓶颈 CPU SQL中对大量数据进行比较、关联、排序、分组 IO 实例内存满足不了缓存数据或排序等需要,导致产生大量 物理 IO。 数据重...
2021.10.03

MySQL之索引优化之路

索引 文章已同步至GitHub开源项目: Java超神之路 概念 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 ​ 可以理解为:排好序的快速查找的数据结构 数据本身之外,数据库还维护着...
2021.09.11

ArrayList详解

ArrayList 简介 ArrayList 是一个数组列表。它的主要底层实现是Object数组,但与 Java 中的数组相比,它的容量能动态变化,可看作是一个动态数组结构。特别注意的是,当我们装载的是基本类型的数据 int,long,bo...
2021.09.11

HashMap详解

HashMap一直是面试的重点。今天我们来了解了解它的源码吧! 首先看一下Map的继承结构图 源码分析 什么是哈希 **Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输...
2021.08.20

推荐一个 Spring Boot + MyBatis + Vue 音乐网站

分享好玩的项目,挖掘开源的价值! 今天推荐一个音乐网站项目,前端技术栈基于 Vue.js 开发前台后台,后端基于Spring Boot + MyBatis ,数据库使用的是 MySQL。 该系统包含音乐网站基本功能:音乐播放、用户管理、歌...
2021.08.13

分享一些东西

一、前言 1、遇到的问题 2、总结 分享给大家 二、学习方法 不会写代码 1、不要照抄(helloworld) 分析思路 注释 自己写 坚持 提升 2、编程思想 3、结论验证法 3.1、反证法 否定置否定 3.2、加深理解 ...
2021.08.12

Nginx原理解析

文章已同步至GitHub开源项目: Java超神之路 master和worker 当linux启动的时候,会有两个和nginx相关的进程,一个是master,一个是worker。 master如何工作 当客户端发送请求到...
2021.08.07

《春天》

我把春天埋进土里 希望秋天能结出一树春天 秋天到了 树叶落尽 我问我的春天呢? 秋天说,你亲手将它埋葬 那时你怎不觉得荒唐?
2021.08.07

《程序员》

早上八点醒来,又是阴天,云朵好懒啊,不涂防晒,变成乌云,最后委屈的哭了出来。 冒着雨来到公司,终于准点打卡,记得初恋总是埋怨我约会迟到,可能被偏爱的人才会有恃无恐,后来我终于学会了准时,却永远错过了17岁时年少的喜欢。 看着早晨站会的同事们...
2021.08.05

Nginx有哪些功能?

文章已同步至GitHub开源项目: Java超神之路 Nginx的概念 ​ Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能 力强,事实上 nginx 的并发...
2021.08.04

详解Java内存模型

文章已同步至GitHub开源项目: JVM底层原理解析 Java内存模型 ​ JVM虚拟机规范中曾经试图定义一种Java内存模型,来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都可以达到一致性的内存访问效果。...
2021.08.04

JVM-类加载子系统

类加载子系统 文章已同步至GitHub开源项目: JVM底层解析 一。类加载子系统 代码编译的结果从本地机器指令码转化为字节码,是存储格式发展的一小步,但却是编程语言发展的一大步 ​ ...
2021.08.04

从JVM角度解析Java是如何保证线程安全的

文章已同步至GitHub开源项目: JVM底层原理解析 从JVM角度解析Java是如何保证线程安全的 线程安全 ​ 当多个线程同时访问一个对象,如果不用考虑这些线程在运行环境下的调度和交替执行,也不需要考虑额外的同步,或者在调用方法时进...
2021.08.04

Java的JVM是如何实现多线程的?

Java线程模型 文章已同步至GitHub开源项目: Java超神之路 ​ 并发不一定都要用到线程,比如PHP中用到的是多进程。但是在Java中并发基本上都是使用线程来实现的。我们先来看看线程在Java虚拟机中是如何实现的。 线程的实现...
2021.07.31

JVM-执行引擎

1、执行引擎概述 执行引擎是Java虚拟机的核心组成部分之一。 虚拟机是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而==虚拟机的执行引擎则是...
2021.07.21

JVM-对象的实例化内存布局与访问定位+直接内存

一、对象的实例化 1、创建对象的方式 new 最常见的方式 变形1 : Xxx的静态方法 变形2 : XxBuilder/XxoxFactory的静态方法 Class的newInstance():反射的方式,只能调用空参的构造器,...
2021.07.17

JVM-运行时数据区-本地方法栈

一、本地方法栈在运行时数据区中的位置 二、定义 Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态拓展的内存大小。(在内存溢出方面是相同的) 如果...
2021.07.17

JVM-运行时数据区-字符串常量池

一、字符串的基本特性 String:字符串,使用一对""来表示。 String sl = "hello";//字面量的定义方式 在字符串常量池中 String s2 = new String(&q...
2021.07.13

JVM-运行时数据区-方法区

一、栈,堆,方法区的交互关系 1、运行时数据区结构图 2、堆、栈、方法区的交互关系 3、方法区在jdk7及jdk8的落地实现 方法区是一种规范 JDK1.7及之前,用==永久代==实现,使用虚拟机的内存 JDK1.8及以后,用==元...
Powered by Gridea

版权所有 @ 2021 杜少雄 保留所有权利
晋ICP备2020012997号-2

勉强运行 :