- 博客(129)
- 资源 (7)
- 收藏
- 关注
原创 JVM:虚拟机执行子程序-虚拟机类加载机制
虚拟机类加载机制目录一、类加载的时机1、被动引用例子一2、被动引用例子二3、被动引用的例子之三4、接口的加载二、类加载的过程1、加载1、在加载阶段,Java虚拟机需要完成以下三件事情:2、获取定义类的二进制字节流方式:3、数组类的加载4、加载阶段结束后2、验证1.文件格式验证2.元数据验证3.字节码验证4.符号引用验证3、准备4、解析1、符号引用与直接引用1、符号引用:2、直接引用.
2021-01-26 09:43:18 3111 9
原创 【剑指Offer题解:java】汇总目录(持续更新中)
1、【剑指Offer题解:java】从尾到头打印链表2、【剑指Offer题解:java】字符串转为整数3、【剑指Offer题解:java】反转链表4、【剑指Offer题解:java】复杂链表的复制5、【剑指Offer题解:java】二维数组中的查找6、【剑指Offer题解:java】替换空格7、【剑指Offer题解:java】旋转数组的最小数字8、【剑指Offer题解:java】斐波阿契数列9、【剑指Offer题解:java】跳台阶10、【剑指Offer题解:java】矩形覆盖…持续更新
2021-01-23 23:53:38 1665
原创 JVM:自动内存管理-垃圾收集器与内存分配策略
JVM:自动内存管理-垃圾收集器与内存分配策略Java与C++之间有一堵由内存分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。一、概述:Java堆和方法区这两个区域有着很显著的不确定性二、对象已死?1、引用计数法、引用计数器的缺陷2、可达性分析算法3、再谈引用 三、垃圾收集算法分代收集理论、标记-清除算法、标记-复制算法、Appel式回收、标记-整理算法四、HotSpot的算法细节实现五、经典垃圾收集器六、低延迟垃圾收集器七、选择合适的垃圾收集器
2021-01-12 12:27:38 6155 15
原创 Docker思维导图汇总
写博客即是为了记录自己的学习历程,也希望能够结交志同道合的朋友一起学习。文章在撰写过程中难免有疏漏和错误,欢迎指出文章的不足之处;更多内容请点进????爱敲代码的小游子????查看。临渊羡鱼,不如退而结网。一起加油!Docker(上)(安装Docker、配置阿里镜像加速、Docker运行流程、Docker常用命令)Docker(下)(Docker镜像、容器数据卷、编写DockerFile)...
2020-10-24 15:46:26 6326 54
原创 Elasticsearch第二谈(ES核心概念、ES简单操作、构建查询、查询结果过滤排序分页、term和match查询区别、自定义查询结果高亮)
ES核心概念、ES简单操作1、Elasticsearch面向文档、关系行数据库、和Elasticsearch对比2、Elasticsearch核心概念(文档、类型、字段、索引、分片)3、IK分词器安装及使用构建查询、查询结果过滤、排序、分页term和match查询区别自定义查询结果高亮
2020-08-31 07:48:13 9285 50
原创 Linux知识集合
Linux系列第一谈:阿里云服务器基本Linux操作(开启安全组、使用面板搭建环境 使用命令行搭建环境 安装jdk、tomcat、Docker)Linux系列第二谈(开机关机、Linux中的文件、目录管理、基本属性)
2020-08-04 19:19:49 5403 1
原创 SpringBoot思维导图(SpringBoot基础部分汇总)
SpringBoot第一谈(第一个SpringBoot项目、核心配置文件properties(yml、yaml)、集成jsp)SpringBoot第二谈SpringBoot的web开发(集成MyBtis、SpringBoot 下的SpringMVC、SpringBoot开发RESTFul风格、集成Redis)SpringBoot第三谈(Spring Boot 集成 Dubbo、Spring Boot 非 web 应用程序、SpringBoot 启动Logo修改关闭)SpringBoot第四谈(spr.
2020-07-02 10:07:08 11083 36
原创 SpringMVC总结思维导图
SpringMVC总结思维导图SpringMVC框架第一谈(SpringMVC简介优点、第一个SpringMVC的程序、SpringMVC的执行流程)SpringMVC第二谈(SpringMVC注解式开发、@RequestMapping、处理器方法的参数及返回值、解读url-pattern属性)SpringMVC第三谈(请求重定向和转发、异常处理、拦截器、SSM的整合)...
2020-06-17 13:11:48 5847 25
原创 Spring思维导图大纲
本人是一名物联网工程专业大二的学生,是互联网浪潮中一朵小小的浪花,写博客即是为了记录自己的学习历程,又希望能够帮助到很多和自己一样处于起步阶段的萌新。临渊羡鱼,不如退而结网。一起加油!博客主页:https://blog.csdn.net/qq_44895397Spring框架第一谈(spring中的入门、ioc创建对象、junit单元测试简介)Spring框架第二谈(IOC实现,xml配置文件给属性赋值,注解实现赋值)Spring第三谈(aop的实现,切入点表达式,aop的作用,浅谈aop底层.
2020-06-11 11:27:51 4497 25
原创 Mybatis大纲(思维导图)
Mybatis系列第一谈(mybatis的简单使用,快速入门Mybatis系列第二谈(深入学习Mybatis,理解参数,动态代理的使用,参数传值)Mybatis系列第三谈(Mybatis对结果的处理,模糊查询认识Like)Mybatis系列第四谈(动态sql,Mybatis主配置文件,Mybatis分页插件的使用)...
2020-06-04 17:24:45 5016 33
原创 Java虚拟机:Java模块化系统
Java模块化系统目录1、Java模块化系统2、模块化的兼容性1)模块路径2)模块化系统访问路径规则3)它本身面临的模块间的管理和兼容性问题3、模块化的类加载器1)模块化下的类加载器变动2)类加载的委派关系变动1、Java模块化系统JDK9开始引入,目的:为了能够实现模块化的关键目标:可配置的封装隔离机制。可配置的封装隔离机制主要解决:首先要解决JDK9之前基于类路径(ClassPath)来查找依赖的可靠性问题;还解决了原来类路径上跨JAR文件的public类型的可访问性问题。JDK 9的.
2022-09-04 15:54:55 743
原创 没写博客的一年,我在干嘛
机缘最初成为创作者的初心:还记得独自一人学习Java的那个时候,从早学到晚,不知疲倦,有了一定的基础以后,就写上了博客,边学边写收获丝慢慢增长,不知不觉已经快三千人了,浏览量也还不错憧憬已经很久没有写博客了,2021备考考研,功夫不负有心人,2022成功上岸华中师范大学计算机学硕...
2022-04-11 13:35:19 733 5
原创 Java虚拟机:低延迟垃圾收集器
低延迟垃圾收集器衡量垃圾收集器的三项最重要的指标是:内存占用、吞吐量和延迟Shenandoah和ZGC,几乎整个工作过程全部都是并发的,只有初始标记、最终标记这些阶段有短暂的停顿,这部分停顿的时间基本上是固定 的,与堆的容量、堆中对象的数量没有正比例关系。这两款目前仍处于实验状态的收集器,被官方命名为“低延迟垃圾收集器”1、Shenandoah收集器Shenandoah(目前)是默认不使用分代收集的Shenandoah使用连接矩阵的全局数据结构来记录跨Region的引用关系,降低了处理跨.
2021-09-19 15:34:43 382
原创 看看还有哪些单身猿打算“new一个对象”过情人节
你有女朋友了吗?你:…灵机一动,咱们程序员脑子就是转的快就知道new对象,你知道对象怎么new出来的不?这还不简单:Java中:Girlfriend girlfriend = new Girlfriend();不就是new吗?有键盘就行除了Java我还会C++、Golang各种花式创建对象C++:Girlfriend *girlfriend = new Girlfriend();Golang:Girlfriend := new(Girlfriend..
2021-08-11 13:42:56 445 2
原创 【数据结构-Java】实现二叉树
能提高数据存储,读取的效率, 比如利用 二叉排序树(Binary Sort Tree),既可以保证数据的检索速度,同时也 可以保证数据的插入,删除,修改的速度。二叉树的子节点分为左节点右节点每个节点最多只能有两个子节点1)节点:节点对象2)根节点:3)父节点4)子节点5)叶子节点:没有子节点的节点6)节点的权:(节点的值)7)路径:从根节点找到该节点的路线8)层:9)子树:10)树的高度:11)森林:多棵子树构成的森林满二叉树:如果该二叉树的所有叶子节点都在最后.
2021-07-21 11:30:22 299 1
原创 医学图像处理填空
1.现代医学影像技术的发展源于德国科学家伦琴于1895年发现的[X线]并由此产生的成像技术。2.传统的X线成像得到的是组织或器官的[投影]像。3.照片上某个像素的亮度反映穿过人体到达胶片的X线的强度,它与人体对X线的吸收量成[反]比。4.超声成像依据的是[脉冲-回波]技术。5.超声仪使用的成像物质波源是振动频率在人的听觉范围以外的[机械振动]波。6.超声成像是用不可见也听不到的超声波能量实现的人体成像,对人体[无]辐射伤害。7.CT成像是通过检测人体对[X线]吸收量而获得的图像。8.CT得到人
2021-06-18 13:31:12 2737 1
原创 医学图像处理代码
线性变换:int y=(int)(aapix+bb); if(y>255) y=255; if(y<0) y=0; return y;开窗变换:int y=(int)255(pix-cw+ww/2)/ww; if (y>255) y=255; if(y<0) y=0; return y;图像平移: int x0=x1-tx; int y0=y1-ty;图像直接缩放int x0=(int)(x1/k); int y0=(int)(y1/k);图像局部均值缩小:int
2021-06-18 13:30:40 704
原创 【数据结构-Java】平衡二叉树(AVL树)
文章目录1、基本介绍2、应用案例-单旋转(左旋转)1) 数列2) 思路分析3)代码3、应用案例-单旋转(右旋转)1)需求2)思路分析3)图解4、应用案例-双旋转1) 问题分析2) 解决思路分析3)代码4)测试5、AVL完整代码1、基本介绍平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree)又被称为 AVL 树, 可以保证查询效率较高。具有以下特点:它是一棵空树或它的左右两个子树的高度差的绝对值不超过****1,并且左右两个子树都是一棵 平衡二叉树。平衡二
2021-05-27 23:02:30 2224 43
原创 【数据结构-Java】Java实现赫夫曼树
文章目录1、赫夫曼树基本介绍2、赫夫曼树几个重要概念和举例说明3、赫夫曼树创建思路图解4、赫夫曼树的代码实现1、赫夫曼树基本介绍给定 n 个权值作为 n 个叶子结点,构造一棵二叉树,若该树的带权路径长度**(wpl)**,达到最小,称这样的二叉树为 最优二叉树,也称为哈夫曼树(Huffman Tree), 还有的书翻译为霍夫曼树。赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近2、赫夫曼树几个重要概念和举例说明路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路
2021-05-15 22:28:56 570
原创 【数据结构-Java】赫夫曼编码
文章目录1、基本介绍2、原理剖析1)通信领域中信息的处理方式1-定长编码2)通信领域中信息的处理方式2-变长编码3)通信领域中信息的处理方式3-赫夫曼编码1、基本介绍赫夫曼编码也翻译为 哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式, 属于一种程序算法赫夫曼编码是赫哈夫曼树在电讯通信中的经典的应用之一。赫夫曼编码广泛地用于数据文件压缩。其压缩率通常在 20%~90%之间赫夫曼码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,称之为最佳编码
2021-05-15 22:26:42 665
原创 Java虚拟机:垃圾收集算法
Java与C++之间有一堵由内存分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。垃圾收集算法1、分代收集理论分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则,它建立在两个分 代假说之上:1)弱分代假说(Weak Generational Hypothesis):绝大多数对象都是朝生夕灭的。2)强分代假说(Strong Generational Hypothesis):熬过越多次垃圾收集过程的对象就越难以消亡。3)跨代引用假说(Intergener.
2021-05-15 22:24:37 1005
原创 Java虚拟机:HotSpot的算法细节实现
HotSpot的算法细节实现1、根节点枚举所有收集器在根节点枚举这一步骤时都是必须暂停用户线程的即使是号称停顿时间可控,或者(几乎)不会发生停顿的CMS、G1、 ZGC等收集器,枚举根节点时也是必须要停顿的。根节点枚举始终还 是必须在一个能保障一致性的快照中才得以进行“一致性”的意思是整个枚举期间执行子系统 看起来就像被冻结在某个时间点上,不会出现分析过程中,根节点集合的对象引用关系还在不断变化的情况目前主流Java虚拟机使用的都是准确式垃圾收集,所以当用户线程停顿下来之后,其.
2021-04-13 23:02:54 446 20
原创 Java虚拟机:概述、对象生存法则
Java与C++之间有一堵由内存分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。一、概述Java堆和方法区这两个区域有着很显著的不确定性:1、一个接口的多个实现类需要的内存可能会不一样,一个方法所执行的不同条件分支所需要的内存也可能不一样2、只有处于运行期间,我们才能知道程序究竟会创建哪些对象,创建多少个对象,这部分内存的分配和回收是动态的垃圾收集器所关注的正是这部分的内存该如何管理二、对象已死?1、引用计数法在对象中添加一个引用计数器,每当有一个地方引用.
2021-03-31 12:26:59 1578 5
原创 Java虚拟机:概述、对象生存法则
Java与C++之间有一堵由内存分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。一、概述Java堆和方法区这两个区域有着很显著的不确定性:1、一个接口的多个实现类需要的内存可能会不一样,一个方法所执行的不同条件分支所需要的内存也可能不一样2、只有处于运行期间,我们才能知道程序究竟会创建哪些对象,创建多少个对象,这部分内存的分配和回收是动态的垃圾收集器所关注的正是这部分的内存该如何管理二、对象已死?1、引用计数法在对象中添加一个引用计数器,每当有一个地方引用.
2021-03-24 13:21:41 119
原创 虚拟机执行子程序-虚拟机字节码执行引擎
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一 大步。虚拟机执行子程序-虚拟机字节码执行引擎一、概述二、运行时栈帧结构1、局部变量表2、操作数栈3、动态连接4、方法返回地址5、附加信息三、方法调用1、解析2、分派1)静态分派2)动态分派1、方法动态分派演示2、字段没有多态性3)单分派与多分派4)虚拟机动态分派的实现四、动态类型语言支持1、动态类型语言1)什么是动态语言2)什么叫“在编译期还是在运行期进行”?3)什么是“类型检查”?2、Java与动态类型1)jav.
2021-03-14 23:26:28 3355 13
原创 【数据结构-Java】最佳实践-数据压缩(使用赫夫曼树)
文章目录一、需求二、步骤1、创建赫夫曼树所需的节点Node2、得到字符串的byte数组3、接受字节数组返回list4、通过list返回一棵赫夫曼树5、生成赫夫曼树对应的赫夫曼编码表6、对赫夫曼树得到的二进制字符通过赫夫曼编码表进行数据压缩一、需求将给出的一段文本,比如 “i like like like java do you like a java” , 根据前面的讲的赫夫曼编码原理,对其进行数据压缩处理二、步骤根据赫夫曼编码压缩数据的原理,需要创建 “i like like like java
2021-02-23 15:03:55 1755 6
原创 我要悄悄学习,做一个浪漫的程序员
文章目录一、前端程序员的浪漫第一个:loving第二个:kevinlu98/love第三个:Axehco/LoveDemo第四个:phodal/valentine第五个:JohnLee99/Cherry_Blossoms二、花式表白代码1、采葛: 一日不见,如三月兮2、顾城 :《门前》3、春风十里不如你4、一见钟情5、执子之手,与子偕老6、我的世界只有太阳、月亮和你7、陪伴是最长情的告白8、自从遇见你,就不停地想你9、我想你了今天我们就来盘点一下 GitHub 程序员开源的情人节表白的代码。来一睹大牛..
2021-02-07 10:16:13 26700 69
原创 【剑指Offer题解:java】二叉搜索树的后序遍历
文章目录题目分析代码题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。分析直接利用二叉树后序遍历的数组的最后一个数是该树的根节点的性质,将树划分成左右两个数组,两个数组必须满足【左边数据小于根节点,右边数组大于跟节点】。代码 /** * 递归法: * 二叉搜索树它的根结点总是对应该子树的后序序列的最后一个数 * 那么,只需要不断地确定出左子树区间和右子树区间
2021-02-06 13:30:02 1506 1
原创 【剑指Offer题解:java】从上往下打印二叉树
题目从上往下打印出二叉树的每个节点,同层节点从左至右打印。分析初始化:一个队列Queue queue , 将root节点入队列queue如果队列不空,做如下操作:弹出队列头,保存为node,将node的左右非空子节点加入队列做2,3步骤,直到队列为空代码import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;public class Solution { public
2021-02-05 14:42:21 808 4
原创 【剑指Offer题解:java】重建二叉树
文章目录题目分析代码题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析根据中序遍历和前序遍历可以确定二叉树,具体过程为:根据前序序列第一个结点确定根结点根据根结点在中序序列中的位置分割出左右两个子序列对左子树和右子树分别递归使用同样的方法继续分解例如:前序序列{1,2,4,7,3,5,6,8}
2021-02-04 12:46:30 1107 6
原创 【剑指Offer题解:java】二叉树的镜像
文章目录题目分析代码题目操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5分析递归交换左右子树即可1、root ==
2021-02-03 16:26:15 1583 1
原创 【数据结构-Java】二叉排序树
文章目录1、二叉排序树介绍2、构建二叉排序树3、二叉排序树删除节点4、完整代码1、节点类2、二叉排序树类1、二叉排序树介绍二叉排序树BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点比如针对前面的数据 (7, 3, 10, 12, 5, 1, 9) ,对应的二叉排序树为:2、构建二叉排序树 /** * 添加节
2021-02-02 21:53:28 646
原创 【剑指Offer题解:java】树的子结构
文章目录题目分析代码题目输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)分析先序遍历树 A中的每个节点node1判断树A中以node1为根节点的子树是否包含树B终止条件:当节点 node2为空:说明树B已匹配完成(越过叶子节点),因此返回 true当节点 node1 为空:说明已经越过树 A叶子节点,即匹配失败,返回 false当节点 node1和 node2 的值不同:说明匹配失败,返回 false判断 A 和 B 的左子节点是否相等
2021-01-30 18:49:49 1721 3
原创 【剑指Offer题解:java】求1+2+3+...+n
题目求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)等差数列求和公式:代码public class Solution { public int Sum_Solution(int n) { return ((1+n)*n)/2; }}...
2021-01-29 11:44:39 622
原创 【剑指Offer题解:java】二叉树深度
题目输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。分析所以结果为 max( 头结点左子树的最大深度, 头结点右子树的最大深度)+1先求height(node.left)再求height(node.right)然后取最大值Math.max(node.left == null ? 0 : height(node.left), node.right == null ? 0 : height(node.right)) + 1
2021-01-29 11:41:47 631
原创 【剑指Offer题解:java】调整数组使奇数位于偶数前面
文章目录题目题解一题解二题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。题解一使用辅助数组第一次遍历:遇到奇数直接放入新数组第二次遍历:遇到偶数放入新数组进行数组copy/** * 方法一: * 使用辅助数组 * 第一次遍历:遇到奇数直接放入新数组 * 第二次遍历:遇到偶数放入新数组 * 进行数组copy
2021-01-28 11:29:34 1458 22
原创 【剑指Offer题解:java】顺时针打印矩阵
文章目录题目分析代码题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.分析定义四个变量分别代表矩阵的四条边:top,right,down,left向右走存入整行的值,当存入后,该行再也不会被遍历,代表上边界的 top++,同时判断是否和代表下边界的 down 交错向下走存入
2021-01-27 12:15:32 1611 2
原创 【剑指Offer题解:java】栈的压入、弹出序列
文章目录题目分析代码题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)分析初始化:用指针i指向pushV的第一个位置, 指针j指向popV的第一个位置如果pushV[i] != popV[j], 那么应该将pushV[i]放入栈中,i++否则
2021-01-26 21:55:45 425
原创 【剑指Offer题解:java】数值的整数次方
题目给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0题解1、使用内置函数/** * 使用内置函数 * * @param base * @param exponent * @return */ public double Power(double base, int exponent) { return Math.p
2021-01-25 16:22:05 1580 3
原创 【剑指Offer题解:java】链表中倒数第K个节点
文章目录题目思路一思路二题目输入一个链表,输出该链表中倒数第k个结点。思路一求倒数第k个,可以转换成求正数个数/** * 求倒数第k个,可以转换成求正数第多少个呢? * @param head * @param k * @return */ public CListNode FindKthToTail(CListNode head, int k) { if (head == null || k < 0) retu
2021-01-24 13:23:50 1587 2
mybatis-plus思维导图.zip
2020-07-02
springboot思维导图.zip
2020-06-29
springmvc总结思维导图.zip
2020-06-15
spring框架思维导图下载(纯手画)
2020-06-11
Mybatis.zip思维导图纯手画
2020-06-04
mysql-8.0.19-winx64.zip
2020-05-24
JDK 11 API .zip
2020-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人