自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 检测死锁工具JDK bin目录下的jconsole.exe

首先找到你的jdk目录,你可能下载多个jdk你可以cmd里用 Java -version看一下有几个jdk;在配置的环境变量里找到你的jdk目录如下图,然后在文件夹打开这个目录;然后你在这个目录下打开 jconsole.exe,选择你的进程。最好写的时候就避免写成这种锁嵌套。

2024-02-27 16:01:25 352

原创 docker搭建集群

设有N个分⽚,使⽤[0,N-1]这样序号进⾏编号. 针对某个给定的key,先计算hash值,再把得到的结果%N,得到的结果即为分⽚编号. 例如,N为3.给定key为hello,对hello计算hash值(⽐如使⽤md5算法),得到的结果为 bc4b2a76b9719d91 ,再把这个结果%3,结果为0,那么就把hello这个key放到0号分⽚上. 当然,实际⼯作中涉及到的系统,计算hash的⽅式不⼀定是md5,但是思想是⼀致的.这⾥的分⽚规则是很灵活的.每个分⽚持有的槽位也不⼀定连续。

2024-02-22 11:01:13 1303 1

原创 Arthas

介绍一个超好用的线上代码诊断工具-arthas:可以查看方法的出入参,耗时等,不用加日志,查看比较方便。再到arthas,查看方法入参和返回值使用watch 类路径 方法名 出入参 层级等。切到登录页面或postman接口,请求登录接口,看监视器,即可查看监控方法的出入参。3,查看方法的耗时 trace 类路径 方法名 大于xxms的耗时情况。启动arthas后,选择容器中的应用,选1即可,更多使用命令,按tab键,可查看命令。输入dashboard,可查看控制台。

2024-02-22 10:28:12 295 1

原创 线程池,多线程,面试常问的锁

读写锁就是把读操作和写操作分别进行加锁.读锁和读锁之间不互斥.写锁和写锁之间互斥.写锁和读锁之间互斥.读写锁最主要用在 “频繁读, 不频繁写” 的场景中;优势在于:允许多个线程同时读取共享数据,提高了并发性能,并保证了写操作的独占性,保证数据的一致。如果获取锁失败, 立即再尝试获取锁, 无限循环, 直到获取到锁为止. 第一次获取锁失败, 第二次的尝试会在极短的时间内到来. 一旦锁被其他线程释放, 就能第一时间获取到锁。相比于挂起等待锁,

2023-09-25 21:55:01 97 3

原创 2024届百度秋招研发B卷第一大题

有一颗棋子在坐标(1,1)的位置,每次可以向上或者向右移动奇数单位,不能移动到棋盘外面,无法行动就输了,小红先手,请问小红能否必胜。样例一,棋盘大小为1×1,小红无法行动,输了。样例二,棋盘大小为1×4,小红第一次向右移动3个单位;思路:如果这两个数都是偶数就输了,如果这两个数一奇一偶就赢了,如果都是奇数就输了;对于每组数据,输出一行,如果小红必胜,输出:Yes,否则输出。样例三,棋盘大小为4×1,小红第一次向上移动3个单。接下来t行,每行两个整数n和m,表示棋盘人小。位,小红获胜,朋友无法行动。

2023-09-12 23:10:33 281

原创 初识Redis,Redis常见命令

redis存储汉字时,redis启动客户端的时候,加上一个--raw选项可以使redis客户端自动把二进制数据尝试翻译,redis存的时候不管编码,只存二进制;Redis的命令: (redis支持多种数据结构:key固定是字符串,value是多种类型【字符串,哈希表,列表,集合,有序集合】,每种类型都有不同的命令)也有全局命令,就是能够搭配任意一个数据结构来使用的命令。作为数据缓存:通常缓存20%的热点数据,还有临时性的数据(不用入库的数据,用了就销毁的数据),作为session存储;

2023-09-12 18:23:25 157 5

原创 如何在xshell上运行Tomcat

(首次使用需要加上可执行权限,后序使用就不需要了)

2023-04-22 11:58:47 1025 2

原创 常见的排序算法(插入 希尔 选择 堆 冒泡 快排 归并排序),时间复杂度Java(二)

的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使。若将两个有序表合并成一个有序表,称为二路归并。稳定性:稳定(稳定的有 插入,冒泡,归并))是建立在归并操作上的一种有效的排序算法。时间 复杂度:O(N*logN)最核心的是partition。空间复杂度:O(logN)最核心的地方是merge。时间复杂度:log₂n。该算法是采用分治法(下面是递归的归并排序。

2023-02-05 23:27:46 154

原创 MySQL表的增删改查总结 和 约束条件的详细讲解

还可以程序员设一个自增(auto_increment):由于主键必须要填,还不能重复,MYSQL为了方便大家填写,内置了一个功能,"自增主键",帮助我们自动生成主键的值.唯一ID=时间戳(ms)+机房编号/主机编号+随机因子(不是算术运算符是字符串拼接,不一定ID是数字,ID本质就是字符串)mysql有很多介词什么的很难记,就是SQL的设计风格不一致导致的.MySQL里简单粗暴的做法,直接记录当前 自增逐渐列 里的最大值~保证一个表中的数据匹配另一个表中的值的参照完整性。3)一个表里只能有一个主键。

2023-02-01 01:33:22 238

原创 常见的排序算法(插入 希尔 选择 堆 冒泡 快排 归并排序),时间复杂度Java (一)

反之,两个人都考90分,让后交卷的人排在先交卷的人前面就是不稳定.单独拿出i 和 j 比较,如果j 比i 大,就把j 的值放在i 的位置,j继续向前移,然后j 的值和i 的值比较。(就是逆序的情况下:5 4 3 2 1 j要回退n次(分别回退1,2,3,4,5次),i也回退n次)3. 希尔排序的时间复杂度不好计算,因为gap的取值方法很多,导致很难去计算,因此在。[直接插入排序的使用场景:当数据量小,并且已经趋向于有序的时候,使用直接插入排序]好些树中给出的希尔排序的时间复杂度都不固定;

2023-01-30 10:13:05 297

原创 堆(优先级队列) Java

以下面的第一个图为例子,我们要删除65. 最后调整完变成图二,65被删除,usedsize也变成9.将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。预估结果是这样: 我们把80插入到10下标的位置,然后执行完我们的代码就变成下图.出队(删除):每次删除都是优先级高的元素,出队之后依然要保持大根堆.最大总节点数:n=2^h-1 h= log₂(n + 1)堆中某个节点的值总是不大于或不小于其父节点的值;将最后新插入的节点向上调整,直到满足堆的性质。下图是调整好的大根堆。

2023-01-16 21:27:13 146 3

原创 MySQL的增删改查;MySQL中使用中文-修改成UTF-8字符集

增删改查的前提,是已经把数据库创建好,并且选中了,表也创建就绪了~

2023-01-16 12:32:02 495 3

原创 MySQL基本操作 和 类型总结

•不能拿关键字做表名,如果非要拿关键字做表名加一个反引号 (如:`table`).(补充单引号' '反引号` ` 不要搞混)(一个字符固定几个字节是取决于具体的字符编码.比如Java的Unicode编码.一个字符两个字节.utf8就不一定.)VARCHAR(50):(这是最常用的.)最多存50个字符.也可能更短,动态的根据存入的长度来自适应空间.DECIMAL相当于通过字符串的方式表示浮点数.(优势是表示精确,劣势:消耗时间多,储存空间多).删表操作比删库操作更加危险!不要轻易在生产环境中删表!

2023-01-12 21:59:38 111

原创 二叉树中难题 (Java)

KY11二叉树的遍历及构建(中难)编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入描述: 输入包括1行字符串,长度不超过100。输出描述: 可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。每个输出结果占一行。

2023-01-09 19:39:06 206

原创 二叉树的认识 及 遍历(Java)

概念(认识树):除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个集合

2022-12-30 19:09:56 196

原创 数据结构——队列Queue

循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。rear在0下标插入元素的时候自己走在1下标,rear插入元素的时候始终站在空的格子上。2.根据队列先进先出,把存进队列的元素 出队列 到另一个队列,但是留出最后一个元素(图中的45)接收给他出队列。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(

2022-12-19 04:10:07 1004

原创 Stack 栈的方法+常见习题

方法栈中的数据元素遵守 后进先出 的原则。方法下面总结了栈的方法,以及每个方法在代码中的运用,及图解。下面是方法在代码中的运用分别用到了输出栈顶元素,并删除输出栈顶元素,不删除判断栈里元素是不是为空下面了解栈的实现,自己写出上面6个方法的实现。方法如下,在题目中经常用到后缀表达式处理问题做一个用到后缀表达式的题力扣难度中等根据,求表达式的值。有效的算符包括+、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。两个整数之间的除法只保留整数部分。

2022-12-17 02:21:12 569

原创 链表题 分享

为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。现有一链表的头指针ListNode*pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从起始位置开始走。如果链表带环则一定会在环中相遇,否则快指针先走到链表的末尾。

2022-12-11 23:02:50 216 1

原创 java类和对象(一)

1. 掌握类的定义方式以及对象的实例化2. 掌握类中的成员变量和成员方法的使用3. 掌握对象的整个初始化过程

2022-08-16 17:55:25 250 4

原创 Java类和对象(二)

Java类和对象(二)封装 public和private 访问修饰限定符 自定义包 static成员 代码块 实例代码块 构造代码块 静态代码块 本地代码块(也就是普通代码块)

2022-08-15 21:17:28 369 4

空空如也

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

TA关注的人

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