自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AQS是什么?

当一个线程池获取锁等待后,线程会挂起await,线程挂起的操作在synchronize里基于entryList将线程放入waitSet的等待池里,当被唤醒的时候再放入EntryList的双向链表中。如:ReentrantLock拿锁资源时,发现被锁资源正在被占用,此时需要等待,就将没有拿到锁的资源封装成node,addWait(node)放入AQS的双向链表中排队。同理的,AQS也提供了这样类似的功能,当线程挂起,就放入ConditionObject的双向链表中等待,被唤醒时,放入AQS的双向链表中排队。

2023-07-02 20:43:45 347

原创 【算法】蒙德里安的梦想

例如当 N=2,M=4 时,共有 5 种方案。当 N=2,M=3 时,共有 3 种方案。求把 N×M 的棋盘分割成若干个 1×2 的长方形,有多少种方案。当输入用例 N=0,M=0 时,表示输入终止,且该用例无需处理。每组测试用例占一行,包含两个整数 N 和 M。每个测试用例输出一个结果,每个结果占一行。核心 : 先放横着的,再放竖着的。输入包含多组测试用例。

2023-06-24 14:34:24 206 1

原创 线程池的状态

这个 ctl 维护工作线程个数及线程池的状态,int32 位的数据类型,高3位维护线程状态,低29位维护工作线程对的数量。

2023-06-21 00:27:12 142

原创 ThreadLocal内存泄露的问题

ThreadLocal存储数据是使用ThreadLocalMap来存的,ThreadLocalMap基于Entry[]实现,存储数据时,本身ThreadLocal作为key来存取value数据。

2023-05-25 19:57:59 151

原创 docker安装elasticsearch

docker安装elasticsearch。

2023-05-09 22:23:50 625

原创 相差为k的数对数量

思路:使用哈希表存储每个出现的次数,枚举原数组,将每个数字 加上 或减去 k,如果哈希表中存在加上或减去k之后的数,答案累加上该数出现的次数。+ - 操作后,将枚举的数字在哈希表中减去 1 ,避免后续出现重复。

2023-04-18 19:33:30 139

原创 Arraylist 与 LinkedList的区别

ArrayList基于动态数组实现;LinkedList基于链表实现。对于随机index访问的get和set方法,ArrayList的速度要优于LinkedList。因为ArrayList直接通过数组下标直接找到元素;LinkedList要移动指针遍历每个元素直到找到为止。新增和删除元素,LinkedList的速度要优于ArrayList。因为ArrayList在新增和删除元素时,可能扩容和复制数组;LinkedList实例化对象需要时间外,只需要修改指针即可。

2023-03-29 00:55:39 73

原创 java基础面试10题

跨平台性指的是java的一次编译,可以在多个平台运行,即一次编译到处运行。原理:java程序编译成.class文件后,运行在平台上的java虚拟机会将程序逻辑解释给本地系统,让本地系统底层去执行,说白了就是java程序不会与系统的底层打交道,需要java虚拟机这个中介传话。只要平台上安装有java虚拟机,都能够在该平台运行java程序。

2023-03-05 01:31:04 655

原创 SpringCloud的五大组件功能

用户的请求将不再直接访问服务,而是通过线程池中的空闲线程来访问服务,如果线程池已满,或者请求超时,则会进行降级处理。同时,服务提供方与Eureka之间通过 “心跳” 机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服务列表中剔除。服务器支持的线程和并发数有限,请求一直阻塞,会导致服务器资源耗尽,从而导致所有其它服务都不可用,形成雪崩效应。作用是提供的一个分布式配置管理工具,它的作用是集中管理微服务系统的配置文件,为微服务系统提供外部化的配置支持。作用是实现服务治理,即服务注册与发现。

2023-03-05 01:27:16 1420

原创 Java的基本数据类型有哪些?

Java的基本数据类型有哪些

2023-02-28 00:09:18 182

原创 【算法】得分最高的单词集合Leetcode.1255

根据字母得分情况表score,字母 ‘a’, ‘b’, ‘c’, …, ‘z’ 对应的得分分别为 score[0], score[1], …请你帮忙计算玩家在单词拼写游戏中所能获得的「最高得分」:能够由 letters 里的字母拼写出的 任意 属于 words 单词子集中,分数最高的单词集合的得分。你将会得到一份单词表 words,一个字母表 letters (可能会有重复字母),以及每个字母对应的得分情况表 score。本场游戏的「得分」是指:玩家所拼写出的单词集合里包含的所有字母的得分之和。

2023-02-27 23:58:49 136

原创 【算法】笨拙的手指

奶牛贝茜正在学习如何在不同进制之间转换数字。但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。例如,如果她将数字 14 转换为二进制数,那么正确的结果应为 1110,但她可能会写下 0110 或 1111。贝茜不会额外添加或删除数字,但是可能会由于写错数字的原因,写下包含前导 0 的数字。给定贝茜将数字 N 转换为二进制数字以及三进制数字的结果,请确定 N 的正确初始值(十进制表示)。输入格式。

2023-02-24 09:54:10 112

原创 mysql数据库出现Expression #3 of SELECT list is not in GROUP BY clause

mysql数据库出现 :Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘xxxx’ which is not functionally dependent on columns in GROUP BY clause;

2023-02-22 15:38:33 511

原创 【算法】八数码

在一个 3×3 的网格中,1∼8这 8 个数字和一个x恰好不重不漏地分布在这 3×3 的网格中。在游戏过程中,可以把x与其上、下、左、右四个方向之一的数字交换(如果存在)。例如,示例中图形就可以通过让x先后与右、下、右三个方向的数字交换成功得到正确排列。现在,给你一个初始网格,请你求出得到正确排列至少需要进行多少次交换。

2023-01-11 18:15:35 124

原创 【算法】食物链

思路:初始化n个集合,p[x] = x 为祖宗节点,祖宗节点的不同表示不同的集合。定义一个数组d,代表每个节点到祖宗节点的距离,d[x] mod 3 得到的结果0,1,2 表示不同的动物。对每个说法进行分析,如果说 x和y不在同一个集合,将x与y存入同一个集合中,根据符合题意的说法更新距离d[x]与d[y]。

2023-01-04 20:56:27 312

原创 【算法】模拟队列

使用数组模拟,hh为队头指针,tt为队尾指针,当队列为空时 tt < hh

2022-12-07 14:48:27 281

原创 【算法】二分模板

2.将区间[l, r]被分为[l, mid-1]和[mid, r]时使用。将区间[l, r]被分为[l, mid]和[mid+1, r]时使用。

2022-11-27 23:15:54 102

原创 SpringSecurity的简单应用

可根据需求,自定义过滤器,并放到过滤器链中。自定义一个配置SecurityConfig。

2022-10-24 23:47:50 210

原创 SpringSecurity入门

基本原理:SpringSecurity本质是一个过滤器链。

2022-10-22 21:11:46 125

转载 PriorityQueue说明

优先级队列是无限制的,但具有内部*容量,*用于控制用于存储队列中元素的数组的大小。当元素添加到优先级队列时,其容量会自动增加。未指定增长政策的详细信息。如果多个元素被绑定为最小值,则头部是这些元素之一 - 关系被任意打破。依赖于自然排序的优先级队列也不允许插入不可比较的对象(这样做可能导致。保证以任何特定顺序遍历优先级队列的元素。,具体取决于使用的构造函数。提供的迭代器和方法spliterator()或队列构造时提供的Comparator。优先级队列的元素根据其。访问在队列的头部的元件。......

2022-08-26 00:16:42 98

原创 jdk1.8.zip下载及配置

原本电脑上装的是jdk14的环境,但是java的期末作业是设计一个applet程序,这早就过时的东西因为环境版本太高,不能正常运行,被迫换成8的环境。但是网上找的居然都是要付费,不付费的链接偏偏是百度云,下载还要下个百度云…官网的下载还要登录…麻了,只想要压缩包的。被迫百度云,还下了半天。怕以后找起来还麻烦,存到了自己的网盘。有需要的可以下载:下载地址 密码:配置环境:配置方法...

2022-07-07 18:53:23 3801 5

原创 RabbitMQ的高级特性【二】

Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就是DLX。消息成为死信的三种情况:1、队列的消息达到了限制时;2、消费者拒绝接收消费消息,basicNack/basicReject,且不把消息重新放入目标队列中,requeue为false;3、原队列存在消息过期设置,消息到达超时时间未被消费;队列绑定死信交换机:设置参数: x-dead-letter-exchange 和 x-dead-letter-routing-ke

2022-07-07 00:08:31 173

原创 RabbitMQ的高级特性【一】

在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。rabbitmq 整个消息投递的路径为:producer—>rabbitmq broker—>exchange—>queue—>consumer我们将利用这两个 callback 控制消息的可靠性投递.在rabbitTemplate定义ConfirmCallBack回调函数1.2退回模式回退模式: 当消息发送给Exchange后,Exchang

2022-07-04 23:36:12 279

原创 c++ 第六章第五题

#include <iostream>#include<string>using namespace std;class Shape{public: virtual float area() const=0; virtual string getName() const=0;};//三角形class Triangle:public Shape{ private: double height; double width; public: vir

2022-04-28 11:46:16 663

原创 docker常用命令及使用

安装Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,文章基于CentOS 7 安装Docker。 官网:https://www.docker.com# 1、yum 包更新到最新yum update# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yum install -y yum-utils device-mapper-persistent-data lvm2# 3、 设

2022-02-02 13:07:13 2070 4

原创 Nginx实现负载均衡

docker创建三个容器,三个服务端口分别为224,1224,1225:修改Nginx配置文件,添加反向代理upstream,实现负载均衡:upstream zhieasy{ server 127.0.0.1:224; server 127.0.0.1:1224; server 127.0.0.1:1225;}server{ listen 80; listen 443 ssl http2; server_name api.zhiyit

2022-01-07 15:53:07 1355

原创 【蓝桥】植树

题目描述小明和朋友们一起去郊外植树,他们带了一些在自己实验室精心研究出的小树苗。小明和朋友们一共有 n个人,他们经过精心挑选,在一块空地上每个人挑选了一个适合植树的位置,总共 n个。他们准备把自己带的树苗都植下去。然而,他们遇到了一个困难:有的树苗比较大,而有的位置挨太近,导致两棵树植下去后会撞在一起。他们将树看成一个圆,圆心在他们找的位置上。如果两棵树对应的圆相交,这两棵树就不适合同时植下(相切不受影响),称为两棵树冲突。小明和朋友们决定先合计合计,只将其中的一部分树植下去,保证没有互相冲突的树

2021-12-19 17:15:15 896 2

原创 Leetcode206.反转链表

206. 反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]输入:head = [1,2]输出:[2,1]双指针:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNod

2021-12-12 18:52:37 381

原创 常用数据存储结构的定义(C语言)

//存储的数据类型默认为整数型 //线性表:顺序存储typedef struct{ int elem[MAXSIZE];//存储数据的一维数组 int last;//最后一个元素的下标 } SeqList; //线性表:链式存储 typedef struct node{ int data; struct node *next;}LNode,*LinkList;//栈:顺序栈typedef struct{ int elem[];//存放栈中元素的一维数组 i

2021-12-06 20:44:07 2659

原创 【蓝桥】跳跃

题目描述小蓝在一个 n行 m列的方格图中玩一个游戏。开始时,小蓝站在方格图的左上角,即第 11 行第 11 列。小蓝可以在方格图上走动,走动时,如果当前在第 r 行第 c列,他不能走到行号比 r 小的行,也不能走到列号比 c 小的列。同时,他一步走的直线距离不超过 33。例如,如果当前小蓝在第 33 行第 55 列,他下一步可以走到第 33 行第 66 列、第 33 行第 77 列、第 33 行第 88 列、第 44 行第 55 列、第 44 行第 66 列、第 44 行第 77 列、第 55 行第

2021-12-05 18:19:37 2932

原创 LeetCode506.相对名次

LeetCode506. 相对名次给出 N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”(“Gold Medal”, “Silver Medal”, “Bronze Medal”)。(注:分数越高的选手,排名越靠前。)示例:输入: [5, 4, 3, 2, 1]输出: ["Gold Medal", "Silver Medal", "Bronze Medal", "4", "5"]解释: 前三名运动员的成绩为前三高的,因此将

2021-10-31 17:39:00 143

原创 LeetCode 496.下个更大的数

LeetCode 496. 下一个更大元素 I给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释: 对于

2021-10-24 17:31:41 2369

原创 LeetCode 495. 提莫攻击

LeetCode 495. 提莫攻击题目:在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。示例1:输入: [1,4], 2输出: 4原因: 第 1 秒初,提莫开始对艾希进行攻击并使其立即中毒。中毒状态会维持 2 秒钟,直到第 2 秒末结束。第 4 秒初,提莫再次攻击艾希,使得艾

2021-10-17 19:00:06 75

原创 Mybatis多表联查

​ 之前写代码一直用for循环读写数据库操作,直到在某个公众号看到一篇每日离职小技巧的文章,才知道问题的严重性。”读写数据库操作,写在for循环中,什么子查询,关联查询,左连接,右连接,通通不用,就是要先查一张表,然后遍历结果,再查另一张表…”。想想这不就是我嘛?这才明白当读取上万数据的时候,服务器内存是非常容易爆掉的,吓的我连夜学习了多表关联查询,,最终写了mapper.xml里的一对多查询如下: <resultMap id="NoteVO" type="com.easy.domain.Not

2021-10-08 20:22:33 134

原创 【算法】字符串中的单词数

力扣第434题:字符串中的单词数统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: “Hello, my name is John”输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 “Hello,” 算作 1 个单词。解题:1.做字符的拆分:s.split(" "),得到一个新的数组", , , , ( 空格空格空格 )a, eaefa" 这个测试用例,数组中会存在 “” 元素,这不是我们想要的,所以需要

2021-10-07 16:27:02 201

原创 dubbo基础

什么是DubboApache Dubbo 是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。同时 Dubbo 是高度可扩展的,用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。Dubbo3 基于 Dubbo2 演进而来,在保持原有核心功能特性的同时, Dubbo3 在

2021-09-29 14:21:08 144

原创 Spring Cloud基础

什么是Spring Cloud​ 正如Spring官网所言:Spring Cloud为开发人员提供工具,用于快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)。分布式系统的协调导致锅炉板模式,使用Spring云开发人员可以快速建立实现这些模式的服务和应用程序。它们在任何分布式环境中都能很好地工作,包括开发人员自己的笔记本电脑、裸机数据中心和云铸造等托管平台。Spring Cloud 将现在非常流行的一些技

2021-09-26 22:09:53 151

原创 栈的基本操作(C语言)

栈的基本操作(C语言)#include <stdio.h>#include <stdlib.h>//栈的结构体typedef struct SqStack{ int *base; int *top; int stacksize;} SqStack;//初始化栈int InitStack(SqStack *s){ s->base=(int *)malloc(10*sizeof(int)); if(!s->base){ exit(-1);

2021-09-24 17:53:41 110

原创 递归版二分查找

递归版二分查找使用递归进行二分查找,可以拆分成多个子问题。全范围二分查找:等价于三个子问题:左边找(递归)中间比右边找(递归) public static int binarySearch(int findNum,int front,int end,int[] nums){ if (end<front){ return -1; } int mid=(front+end)/2; if (find

2021-09-24 17:39:00 112

原创 判断是否为2的整数次方

用一条语句判断一个整数是不是2的整数次方。在二进制中,2的整数次方的数只有一个1,用位运算&就可做判断if((num-1)&num==0){ System.out.println("是2的整数次方");}

2021-09-17 10:24:58 82

空空如也

空空如也

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

TA关注的人

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