自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 问答 (1)
  • 收藏
  • 关注

原创 生物资产开发平台SpringCould项目启动过程中遇到的问题

SpringCloud项目启动时问题

2022-07-20 17:54:20 244 1

原创 线程池源码解析

1. 线程池Java引入Excutor框架将任务的提交和执行进行解耦,只需要定义好任务,然后提交给线程池即可。1.1 线程池的3个好处降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。1.2 线程池实现类ThreadPoolExecutor的构造方法参数构造方法

2022-05-27 22:30:02 503

原创 源码的学习收获

1. break退出外层循环使用标识符定义for循环跳出位置public static void main(String[] args) { int m = -1; outCycle: for (int i = 0; i < 10; i++) { for (int j = 0; j< 12; j++) { if (i == 3 && j == 4) { m = 5;

2022-05-27 19:35:29 123

原创 Leetcode Hot100系列之滑动窗口

1. 438. 找到字符串中所有字母异位词1.1 思路求字符串的子串问题—考虑滑动窗口要求找到字符串p的异构词,所以窗口的大小必须与字符串p的长度一样。方法一: 在每个窗口判断字符子串是否与字符串p相同即可。方法二:在方法一的基础上,不用统计滑动窗口和字符串每种字母的数量,而是使用数组统计滑动窗口和字符串p中每种字母的数量差;并引入变量differ来记录当前窗口与字符串p中数量不同的字母的种类,并在滑动窗口的过程中维护它,如果differ等于0,就表明滑动窗口中每种类型的字母与字符串p的字母类型

2021-12-05 21:01:09 116

原创 Leetcode Hot100系列136.只出现一次的数字

1. 136. 只出现一次的数字1.1 思路其余元素均出现两次,只有一个元素出现一次,首先想到的就是使用 HashMap,统计每个元素出现的次数,然后找到value值为1的key值即可。但题目要求不使用额外空间来实现,所以Java集合都不能使用,这时就要想到 异或运算二进制按位XOR运算:java中的位运算符号^是将两个数按二进制的形式进行异或运算,然后再转换为十进制。异或运算有如下性质:一个数和0做XOR运算等于本身:a⊕0 = a一个数和其本身做XOR运算等于0:a⊕a = 0XOR运

2021-12-02 20:32:41 559

原创 Leetcode Hot100系列128. 最长连续序列

128. 最长连续序列思路题目要设计时间复杂度为O(n)的算法解决此问题。考虑枚举数组中的每个数xxx,考虑其为起点,不断尝试匹配x+1,x+2,...x+1,x+2,...x+1,x+2,...,是否存在,假设最长匹配到了x+yx+yx+y,那么其长度为y+1y+1y+1。匹配的过程,暴力的方法是O(n)O(n)O(n)遍历数组去看它后面连接的数是否存在,更高效的方法是用一个哈希表存储数组中的数,这样查看一个数是否存在即能优化至O(1)O(1)O(1)的时间复杂度。但是这样算法的时间复杂度最坏情况

2021-11-30 19:50:58 155

原创 Leetcode Hot100系列283移动零

leetcode Hot100-283.移动零

2021-11-30 14:40:52 49

原创 Java集合的排序

1. Java中集合的排序方法当需要进行排序的数据存放在实现了集合Collection接口的类Map,set,list等这些中时,可以使用Collection实现的sort方法对数据进行排序,sort方法主要有以下两种:public static <T extends Comparable<? super T>> void sort(List list)public static void sort(List list, Comparator<? super T&gt

2021-07-13 23:10:48 2516

原创 Java字符串之StringBuffer和StringBuilder模拟栈

1. StringBuffer与StringBuilderStringBuffer和StringBuilder与String之间的主要区别String是不可变对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内容的字符串不要用 String 。当对字符串进行修改的时候,特别是字符串对象经常改变的情况下,需要使用 StringBuffer 和 Str

2021-07-06 22:51:09 456

原创 Java字符串之split方法

1. 正则表达式(regular expression)正则表达式是一种可以用于模式匹配和替换的规范;正则表达式由普通字符以及特殊字符组成的文字模式;正则表达式可以用来搜索、编辑和处理文本。1.1 常用语法1.1.1 字符范围[xyz] : 表示可能是x,可能是y,也可能是z;[^xyz] : 表示表示x,y,z中的任意一个;[a-zA-Z] : 表示是英文字母;[0-9] : 表示是数字;1.1.2 简单字符.:匹配任意的字符;\d:表示数字;\D:表示非数字;\s:表示由

2021-07-05 12:02:09 11578

原创 java集合转换(数组、list、Set和Map)

1. List与Set之间的互相转换1.1 List转化为Set List<String> list = new ArrayList<>(); //方式一Set<String> set1 = new HashSet<>(list);//方式二Set<String> set2 = new HashSet<>();team2.addAll(list);1.2 Set转化为ListSet<String> set

2021-06-24 23:56:14 281 2

原创 HashMap和HashSet的嵌套使用

1. HashMap和HashSet的基本使用import java.util.HashMap;import java.util.HashSet;import java.util.Map;import java.util.Set;Map<Integer, Integer> map = new HashMap<>();Set<Integer> set = new HashSet<>();2. HashMap和HashSet的嵌套使用分析:我

2021-06-22 15:11:57 718

原创 leetcode动态规划总结之01背包和完全背包问题

背包问题分类01背包理论有N件物品和一个最大承载重量为W 的背包。第i件物品的重量是weight[i],其价值是value[i] 。每件物品只能用一次,求解将哪几种物品装入背包里物品价值总和最大。现在假设如下:有一个容量为4kg的背包,现有如下物品物品重量(kg)价格(元)手办11500笔记本43000手机22000求背包能装入物品的最大价值。确定dp数组的含义dp[i][j]表示从下标为[1,i]的物品中任意选择,能装入容量为j的背包的

2021-06-16 23:13:27 896 2

原创 leetcode动态规划总结之理论基础

1. 基本思想将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。注:简单来说就是后面的状态对应的值依赖于前面状态对应的值,也可以将其理解为dp[0]~dp[n]构成的数列,而且数列的元素之间存在递推关系,只不过有时递推关系的表达式比较难以把握而已2. 解题步骤根据所求的问题确定dp数组;根据i = 0,1,2,3等状态值较小时的dp[i]值推导出递推关系式。然后用状态值较大时的dp值验证一下。3.举例leetcode–746.使用最小花费爬楼梯746.使用

2021-06-10 19:09:59 76

原创 leetcode链表总结之虚拟(哑)节点

1. 虚拟(哑)节点(dummy node)在链表的操作中,添加一个哑节点(dummy),让它的指针指向链表的头节点。ListNode dummy = new ListNode(val, head);return dummy.next;好处:省略头节点为空时的情况的判断;头节点和其他节点进行同样的操作时,由于头节点没有前一个节点,需要对这种情况进行单独判断,但加入虚拟节点以后,头节点就可以当作普通节点看待。eg1:leetcode–203.移除链表的元素示例2属于头节点为空的情况;示

2021-06-01 20:35:17 3990

原创 前缀转中缀、后缀表达式的转换

1 括号法假设运算式为a + b * c + (d * e + f) * g步骤按照运算符的优先级给所有的运算单位加括号运算式为((a + (bc)) + (((de) + f) *g))将中缀转化为前缀和后缀前缀:把运算符移动到对应括号的前面,然后去掉括号即可+(+(a*(bc)) * (+(*(de) f)g))++a * bc * + * defg后缀:把运算符移到对应的括号后面,然后去掉括号即可(((a(bc) *) + (((de) * f) + g) * ) +a

2021-05-28 20:45:51 3174

原创 2 计算机网络的性能指标

1 速度1.1 速率速率即数据率或称数据传输率或比特率。连接在计算机网络上的主机在数字信道上传送数据位数的速率。单位是b/s,kb/s,Mb/s,Gb/s,Tb/s1.2 带宽计算机网络中,带宽用来表示网络通信线路传送数据的能力,通常是指单位时间内从网络中某一点到另一点所能通过的“最高数据率”,单位是"比特每秒",即网络设备所支持的最高速度。1.3 吞吐量吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s,kb/s,Mb/s等。吞吐量受网络带宽或网络的额定速率的限制。.

2021-04-19 21:23:21 234

原创 java修改字符串中的字符或子字符串

1 不可变字符串String对象是不可变的,它的内容是无法改变的。String s = "Java";s = "HTLM";上面的代码无法改变字符串的内容所以,要改变String类型变量s的值,只能对其进行覆盖。2 StringBuilder和StringBuffer类类相同点不同点String用于字符串类型变量一旦创建,值无法改变StringBuilder/StringBuffer用于字符串类型变量创建后可以添加、插入或追加新内容2.1 修改St

2021-04-19 19:48:05 807

原创 java判断字符串中是否包含某个字符

1 使用String类的contains()方法contains()方法用于判断字符串中是否包含指定的字符或字符串。语法如下:public boolean contains(CharSequence chars)参数类型:CharSequenceCharSequence是一个接口,实现这个接口的类有:CharBuffer、String、StringBuffer和StringBuilder。可以理解为“CharSequence描述的就是字符串”。所以,用contains方法判断字符串中是否包含某个字

2021-04-19 12:32:20 76943

原创 计算机网络的概念、组成、功能和分类

1 概念计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。2 功能数据通信资源共享(硬件、软件、数据)分布式处理提高可靠性负载均衡3 组成3.1 组成部分包含硬件、软件、协议。3.2 工作方式按照工作方式将计算机网络分为边缘部分以及核心部分。边缘部分:用户直接使用,用于通信、资源共享等;核心部分:为边缘部分服务。3.3 功能组成按照功能组成分为通信子网和资源子网。6. 通信子网:实现数据.

2021-04-18 17:09:15 1309

原创 使用python画图时无法显示中文标签

@## 标题使用python画图时无法显示中文标签**解决方式: **在plt.show()的上方加入两行代码:plt.rcParams['font.sans-serif'] = ['SimHei'] #显示中文标签plt.rcParams['axes.unicode_minus'] = False

2021-03-31 20:11:23 941

空空如也

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

TA关注的人

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