07 2021 档案

摘要:相信大家都知道,有23种代理模式,其中用得比较多的或者是面试中估计问的最多的就是动态代理,但是我们知道,动态代理,静态代理都只是23种设计模式中的代理模式。好了,话不多说,直接上干货。 代理模式 1、动态代理 先创建接口: /** * 功能描述 * * @author yaoqihui * @ver 阅读全文
posted @ 2021-07-30 18:05 QH.Thomas 阅读(92) 评论(0) 推荐(0) 编辑
摘要:总结一下,之前的一个项目需要做限流:秒杀商品的接口。 其他一些博客有很多文章介绍用谷歌的插件:guaue(针对于单机的),如果是微服务的话推荐使用:senilxxxxx啥来的。具体有些忘记了。 这篇文章分享的内容是用redis+自定义注解+拦截器是实现限流(相对简单的一种) 废话不多说:首先reid 阅读全文
posted @ 2021-07-30 16:25 QH.Thomas 阅读(553) 评论(0) 推荐(0) 编辑
摘要:我们知道:jvm的内存存储以及内存分配,主要集中在方法区、堆。针对这两块,给出的调优参数如下: 一:调优参数初始化堆大小(有的叫jvm内存): -Xms256M //256M指的是具体大小,初始化堆大小=最大堆大小,可以在一定程度上在GC后重新分配内存 最大堆大小(有的叫jvm内存): -Xmx25 阅读全文
posted @ 2021-07-29 11:30 QH.Thomas 阅读(1845) 评论(0) 推荐(0) 编辑
摘要:网上一大堆只给我出一个spring的周期流程图,我觉得这并不是个人理解,如果加入个人理解,并且配上源代码,那么会更好的理解。不多说,下面直接上干货。 先给出自己理解的spring流程: 1、实例化bean 2、设置对象属性 3、初始化 4、使用和销 实例化:第 1 步,实例化一个 bean 对象; 阅读全文
posted @ 2021-07-25 11:51 QH.Thomas 阅读(134) 评论(0) 推荐(0) 编辑
摘要:今天这篇文章了解的是存储信息有哪些,当然,后面还会总结更多 1、存储的信息:类型信息、常量、静态变量、JIT代码缓存、域信息、方法信息。 1.1、类型信息包括如下:类(class)、接口interface、枚举enum、注解 1.1.1、这个类型的完整有效名称(全名=报名,类名) 1.1.2、这个类 阅读全文
posted @ 2021-07-23 10:25 QH.Thomas 阅读(63) 评论(0) 推荐(0) 编辑
摘要:今天给大家分享一个干活:linux系统CPU占用率高如何排查?以及如何定位哪一行代码导致的 1:在linux系统上输入命令:top 2:找到CUP占用率高的线程id:PID=7163,然后使用:top -Hp pid(进程id)查看这个进程有哪些线程是是占用率比较高的 3:将这个PID转换为16进制 阅读全文
posted @ 2021-07-22 15:48 QH.Thomas 阅读(621) 评论(0) 推荐(1) 编辑
摘要:这段时间趁着工作不忙,一起来回顾一下Mybatis+mysql的一些底层东西 一、mysql 1:mysql锁有哪些? 》共享锁(读锁)和排他锁(写锁) 1):共享锁(通过 lock in share model实现) 共享锁又叫读锁,也就是执行一条查询sql语句的时候实现的,一旦共享锁,此时查询的 阅读全文
posted @ 2021-07-18 00:04 QH.Thomas 阅读(519) 评论(0) 推荐(0) 编辑
摘要:1:到目前为止,有10中垃圾回收器 图一 在讲解这些垃圾回收器前,我们先回顾一下这张图(虚拟机总内存模型图) 图二 GC是发生在运行时数据区--堆,方法区(元空间) 我们一起看看堆的内存结构:包括两个大的内存:年轻代,老年代。而年轻代分为伊甸园区,幸存区(有的叫法是存活区) 年轻代内存占堆内存:1/ 阅读全文
posted @ 2021-07-13 00:04 QH.Thomas 阅读(101) 评论(0) 推荐(0) 编辑
摘要:截图颜色说明: 灰色:可存活对象 蓝色:未使用内存 黑色:可回收垃圾 1:标记清除法:(缺点:产生内存碎片) 2:复制算法: 缺点:1:没有碎片,浪费空间 3:标记整理 缺点:没有碎片,浪费时间(类似是标记清除法+复制算法) 阅读全文
posted @ 2021-07-12 22:28 QH.Thomas 阅读(54) 评论(0) 推荐(0) 编辑
摘要:1:引用计数器算法:(目前不是jdk的垃圾回收算法) 如图: 计数器算法缺点:(两个对象互相引用,垃圾无法回收) 2:可达性分析算法(GC Root) 概念:将"GC Roots" 对象作为起点,从这些节点向下搜索引用的对象,找到对象都标记为非垃圾对象,其余未标记的对象都是垃圾对象GC Roots根 阅读全文
posted @ 2021-07-12 22:08 QH.Thomas 阅读(75) 评论(0) 推荐(0) 编辑
摘要:虚拟机栈的内部结构里的方法返回地址,只要作用: 存放调用该方法的PC寄存器的值,如下图举例: 1:当程序将 方法A执行,在方法A里面调用 方法B, 2:当方法B执行完的时候,程序会return,也即告诉程序方法B已经执行完了 3:PC寄存器保存的是下一行代码要执行的地址,而刚刚方法B的执行,必定会将 阅读全文
posted @ 2021-07-11 23:37 QH.Thomas 阅读(440) 评论(0) 推荐(0) 编辑
摘要:定义: 1:局部变量表也被称之为局部变量数组或者本地变量表 2:定义为一个数字数据,主要用于存储方法参数喝定义在方法体内的局部变量,这些数据类型包括各类基本数据类型、对象引用,以及方法返回地址(return address)类型 3:局部变量表是线程上的栈上,是线程私有的数据,因此不会存在数据安全问 阅读全文
posted @ 2021-07-11 23:17 QH.Thomas 阅读(142) 评论(0) 推荐(0) 编辑
摘要:1:JVM虚拟机栈是什么? java虚拟机栈(java virtual machine stack) ,早期也叫java栈,每个线程在创建是都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Frame),对应这一次次的java方法调用。 2:生命周期:生命周期和线程一致 3:作用: 主管ja 阅读全文
posted @ 2021-07-11 22:43 QH.Thomas 阅读(178) 评论(0) 推荐(0) 编辑
摘要:1:PC寄存器的介绍 它是一块很小的内存空间,几乎可以忽略不计,也是运行速度最快的存储区域 在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致 2:PC寄存器的作用:(记录代码执行的下一个地址) 任何时间,一个线程都只有一个方法在执行,也就是所谓的当前方法 阅读全文
posted @ 2021-07-11 19:43 QH.Thomas 阅读(135) 评论(0) 推荐(0) 编辑
摘要:我们直接上图: 阅读全文
posted @ 2021-07-11 19:24 QH.Thomas 阅读(22) 评论(0) 推荐(0) 编辑
摘要:上一篇:jvm的双亲委派机制 一 讲述了不能让程序加载java.lang.String 类 这一篇讲加载器(引导类加载器、扩展类加载器、系统类加载器是如何加载第三方jar包的类):举例说明加载jdbc的第三方jar包 我们说过,系统类加载器是jvm的默认加载器,不断委派上一个父类加载器 System 阅读全文
posted @ 2021-07-10 00:09 QH.Thomas 阅读(32) 评论(0) 推荐(0) 编辑
摘要:先上一段代码: main方法: package com.sailmalan.malan.controller; /** * 功能描述 原子操作 atomic类 java.util.concurrent.atomic * * @author yaoqihui * @version 2021/7/3 * 阅读全文
posted @ 2021-07-09 23:57 QH.Thomas 阅读(65) 评论(0) 推荐(0) 编辑
摘要:一:java冒泡排序 1:定义接口:Sorter public interface Sorter{ //list:待排序的数组 public <T extends Comparable<T> > void sort(T[ ] list); public <T> void sort(T [] list 阅读全文
posted @ 2021-07-09 23:20 QH.Thomas 阅读(190) 评论(0) 推荐(0) 编辑
摘要:一:引导器加载类的作用: 二:扩展类加载器: 三:系统类加载器: 阅读全文
posted @ 2021-07-09 23:18 QH.Thomas 阅读(206) 评论(0) 推荐(0) 编辑
摘要:本文章讨论:类装载子系统,涉及的加载过程如下: 1:加载阶段 2:链接阶段 3:初始化阶段 下面详细介绍该三个阶段: 一:加载阶段--loading 1:通过一个类的全限定名获取定义此类的二进制字节流 2:将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3:在内存中生成一个代表这个类的 阅读全文
posted @ 2021-07-09 22:26 QH.Thomas 阅读(49) 评论(0) 推荐(0) 编辑
摘要:我们先来看一下JVM的整体架构图: 该图就是JVM的整体架构图,现在来讲解一下每一个部分的功能是做什么的: 1:class file就是我们虚拟机编译出来的字节码文件,这里不详细说 2:类装载子系统: (后文会配上图文解说类加载子系统的各个阶段:加载阶段、链接阶段、初始化阶段--》传送门) 1).类 阅读全文
posted @ 2021-07-09 22:02 QH.Thomas 阅读(122) 评论(0) 推荐(0) 编辑
摘要:import java.util.Comparator; public class MyUtil { public static <T extends Comparable<T>> int binarySearch(T[] x, T key) { return binarySearch(x, 0, 阅读全文
posted @ 2021-07-08 11:07 QH.Thomas 阅读(100) 评论(0) 推荐(0) 编辑
摘要:因为第一次接触双数据源,所以记录学习一下 此处我链接mysql数据源、SQL Server数据源 pom.xml文件: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-d 阅读全文
posted @ 2021-07-08 11:02 QH.Thomas 阅读(1117) 评论(0) 推荐(0) 编辑
摘要:平常我们都会在vo实体类添加注解:如 @NotNull等注解,但是这些注解是java 自带的,所以很多时候并不满足我们的校验规则 这篇文章跟大家一起学习一下如何自定义注解:以自定义注解来校验手机号码的正确 有的人说:看完自定义注解的代码,还不如直接: if(!ValidatorUtil.isMobi 阅读全文
posted @ 2021-07-03 10:10 QH.Thomas 阅读(135) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示