S
ShaoxiongDu'blog

技术

抛弃世俗之浮躁,留我钻研之刻苦。
2022.02.19

Centos7安装Docker

0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 stable test 和 nightly...
2022.02.19

Docker实用记录

Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。 在数百上千...
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.12

Nginx原理解析

文章已同步至GitHub开源项目: Java超神之路 master和worker 当linux启动的时候,会有两个和nginx相关的进程,一个是master,一个是worker。 master如何工作 当客户端发送请求到...
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及以后,用==元...
2021.07.12

JVM-运行时数据区-程序计数器

一、概念 JVM中的程序计数寄存器(Program Counter Register),Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器是对屋里PC寄存器的...
2021.07.09

JVM-运行时数据区-堆

一、堆的核心概述 一个进程对应一个jvm实例,同时包含多个线程,这些==线程共享方法区和堆==,每个==线程独有程序计数器、本地方法栈和虚拟机栈==。 一个jvm实例只存在一个堆内存,堆也是java内存管理的核心区域 Java堆区在...
2021.06.17

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

一、在JVM中的位置 二、定义 简单来讲,一个Native Method就是一个java调用非java代码的接口,一个Native Method 是这样一个java方法:该方法的实现由非Java语言实现,比如C。这个特征并非java特有,...
2021.03.11

JVM-运行时数据区

一、内存 内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了JAVA在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的jvm对于内存的划分方式和管理机...
2021.02.07

JVM-运行时数据区-虚拟机栈

一、虚拟机栈概述 1、背景 由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 2、内存中的堆与...
Powered by Gridea

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

勉强运行 :