- 博客(49)
- 收藏
- 关注
原创 k8s从入门到实践
k8s从入门到实践介绍Kubernetes(简称k8s)和Docker Swarm是两个流行的容器编排工具,它们都可以帮助用户管理和部署分布式应用,尤其是基于容器的应用。以下是两者的主要特点和对比:Kubernetes (k8s):开源项目:由Google发起,现在由Cloud Native Computing Foundation (CNCF)管理。成熟度与社区支持:拥有庞大的开发者社区和生态系统,高度活跃且持续更新迭代,支持众多云服务提供商以及企业内部部署。功能丰富:提供了丰富的特性集,包括
2024-01-25 14:40:19 1213
原创 [350]两个数组的交集 II.java
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现。如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2]如果 nums1 的大小比 nums2 小,哪种方法更优?你将如何优化你的算法?
2023-07-20 13:04:01 167
原创 @Transaction和自定义切面的执行顺序思考
spring若无特殊情况均采用的是基于jdk和cglib的动态代理,此时关于@Transactional的优先级为最低优先级,最晚开启事务和最早提交事务,最贴近代理方法执行如果项目引入了AspectJ的静态代理,则@Transactional执行的优先级低于基于jdk和cglib的动态代理,需要注意的是需要关注此时自己编写的Aspect的配置是否@Transactional的Aspect配置执行的优先级顺序,关于AspectJ的静态代理顺序不在本文讨论范围,有兴趣可一起讨论。
2023-07-18 10:52:40 1510
原创 Tomcat&JVM假死现象的原理浅析 内存泄露?死锁?
为什么tomcat一直处于运行状态,发生内存泄露不应该直接报OOM错误,tomcat内存溢出后退出运行吗?这种假死的状态一般来说是发生内存泄露的过程非常缓慢,当泄露的内存刚好达到一定比例,这个比例取决于【新增的对象填满老年代的时间】/【每次FullGc的持续时间】越小说明FullGC越频繁,系统卡顿越明显,当达到一个临界值后就会产生彻底卡死的现象,一般来说假死是一个逐渐变慢的一个过程,当系统越慢又会导致新增到老年代的对象增多,是一个恶性循环。如对此类问题有疑问,可以一起讨论讨论。
2023-07-17 16:00:21 708
原创 SpringAOP的实现和执行原理
查看advisors是如何拿到的,其顺序又是什么?[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nrnxPotN-1689226439387)(https://gitee.com/gityyh/notebook3/blob/master/spring/assets/20230706_105109_image.png)]
2023-07-13 13:41:05 502
原创 运输层-UDP概述
文章目录前言一、特点二、首部结构前言用户数据报协议UDP只在IP的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能。一、特点UDP是无连接的,即发送数据之前不需要建立连接(当然,发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。UDP使用了最大努力交付,但是不保证可靠交付。UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这就是说,应
2021-03-30 22:58:09 192
原创 二叉树的层序遍历
二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层序遍历结果:[[3],[9,20],[15,7]]作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnldjj/来源:力扣(LeetCode)
2021-03-28 22:31:53 227
原创 TOMCAT9配置Https访问
1.在conf/server.xml中配置<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="D:\tomcat\apach...
2020-08-21 13:04:51 360
原创 Caused by: java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not availab
错误截图:发生条件:电脑做了虚拟化内存设置之后重启了电脑,原先可以启动的项目启动时报错解决办法:1.重新设置eclipse的JRE2.设置eclipse中的tomcat中的jre依赖3.重新启动正常
2020-06-17 19:08:42 753
原创 li标签和a标签的点击时间如何同时触发(涉及JS的默认事件,冒泡,捕获)
参考作者献上:http://caibaojian.com/javascript-stoppropagation-preventdefault.html页面中的所有#menus1 li 都绑定了click()事件,需求是当点击<li>菜单的时候触发<li>以及<li>下的<a>标签的点击时间,<li>click是给<li>加class标记被选择,<a>标签click是打开页面,遇到问题是,<a>标签的事件触
2020-06-12 20:54:04 754
原创 POSTMAN请求参数后台request.getParameter()获取不到参数问题
复制粘贴其他请求中的userName和accessToken时发现请求到后台一致无参数,删除后重新录入后就好了
2020-05-20 15:02:11 3751
原创 垃圾收集算法
1.标记清除算法:标记出来需要清楚的对象,然后进行清楚,并造成空间的不连续2.复制算法:将内存分为2个区,每次只使用一个区域,把S1区域的存活对象,复制到S2中,如此反复进行,有点可以保证空间的连续,但是浪费50%的空间3.标记整理算法:可以理解为标记清除-整理算法,避免了标记清除算法带来的空间的不连续,缺点是比较耗时3.分代收集算法:现在商业虚拟机采用的方法,将内存分为新生代和老年代...
2020-02-22 22:27:30 146
原创 java.lang.OutOfMemoryError总结(待续。。。)
总结目的通过代码验证java虚拟机运行时区域存储的内容; 工作中如果遇到内存溢出问题,能够根据反馈的异常信息快速判断哪个内存区域发生溢出Java堆内存溢出报错信息:java.lang.OutOfMemoryError:Java heap space原因可能是内存泄漏或者创建太多对象导致内存不足Java虚拟机栈和本地方法区栈报错信息:1.stackOverFlowErro...
2020-02-22 21:36:22 183
原创 JAVA虚拟机发生GC的过程简要分析(待续...)
了解JVM发生GC的原因以及过程,才可以更加针对的对虚拟机进行内存分配,从而减少full gc,避免造成系统卡顿甚至系统崩溃FULLGC带来的危害(STW)在发生FULL GC的时候,意味着JVM会安全的暂停所有正在执行的线程(Stop The World),来回收内存空间,在这个时间内,所有除了回收垃圾的线程外,其他有关JAVA的程序,代码都会静止,反映到系统上,就会出现系统响应大幅度...
2020-02-20 22:10:26 364 1
原创 GC:可达性分析算法
可达性分析算法之前有一个叫引用计数法,原理非常简单如果一个对象没有任何引用与之关联,基本上对象不可能在其他地方用的上,这个对象就成为可被回收的对象,但是这个方法虽然非常简单,而且高效,但是它无法解决循环调用的问题,如下图所示:public class Main { public static void main(String[] args) { Demo d1 = n...
2020-02-20 21:27:55 1892
原创 InnoDB非主键索引结构叶子节点为什么存储的是主键值而不是像MyiSAM索引存储数据地址?
1.保持一致性,当数据库表进行DML操作时,同一行记录的页地址会发生改变,因非主键索引保存的是主键的值,无需进行更改;2.节省存储空间,后续补充,不太清楚原因。参考链接:https://blog.csdn.net/a1_HelloWord/article/details/104341349...
2020-02-16 22:23:00 4050 3
原创 Mysql联合索引的数据结构(B+Tree)
B+Tree中的data存储last_name,first_name,dob三个字段信息,类似于一个主键索引的中的一个字段,将三个字段组合在一起,比较的时候和单独的一个字段的区别在于,先比较last_name,然后比较first_name,最后再比较dob,执行这样的规则。综上所述:这样就比较好理解Mysql索引的最左前缀原理...
2020-02-16 21:40:00 2189 2
原创 为什么说InnoDB必须要有主键并且推荐使用自增整型主键呢?
1.InnoDB存储引擎的数据结构必须需要一个主键才可以组织起来,如果用户使用InnoDB存储引擎建立表的时候,没有指定主键,则Mysql会自动的帮你找到一个合适的唯一索引作为主键,若找不到符合条件唯一索引条件的字段时,会生成类似于ROW_ID的虚拟列充当该InnoDB表的主键;2.整型的存储比字段类型要小,而且应为是InnoDB存储引擎使用的是B+Tree数据结构,在进行查询数据是需要对每个元素进行比较,而整型的对比效率是高于其他数据结构的,字符串等。...
2020-02-16 13:25:20 4500 7
原创 MyISAM引擎和InnoDB引擎的区别
1.从Mysql内部的储存文件的格式不一样;MyISAM是3个文件xxx.frm,xxx.MYI,xxx.MYD,而InnoDB是2个文件,分别是xxx.frm,xxx.IBD2.索引的组织结构不一致;MyISAM的索引结构中,叶节点保存的是数据的地址,而InnoDb的索引结构中叶节点保存了所有的数据结构后续补充......
2020-02-16 13:11:58 116
原创 MySql索引之InnoDB引擎(聚集索引)
Mysql内部文件以InnoDB作为存储引擎建立表test_innodbCREATE TABLE `test_innodb` ( `ID` int(11) DEFAULT NULL, `NAME` varchar(99),) ENGINE=InnoDB DEFAULT CHARSET=utf8;我们会发现D:\MySQL\mysql-5.7.13-winx64\data...
2020-02-16 13:06:55 186
原创 MySql索引之Myisam引擎(非聚集索引)
Mysql内部文件若以这个Myisam引擎创建表test_my时,详见代码:CREATE TABLE `test_my` ( `id` int(11) NOT NULL AUTO_INCREMENT, `mame` varchar(100), PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;我们会发现D:\M...
2020-02-16 12:53:40 720
原创 B+Tree作为Mysql索引的优势?
B+Tree的性质:非叶子节点只存储键值信息。(可以存放更多的索引) 所有叶子节点之间都有一个链指针。(提高区域访问效率) 数据记录都存放在叶子节点中。(查找数据更加快速)采用B+Tree的结构时,Mysql的InnoDB存储引擎查找到一行记录最多只需要3次磁盘IO操作(10亿条数据量)InnoDB存储引擎中页的大小为16KB,一般表的主键类型为INT(占用4个字节)或BIGINT(...
2020-02-16 11:44:55 455
原创 B+Tree
B+Tree简介B+Tree是B-Tree的变种,B+Tree与B-Tree有几点不同:非叶子结点只存储键值信息 所有的叶子结点之间都有一个链指针 数据记录都存储在叶子节点中B+Tree的创建过程B+Tree在创建时也B-Tree创建过程不同之处在于裂变的过程时B+Tree找到中间结点作为父结点时,会冗余一个结点。...
2020-02-16 11:31:18 200
原创 InnoDB存储引擎中有页(Page)的概念
系统从磁盘读取数据到内存时是以磁盘块(block)为基本单位的,位于同一个磁盘块中的数据会被一次性读取出来,而不是需要什么取什么。InnoDB存储引擎中有页(Page)的概念,页是其磁盘管理的最小单位。InnoDB存储引擎中默认每个页的大小为16KB,可通过参数innodb_page_size将页的大小设置为4K、8K、16K,在MySQL中可通过如下命令查看页的大小:mysql>...
2020-02-16 10:59:28 1127 1
原创 B-Tree作为索引有哪些优势?
首先通过对B-Tree的结构可知,B-Tree作为索引有下列的优势:叶结点具有相同的深度,叶结点的指针为空,相比红黑树或者平衡二叉树平衡性更好 一个结点中可以存储多个关键字元素,第一点在相同的索引元素下笔红黑树或者平衡二叉树的深度更小,减少了对磁盘的IO操作次数,第二点每次读取到多个数据后,在内存中的运算速度更加的迅那么B-Tree中每个结点的数据是否时越多越好呢?答:否,1.因为索引...
2020-02-16 00:26:32 966
原创 B-Tree以及创建过程演示
当元素<4且>0时,直接按照顺序插入元素即可,插入元素结束,当元素=4时,将插入的元素按照顺序放入结点中,然后从中选择一个数作为当前结点的父结点(选择结点的规则是 (n+1)/2 取整),本例为(5+1)/2=3即选取第三个元素,放入父结点中,若没有父结点则创建一个父结点,则插入结束;首先定义一个5阶的B树(平衡5路查找树),现在我们要把4、9、32、12、24、30、51、29、69、31、90、70、75、79、、80、85、91、 这些数字构建出一个5阶树出来;8.插入70,75,79。
2020-02-15 23:01:15 3201 3
原创 动态数据结构演示网站
链接地址:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
2020-02-15 22:19:37 940
原创 哈希索引为什么不可以作为Mysql的索引?
1.哈希索引也不支持部分索引列匹配查找,如果在数据(a,b)上面建立索引,在查询数据a的时候数据不能使用索引;2.哈希索引只支持等值比较查询,所有的范围查找均不支持;3.哈希冲突如果比较严重的话,对数据库索引的维护压力比较大,如果在重复值比较多的列上建立索引,当对某条数据进行删除的时候,需要遍历对应哈希值的链表中每一行。...
2020-02-13 22:26:33 658
原创 红黑树为啥不可以作为Mysql的索引
红黑树基本都是存储在内存中才会使用的数据结构。在大规模数据存储的时候,红黑树往往出现由于树的深度过大而造成磁盘IO读写过于频繁,进而导致效率低下的情况。为什么会出现这样的情况,我们知道要获取磁盘上数据,必须先通过磁盘移动臂移动到数据所在的柱面,然后找到指定盘面,接着旋转盘面找到数据所在的磁道,最后对数据进行读写。磁盘IO代价主要花费在查找所需的柱面上,树的深度过大会造成磁盘IO频繁读写。根...
2020-02-13 18:33:18 925
原创 红黑树(Red Black Tree)
红黑树是一种自平衡的二叉树,也是二叉查找树。红黑树和AVL树类似,都是在进行插入和删除操作的时候进行特定的操作以保证二叉查找树的平衡非空红黑树满足下面的性质:1. 节点是红色或黑色。2. 根节点是黑色。3 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)4. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。红黑树的操作...
2020-02-13 17:44:10 113
原创 平衡二叉树(Balaced Binary Tree 或 AVL树)
平衡二叉树的插入,删除,查询均可以在O(logN)的时间复杂度内完成定义:非空的平衡二叉树满足下面的性质:1.根结点左,右子数的高度差绝对值不超过1;2任意结点的左,右子树均为AVL树在平衡二叉树中插入一个新结点后,从该结点起向上寻找第一个不平衡的结点,平衡二叉树的调整分成下面几种情况:1.LL型2.RR型3.LR型4.RL型平衡二叉树的调整参考:htt...
2020-02-13 17:16:04 188
原创 二叉搜索树(Binary Search Tree)
二叉搜索树又叫做二叉排序树,二叉查找树定义:首先二叉搜索树属于二叉树,且满足下面的性质1.非空左子树的所有键值都小于其根结点的键值;2.非空右子树的所有键值都大于其根结点的键值;3.左,右子树都是二叉搜索树...
2020-02-13 16:59:13 113
原创 JAVA 远程调用Linux shell 命令——完成JAVA端收集Liunx服务器磁盘,内存等信息返回到前端
package com.learn.service;import com.jcraft.jsch.*;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.HashMap;...
2019-10-12 22:59:44 409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人