自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java线程池的执行流程和拒绝策略

pool的拒绝策略

2023-01-29 14:13:48 587

原创 Content-Length的作用

Content-Length

2022-11-23 08:55:28 2367

原创 请求和响应格式

请求和响应格式

2022-11-23 08:52:34 1224

原创 java对象访问定位的方式

Java对象访问方式

2022-06-29 15:11:00 364

原创 java对象内存分配的俩种方式

java对象内存分配

2022-06-29 14:50:56 725

原创 cpu的介绍

计算机系统知识基础(一)计算机系统是由硬件和软件组成的计算机的基本硬件系统由以下5大部件组成: 1. 运算器 2. 控制器 3. 存储器 4. 输入设备 5. 输出设备中央处理单元 (CPU)运算器、控制器等部件被集成在一起统称为中央处理单元,也就是我们常说的CPU 。CPU是硬件系统的核心,它负责获取程序指令、对指令进行译码并加以执行。用于数据的加工处理,能完成算数运算、逻辑运算及控制功能1. CPU的功能(1) 程序控制:也就是指令控制,CPU按照程序的安排来执行指令,保证程序指

2022-04-22 23:10:52 3583

原创 服务发现和注册的底层实现

1.服务注册和发现的原理EurekaServer启动的时候注册自己的IP端口服务名称等信息EurekaClient作为java客户端,在服务启动后周期性的(默认30s)向EurekaServer发送心跳EurekaServer在一定时间(默认90s)没有收到某个服务的心跳就会注销该实例,EurekaClient发送canel命令后也会注销该实例EurekaServer之间会相互复制注册表信息EurekaClient会缓存注册表信息服务注册与发现比如现在我们有一个服务消费者 服务A,和两个节点的

2022-04-16 22:42:06 551 1

原创 jvm栈帧介绍

栈帧定义:当线程执行到某个方法时就会往方线程栈中压入一个帧,称为栈帧,栈帧中包含了方法的局部变量表、操作数栈、返回地址、动态连接等信息局部变量表:顾名思义就是用来存储java方法中的局部变量的,在编译期间就会分配方法局部变量表的最大容量,局部变量表以变量槽为单位,每个变量槽可以存储32位及32位以下的变量,具体大小根据变量实际占用内存而定,java的基本类型中除了long和double外其他类型都是32位以下,所以每个变量占用一个变量槽即可,而对于long和double类的变量,会占用两个变量槽,除了基

2022-04-11 23:42:04 1345

原创 mysql的数据加载到内存的机制

Mysql 中数据是要落盘的,这点大家都知道。读写磁盘速度是很慢的,尤其和内存比起来更是没的说。但是,我们平时在执行 SQL 时,无论写操作还是读操作都能很快得到结果,并没有预想中的那么慢。可能你会说我有索引啊,有索引当然快了。但是铁子,索引文件也是存储在磁盘上的,查找过程会产生磁盘 I/O。如果同时对某行数据进行多次操作,那岂不是要重复产生很多次磁盘 IO 吗?可能你想到了,那我把数据存在内存里不就可以了吗?内存速度比磁盘快,这准没毛病。没错,那该怎么存呢? 这就是我们今天所要讲的主题——缓冲池(b.

2022-03-29 11:02:29 5055

原创 mysql的缓存机制

1.查询缓存Query Cache查询sql : SHOW variables LIKE ‘query%’;查询缓存不仅将查询语句缓存起来,还将查询结果缓存起来。查询缓存最忌讳修改,因为它会使mysql的查询缓存失效。在这里插入图片描述have_query_cache:是否支持查询缓存query_cache_limit:如果某条查询语句的查询结果超过了这个结果集,那么将不会添加到查询缓存。query_cache_min_res_unit:查询缓存是以块为单位申请内存空间,过大会多出分配,过小

2022-03-04 14:37:11 1027

原创 1093 - You can‘t specify target table ‘driver_container_relation‘ for update in FROM clause问题解释

update语句中包含的子查询的表和update的表为同一张表时,报错:1093-You can’t specify target table for update in FROM clausemysql不允许update目标表和子查询里面的表为同一张表示例:delete from driver_container_relation where id in (select dcr.idfrom driver_container_relation as dcr left join drive

2022-03-01 12:37:36 315

原创 mysql的死锁问题介绍和示例

mysql的锁介绍. 共享锁和排它锁MySQL的锁系统:shared lock和exclusive lock(共享锁和排他锁,也叫读锁和写锁,即read lock和write lock)读锁是共享的,或者说是相互不阻塞的写锁是排他的,一个写锁会阻塞其他的写锁和读锁在实际的数据库系统中,每时每刻都发生锁定,当某个用户在修改某部分数据时,mysql会通过锁定阻止其他用户对同一数据的读取共享锁【S锁】又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,.

2022-02-23 12:15:28 180

原创 JVM的mixed mode介绍

java -version 查看java的版本信息java -X 查看java的非标准化参数其实这里的mixed mode就是指JVM的工作模式是混合模式,混合模式是JVM的默认工作模式,即JVM同时使用解释模式和编译模式。对于字节码中多次被调用的部分,JVM会将其编译成本地代码以提高执行效率;而被调用很少(甚至只有一次)的方法在解释模式下执行,从而减少编译和优化成本。JIT编译器在运行时会创建方法使用文件,然后一步一步的优化每一个方法,有时候会主动的优化应用的行为。这些优化技术,比如积极的分支预.

2022-02-15 16:31:40 1483

原创 查看java默认的垃圾收集器

命令java -XX:+PrintCommandLineFlags -version针对上述的-XX:UseParallelGC,这边我们引用《深入理解Java虚拟机:JVM高级特性与最佳实践》的介绍:

2022-02-10 11:41:04 394

原创 mac 下安装ES 与 Head插件 以及安装Kibana

一.安装Elasticsearch在Mac上可以使用brew快速安装Elasticsearch1 brew install elasticsearch安装完成后可使用elasticsearch --version查看ES版本信息二.启动ES直接输入elasticsearch后点击回车键1 elasticsearch启动成功后,ES的默认端口是9200,可在浏览器中看到ES的基本信息三.安装KibanaKibana是ES的一个配套工具,让用户在网页中可以直接与ES进行交互。安装命令:

2022-02-09 13:58:09 834

原创 k8s线上问题解决

问题1解决方法 fsck -y /dev/rdb24(修复对应的磁盘文件)

2022-01-06 17:47:06 346

原创 spring的一些常用接口

SmartLifecycle 接口说明:Spring 的IOC是我们最常用到的功能,能帮我们管理bean。但是我们有时需要在bean全部加载和初始化完毕之后,再做一些事情。这个接口就可以满足我们的需求。SmartLifecycle 是一个接口。当Spring容器加载所有bean并完成初始化之后,会接着回调实现该接口的类中对应的方法(start()方法)。Configurationpublic class DriverManageConfig implements SmartLifecycle {.

2021-12-27 16:52:35 807

原创 mysql的相关子查询和不相关子查询

概念介绍嵌套在其他查询中的查询即子查询,子查询也叫内部查询。子查询中有相关子查询和不相关子查询:相关子查询是指查询结果依赖于外部查询的子查询,外部查询每执行一次,内部子查询也会执行一次;而不相关子查询是指独立于外部查询的子查询,内部子查询仅执行一次,执行完毕后将查询结果作为外部查询的条件使用。实验字段介绍id:自增唯一标识sal:薪资depto: 部门编号需求描述查询每个部门中工资最高的全部信息#不相关子查询的写法select * from emp where sal in (SEL

2021-12-02 17:11:59 1928

原创 jvm的内存模型和java的内存模型

JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的。通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关,本文针对这两个总是被混用的概念展开讲解。JVM内存结构JVM构成说到JVM内存结构,就不会只是说内存结构的5个分区,而是会延展到整个JVM相关的问题,所以先了解下JVM的构成。Java源代码编译成Java Class文件后通过类加载器ClassLoader加载到JVM中

2021-11-29 22:04:42 775

原创 数据库的三大范式

数据库三大范式• 什么是范式(NF= NormalForm)范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。各范式特点:第一范式:保证列的原子性,保证列不可再分。第二范式:唯一性 ;一个表只说明一个事物;有主键且非主键依赖主键;(限制多对多的关系,建立一个关联表,通过外键和联合主键来关联两张表)第三范式:每列都与主键有直接关系,不存在传递依赖;(限制一对多的关系,在从表中建立一个外键,通过外键来引用主表的信息)PS:第二范式要遵循第一范式,第三范式要遵

2021-11-26 11:39:40 1802

原创 ThreadLocal的原理解析

**1. 弱引用知识的复习**Java中的弱引用具体指的是java.lang.ref.WeakReference类,我们首先来看一下官方文档对它做的说明:弱引用对象的存在不会阻止它所指向的对象变被垃圾回收器回收。弱引用最常见的用途是实现规范映射(canonicalizingmappings,比如哈希表)。假设垃圾收集器在某个时间点决定一个对象是弱可达的(weaklyreachable)(也就是说当前指向它的全都是弱引用),这时垃圾收集器会清除所有指向该对象的弱引用,然后垃圾收集器会把这个弱可

2021-11-23 23:40:59 149

原创 docker镜像制作的原理解析

在讲解镜像原理之前首先了解以下知识:Linux文件系统由bootfs和rootfs两部分组成 bootfs:包含bootloader(引导加载程序)和 kernel(内核) rootfs: root文件系统,包含的就是典型 Linux 系统中的/dev,/proc,/bin,/etc等标准目录和文件 不同的linux发行版,bootfs 基本一样,而rootfs不同,如ubuntu,centos等。Docker镜像原理Docker镜像是由特殊的文件系统叠加而成最

2021-11-23 11:15:08 1200

原创 mysql执行查询的流程

流程图如下1. 客户端发送一个查询到mysql服务器2. 服务器查询缓存,如何缓存命中,直接返回查询结果,否则执行后续操作3. mysql的服务器进行sql的解析,预处理,再由优化器生成对应的执行计划4. mysql根据优化器生成的执行计划,调用存储引擎的api执行查询、5. 返回对应的查询结果...

2021-11-11 11:42:17 1105

原创 mysql的隔离级别以及事务的传播性,spring中事务失效的场景

1. 隔离级别的介绍补充说明mysql的默认的隔离级别,可重复读是无法解决幻读的问题,mysql的幻读通过mvcc的方式解决的2. mvcc的介绍3.事务的传播性Spring它对JDBC的隔离级别作出了补充和扩展,其提供了7种事务传播行为。3.1、PROPAGATION_REQUIRED:默认事务类型,如果没有,就新建一个事务;如果有,就加入当前事务。适合绝大多数情况。3.2、PROPAGATION_REQUIRES_NEW:如果没有,就新建一个事务;如果有,就将当前事务挂起。3.3、

2021-11-09 15:59:27 308

原创 jdk8提供的流式编程

什么是函数式接口只有一个抽象方法的接口2.Lambda表达式的学习lambda表达式支持将代码块作为方法参数,lambda表达式允许使用更简单的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例如下代码示例,完整的描述了一个lambda表达式的简化过程 package lambdaTest;import java.util.Arrays;import java.util.Collection;import java.util.HashSet;import java.u.

2021-10-28 17:28:37 307

原创 Eureka和zookeeper的区别

1 CAP理论C:consistency强一致性A:availability可用性P:partition tolerance分区容错性CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性、可用性、分区容错性这三个需求。因此,根据CAP原理将NoSql数据库分成了满足CA原则、CP原则、AP原则三大类。CA:单点集群,满足一致性、可用性的系统,通常在可扩展性上不太强大。CP:满足一致性、分区容错性的系统,通常性能不是特别的高。AP:满足可用性、分区容错性的系统,通常可能对一致性要求会低一

2021-10-26 23:13:05 924

原创 验证sleep,wait以及yield的区别

sleepsleep 方法是属于 Thread 类中的,sleep 过程中线程不会释放锁,只会阻塞线程,让出cpu给其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态,可中断,sleep 给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会示例代码package ThreadTest;/** * @Classname ThreadSleepTest * @Description TODO * @Date 2021/10/26 16:47 * @

2021-10-26 17:29:12 107

原创 springmvc的常用参数绑定标签

application/x-www-form-urlencoded与application/json介绍1.application/x-www-form-urlencoded在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。 下边是说明: application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。 multipart/form-data: 窗体数据被编码为一条消息,页

2021-10-15 17:05:56 368

原创 磁盘预读以及缓存行

磁盘预读介绍(内存和磁盘之间的交互的方式)内存比磁盘的读写速度要快很多,但内存容量要远小于磁盘,数据,程序的执行要调入内存后才能执行,所以内存和磁盘要经常进行I/O操作,I/O操作是个费事的过程,虽然现代系统已经有了通道(I/O处理机)技术的支持,但这还不够上面是两张磁盘的示意图 ,扇区为磁盘的最小存储单元,当需要从磁盘读取数据时,系统会将逻辑地址发给磁盘,磁盘的控制电路将逻辑地址转换为物理地址(哪个磁道,哪个扇区)这时候就会有磁头的机械运动,磁头找到相应磁道–寻道,时间成为寻道时间,磁头找到对应磁

2021-09-07 14:43:41 944

原创 JAVA中 try - finally中都存在return的效果

如下是运行的结果public class TryTest { public static void main(String[] args) { System.out.println(returnNum()); } public static Integer returnNum(){ try{ return 2; }finally { return 3; } }

2021-07-14 09:52:47 150

原创 Integer只有在 -128到127之间使用==比较相等的源码解析

****代码验证,结论如图,推荐使用equals比较Integer的大小****** public class IntegerTest { public static void main(String[] args) { Integer a1 = new Integer(12); Integer a2 = new Integer(12); Integer b1 = -129; Integer b2 = -129; Integer c1 = 128; Integer c2 = -128; Integer d1

2021-07-07 15:48:51 206

原创 验证mysql的InnoDB引擎的行锁和表锁

基础知识set autocommit=0; # 关闭自动提交commit; 提交事务for UPDATE 手工加锁实验验证1. innodb 的行锁是在有索引的情况下,没有索引的表是锁定全表的.如下图所示 ROLE_NAME 这个字段没有索引,开启事务后,执行了查询语句,没有提交事务,锁住全表,导致第二条更新语句无法执行,当我commit以后,第二条语句立马执行成功,验证没有索引的情况下锁住全表当给ROLE_NAME加上索引后,查询ROLE_NAME="Redis监控员"的人员,更新ROLE_

2021-07-07 14:35:36 550

原创 mysql组合索引优化解释

优化点描述建组合索引的时候,区分度最高的在最左边。正例:如果 where a=? and b=? ,a 列的几乎接近于唯一值,那么只需要单建 idx_a 索引即可。说明:存在非等号和等号混合判断条件时,在建索引时,请把等号条件的列前置。如:where a>? and b=? 那么即使 a 的区分度更高,也必须把 b 放在索引的最前列一、联合索引的查找方式(解释where a>? and b=? 那么即使 a 的区分度更高,也必须把 b 放在索引的最前列 的原因)**当我们的SQL语言可以

2021-07-07 13:33:01 327

原创 synchronized锁升级的验证

**synchronized锁升级的验证**对象的内存格式对象头(Object Header)在64位JVM上有一个压缩指针选项-XX:+UseCompressedOops,默认是开启的。开启之后 Class Pointer 部分就会压缩为4字节,对象头大小为 12 字节对象头Mark Word: 1. 默认存储对象的HashCode,分代年龄和锁标志位信息。这些信息都是与对象自身定义无关的数据,所以Mark Word被设计成一个非固定的数据结构以便在极 小的空间内存存

2021-07-06 16:01:31 163

原创 js原生的异步请求的用法

var xmlhttp;function loadXMLDoc(url){xmlhttp=null;//判断是否支持XMLHttpRequest,IE6,IE7支持ActiveXObject对象if (window.XMLHttpRequest){// code for all new browsersxmlhttp=new XMLHttpRequest();}else if (...

2019-01-25 11:08:05 677

原创 spring中进阶编程常用的几个类

package com.init;import com.zhiwee.gree.model.goods.GoodsInfo;import com.zhiwee.gree.service.goods.GoodsInfoService;import org.springframework.beans.BeansException;import org.springframework.beans...

2019-01-18 14:09:43 1154

原创 mybatis拦截器的设计思想

mybatis拦截器的设计思想(分页的使用)//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.github.pagehelper;import com.github.pagehelper.cache.Cache;...

2019-01-18 13:54:32 284

空空如也

空空如也

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

TA关注的人

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