- 博客(32)
- 收藏
- 关注
原创 MySQL架构体系设计解析(1) [不完整]
@TOC磁盘扇区 一个页是16K, 每一页最少存储两条数据, 如果有一跳数据太大了怎么办? --> 这个时候会使用溢出页来存储这个大数据, 然后页里面只用存储溢出页的地址即可, 溢出页是另外的连续几页大空间还能说啥呢lru链表前1/4 不进行交换,终于懂了B数和B+树十干嘛的了...
2021-11-27 15:10:19 412
原创 Nginx简介
Ngxin一. Ngxin是干嘛的二. 使用docker-compose安装Nginx2.1 安装2.2 Nginx的配置文件修改配置文件三. Nginx反向代理反向代理和正向代理基于Nginx实现反向代理关于Nginx的路径映射测试路径映射四. Nginx的负载均衡策略轮询权重ip_hash五. Nginx动静分离动态资源访问六. Nginx集群一. Ngxin是干嘛的由于现在的生产环境中, 由于一个对外的服务上线之后,需要部署的服务器往往不止一台, 这个时候就产生了如下的几个问题:代理问题
2021-11-21 21:54:19 1295
原创 记一次EasyExcel简单使用
文章目录一. EasyExcel简单介绍二. 使用方式简介pom文件读取excel文件示例一. EasyExcel简单介绍EasyExcel语雀官方文档EasyExce是阿里巴巴开源的一款excel文档处理工具类, 可以很方便的对excel文档进行处理二. 使用方式简介pom文件 <dependency> <groupId>com.alibaba</groupId> <artifactId&g
2021-10-28 15:02:06 356
原创 力扣算法(罗马数字转阿拉伯数字)
罗马数字转阿拉伯数字题目简介解答题目简介/** * 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 * * 字符 数值 * I 1 * V 5 * X 10 * L 50 * C 100 * D 500 * M 1000 * 例如, 罗马数字 2 写做 II ,即为两个并列的
2021-08-14 19:29:07 224
原创 力扣算法(数字反转)
数字反转题目简介题目简介/** * 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 * * 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 * * 假设环境不允许存储 64 位整数(有符号或无符号)。 * * 来源:力扣(LeetCode) * 链接:[]https://leetcode-cn.com/problems/reverse-integer * 著作权归领扣网络所有。商业转载请联系官方授权,非商业
2021-08-14 19:28:42 185
原创 Java 日志框架简介
Java日志框架简介一.Java日志框架历史总体概述二. JUL(Java Util Logging)简介JUL的日志级别简单的输出INFO日志的示例:输出各个级别的日志信息Logger的父子关系使用配置文件来控制日志的输出级别一.Java日志框架历史总体概述Java框架现在主要是分为两个大的日志门面: JCL、slf4j日志框架的实现主要是一下这几种 JUL(java原生自带)、logback()、log4j、log4j2历史及总体简介等我稍后了解完毕之后在进行编写,稍后再继续编写吧,先说
2021-08-12 15:12:33 179
原创 一道面试题(限流,幂等key)
一道面试题题目介绍题目介绍/**写一个银行系统的扣款HTTP接口,接口路径/bank/account/cost.json,入参为三个参数//用户账户String userAccount,//扣款金额BigDecimal cost,//幂等KeyString requestKey。数据库表名user_account,假设仅有id,userAccount(varchar 32),amount(bigint)三个字段。方法名任意,完成以下逻辑:1.完成扣款逻辑,完成SpringMvc C
2021-08-11 12:19:57 1111
原创 JVM学习笔记(14) 垃圾回收-垃圾回收器
垃圾回收器一. GC分类与性能指标垃圾回收器分类按照线程数分按照工作模式分按照碎片处理方式或工作的内存区间分评估GC的性能指标吞吐量(throughput)暂停时间(pause time)二.不同的垃圾回收器概述垃圾收集器发展史七款经典的垃圾回收器七款经典收集器与垃圾分代之间的关系垃圾回收器的组合关系不同的垃圾回收器概述如何查看默认的垃圾收集器三.Serial回收器: 串行回收四.ParNew回收器 : 并行回收五.Parallel回收器: 吞吐量优先六.CMS回收器: 低延迟七. G1 回收器: 区域化分
2021-05-09 10:47:29 145
原创 JVM学习笔记(13) 垃圾回收-相关概念
垃圾回收相关概念一.System.gc() 的理解代码示例GC1GC2GC3GC4GC5二.内存溢出与内存泄漏内存溢出(OOM)内存泄漏(Memory Leak)举例三.Stop The World四.垃圾回收的并行与并发并发(Concurrent)并行(Parallel)垃圾回收的并发与并行五.安全点与安全区域安全点(Safepoint)安全区域(Safe Region)六.再谈引用: 强引用强引用(Strong Reference) -- 不回收七.再谈引用: 软引用(Soft Reference)
2021-04-22 21:35:54 125
原创 JVM学习笔记(12) 垃圾回收-垃圾回收相关算法
垃圾回收<2>垃圾回收相关算法一.标记阶段: 引用计数算法对象存活判断方法一 : 引用计数算法循环引用例子小结二.标记阶段: 可达性分析算法方法二: 可达性分析(或搜索算法,追踪性垃圾收集)GC Roots注意三.对象的finalization机制生存还是死亡具体过程示例第一次注释finalize()方法执行:第二次重写finalize()方法执行:四.MAT与JProfiler的GC Roots溯源获取dump文件方式1: 命令行使用jmap方式2: 使用JVisualVM导出导出方法示例在这
2021-04-20 19:38:34 105
原创 JVM学习笔记(11) 垃圾回收-概述
垃圾回收<1>概述一.什么是垃圾为什么需要GC早期垃圾回收Java垃圾回收机制一.什么是垃圾为什么需要GC早期垃圾回收Java垃圾回收机制
2021-04-18 22:38:27 69
原创 JVM学习笔记(10) StringTable
StringTable一.String基本特性String在JDK9中存储结构变更二.String的内存分配三.String的基本操作在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20210414195115276.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1cWkxNTY5NTcyOT
2021-04-18 22:37:58 117
原创 JVM学习笔记(9) 执行引擎
执行引擎一.执行引擎概述执行引擎的执行过程二.Java代码编译和执行过程三.机器码.指令.汇编语言机器码指令汇编语言高级语言字节码解释器解释器工作机制解释器分类JIT编译器一.执行引擎概述执行引擎的执行过程二.Java代码编译和执行过程橙色部分是由javac前端编译而成的下面的可以参考<<编译原理>>三.机器码.指令.汇编语言机器码指令汇编语言高级语言字节码解释器解释器工作机制解释器分类JIT编译器.
2021-04-17 23:07:09 100
原创 JVM学习笔记(8)对象的实例化,内存布局与访问定位,直接内存
对象的实例化,内存布局与访问定位一.对象的实例化面试题对象在JVM中是怎么存储的对象头信息里面有那些东西创建对象的步骤二.对象的内存布局三.对象的访问定位一.对象的实例化面试题对象在JVM中是怎么存储的对象头信息里面有那些东西创建对象的步骤二.对象的内存布局三.对象的访问定位...
2021-04-12 22:54:37 87
原创 JVM学习笔记(7)运行时数据区之方法区
运行时数据区详解<3>方法区一.栈,堆,方法区的交互关系二.方法区的理解官方文档方法区在哪里方法区的基本理解Hotspot中方法区的演进三.设置方法区大小与OOM代码举例如何解决OOM四.方法区的内部结构类型信息域(Field)信息方法(Method)信息五.方法区使用举例六.方法区的演进细节七.方法区的垃圾回收八.总结一.栈,堆,方法区的交互关系另一种可能,但是java没有选择二.方法区的理解官方文档方法区在哪里方法区的基本理解Hotspot中方法区的演进
2021-03-28 21:36:18 110
原创 Optional使用示例
public class OptionalDemo1 { /** * 测试Optional -> of */ @Test public void testOf() { // 创建一个值huqi的Optional对象 Optional<String> ofOptional = Optional.of("huqi"); System.out.println(ofOptional); // Optio
2021-03-27 22:15:10 243
原创 JVM学习笔记(6)运行时数据区之堆
运行时数据区详解<2>堆一.堆核心概述内存细分二.设置堆的大小与OOM堆空间大小设置OutOfMemorry(堆空间溢出)举例三.年轻代与老年代四.图解对象分配过程五.Minor GC,Major GC , Full GC六.堆空间的分代思想七.内存分配策略八.为对象分配内存:TLAB九.小结堆空间的参数设置十.堆是分配对象的唯一选择吗一.堆核心概述如图所示,开启了两个进程代码一样,在JDK自带的jvisualvm.exe工具中可以查看到两个进程分别拥有一个堆空间,
2021-03-27 22:14:24 123
原创 JVM学习笔记(5)-本地方法接口
本地方法接口一.本地方法接口什么是本地方法举例为什么要使用Native Method现状二.本地方法栈一.本地方法接口本地方法接口非运行时数据区中什么是本地方法举例为什么要使用Native Method现状二.本地方法栈...
2021-03-23 22:22:18 71
原创 JWT认证
JWT1、什么是JWT2、JWT解决了什么问题3、早期的SSO认证4、JWT认证5、JWT优势6、JWT结构Header 标头Payload 负载Signature 签名7、Hello-Word添加依赖生成Token认证token8、工具类9、JWT整合Web10、拦截器校验11、网关路由校验12、解决多用户登录的问题13、客户端保存/携带token14、抽取ajax工具类15、a标签跳转如何传递token1、什么是JWT官方文档解释:JSON Web Token(JWT)是一个开放标准(RFC 75
2021-03-22 21:44:38 270
原创 JVM学习笔记(4)-运行时数据区详解之程序计数器与虚拟机栈
运行时数据区详解<1>程序计数器与虚拟机栈一.程序计数器(PC寄存器)PC Register介绍作用:举例说明两个常见问题1:2:cpu时间片二.虚拟机栈虚拟机栈概述虚拟机栈出现的背景内存中的栈与堆虚拟机栈基本内容栈的特点(优点)栈中可能会发生的异常设置栈内存的大小示例:栈的存储单位栈中存储什么:栈运行原理方法的两种结束方式栈帧的内部结构局部变量表jclass插件中字节码文件的查看方法:java代码:静态方法,字节码解析:关于Slot(变量槽)的理解Slot的重复利用举例: 静态变量与局部变量的
2021-03-21 20:54:39 308 1
原创 JVM学习笔记(3)-运行时数据区概述及线程
运行时数据区概述及线程一.概述具体内存划分关于线程间共享的说明二.线程JVM系统线程一.概述当class文件加载完成之后,加载之后的数据是存放在了运行时数据区中的,执行引擎执行时从运行时数据区中获取需要的数据Hotspot具体内存划分其中JDK1.7之前方法区的具体实现是叫永久代,JDK1.8之后叫做元空间其中元空间和代码缓存(JIT编译产物)可以统一是方法区里面的,也可以是属于分开的,不同的人不一样的叫关于线程间共享的说明一个JVM只有一个RunTime实例
2021-03-20 13:17:19 64
原创 JVM学习笔记(2)-类加载子系统
类加载子系统一.内存结构简述内存结构简图:运行简述:详细图:英文版:中文版:二.类加载器与类的加载过程简述:类加载器子系统作用:类加载器ClassLoader角色:类的加载过程:加载过程详情:加载:补充: 加载.class文件的方式链接:初始化:示例1:示例2:示例3:三.类加载器分类虚拟机自带的加载器:引导类加载器: Bootstrap ClassLoader扩展类加载器: Extension ClassLoader应用程序类加载器(系统类加载器) : AppClassLoader用户自定义类加载器:示例
2021-03-20 13:15:43 91
原创 JVM学习笔记(1)-Java体系结构
笔记<1>一.Java体系结构Java&JVM基础介绍语言的执行顺序java 生态圈java的跨平台性JVM:跨语言的平台虚拟机JVM的位置二.JVM的整体结构三.JVM的架构模型基于栈的指令集架构和基于寄存器的指令集架构的区别四.JVM的生命周期启动和执行退出五.JVM的发展历程Sun Classic VMExact VMSUN公司 HotSpot VMBEA 的 JRockitIBM 的 J9一.Java体系结构Java&JVM基础介绍JVM是基于栈的架构模型, 还
2021-03-20 13:00:57 110
原创 MOCK
文章目录mockmockiot基本使用maven依赖创建mock对象mock参考文章Mockito 是一个强大的用于 Java 开发的模拟测试框架, 通过 Mockito 我们可以创建和配置 Mock 对象, 进而简化有外部依赖的类的测试.使用 Mockito 的大致流程如下:创建外部依赖的 Mock 对象, 然后将此 Mock 对象注入到测试类中.执行测试代码.校验测试代码是否执行正确.如果我们需要测试一个方法,这个方法内部的依赖关系是下面这样的:那么按照常规的方式去测试的话,
2021-03-17 14:55:37 150
原创 Lambda表达式
文章目录1、Lambda表达式常见的函数式接口消费型接口 ConsumerSupplier 供给型接口Predicate 断言型接口方法引用&构造器引用构造器引用&数组引用1、Lambda表达式lambda表达式是一种语法糖,主要使用形式就是 -> 加方法名要使用lambda表达式的前提就是这个接口有且仅有一个抽象方法,即是函数式接口,这个时候就可以忽略方法的名称,而只关注方法的实现即可如果lambda体只有一条执行语句,比如return,也是可以省略return的
2020-11-08 19:31:15 212
原创 IDEA代码调试方法
我们在写java代码的时候常常会出现一些错误,这些错误很多都是我们无法用肉眼看代码直接看出来的,这个时候我们就要对代码打断点进行debug.下面我将具体来介绍下如何来进行代码调试1> 如何进入debug模式如图所示,我们首先在我们的代码中预判断下我们大概会在哪里出现错误,或者想要在那个地方查看运行时数据,就在这句代码的左边点击一下,出现红色圆点.然后点击下图所示的idea...
2020-04-15 23:22:06 1094
原创 ArrayList底层原理简单代码实现实例
package com.huqi.demo2shili.d3;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class TestArrayList { /** * ArrayList * * 添加add * 1> 底层是一个Object的动态...
2020-03-12 20:44:43 95
原创 接口笔记
接口的理解一.与抽象类的区别public class TestBasicInterface{ public static void main(String[] args){ }}//抽象类abstract class MuClass{ //1.不能new对象(对象不能独立存在) //2.有抽象方法(子类必须覆...
2020-03-01 19:40:54 149
原创 打印等腰三角形和菱形
1,打印一个等腰三角形import java.util.Scanner;public class Demo2 { public static void main(String[] args) { //打印一个等腰三角形 System.out.println("请问你要输出几层的等腰三角形:"); int n = new Scanner(System.in).nextI...
2020-02-25 21:53:54 211
原创 编程求 1~10000 之间的所有“完全数”
完全数是该数的所有因子之和等于该数的数。例如,6 的因子有 1、2、3,且 6=1+2+3,所以 6 是完全数。代码如下:package com.qianfeng.hq.kuozhan;public class Demo8 { public static void main(String[] args) { /* * 8: 编程求 1~10000 之间的所有“完全数”...
2020-02-25 21:48:29 8557 3
原创 关于static ,final ,abstract的几点解释
1.static可以修饰的内容有?修饰后的效果分别是? 方法:这个方法可以使用类名.方法名访问 属性:代表这个属性是被所有的类的对象所共享的 静态代码块:在类被第一次加载时加载,优先级高于构造函数,而且只会加载一次2.静态方法为什么不能访问非静态成员? 因为静态方法会在类第一次被加载时就有限进行访问, 此时其他非静态成员还未加载进内存,会出现错误3.什么叫类加载? jvm在首次...
2020-02-25 21:14:19 203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人