目录1. 是什么2. 如何使用3. 原理分析3.1. uml3.2. 构造方法3.3. add方法3.3.1. 确保容量足够容纳新的元素3.3.2. 把元素放入数组最后一个位置3.4. remove方法【按下标删除元素】3.4.1. 把数组index位置之后的数据往前挪3.4.2. 更新size【数 ...
目录1. String1.1. 是什么1.2. 使用1.3. 源码分析1.3.1. 类的定义1.3.2. 构造方法1.3.2.1. 解释new String("test1") != new String("test1")1.3.3. 常量池1.3.3.1. 解释"test2"=="test2"1.3 ...
目录1. 使用2. 原理分析2.1. 构造方法2.2. valueOf方法2.2.1. 范围正在-128-127的从缓存中取2.2.2. 解释Integer.valueOf(1)==Integer.valueOf(1)2.2.3. 解释(Integer val1 = 1) == (Integer v ...
目录1. ReentrantReadWriteLock是什么2. 非公平ReentrantReadWriteLock2.1. 是什么2.2. 怎么使用2.3. 源码分析2.3.1. uml2.3.2. 构造方法2.3.3. 读锁加锁2.3.3.1. 使用AQS加共享锁2.3.3.1.1. 使用Syn ...
只出现一次的数字(136) class Solution { public int singleNumber(int[] nums) { int res = 0; for (int num : nums){ res ^= num; } return res; } } 分析 异或 多数元素(169) ...
我是比较爱用自底向上的自底向上方法不会计算多余情况, 也不用memo存储 不同路径(062) class Solution { public int uniquePaths(int m, int n) { int[][] dp = new int[m][n]; for (int i = 0; i < ...
Viggle Ai视频创作工具(目前全球最好),操作简单、玩法多样、速度快且效果极佳,堪称“爆款视频打造神器”。最佳应用场景为: 【个性化视频制作】 博主最推荐的场景,在这个凡事讲究创新和DIY的时代,老旧俗套的方式必然已经落伍,Ai时代来临改变了这种现状,Ai工具让创作变得高质高量便捷且低成本。例 ...
起因是项目上有一个文件域名,dns解析到linux系统的服务器上,有一个nginx服务反向代理了一个位于nas挂载盘内的文件目录,现在有一个新需求是让客户还是通过这个域名作为访问入口,访问同样位于nas盘中和这个目录同级的另一个目录内的文件。 比如通过nginx反向代理访问的nas盘下的目录路径为/ ...
1.HashMap的结构特点 结构:桶数组 + 链表 / 红黑树 转换时机:(3点) 当链表的长度超过8 时且桶数组的长度大于等于 64,链表就会转换为红黑树。 当链表长度超过8,但是桶数组长度没有到达64,优先扩容,提升桶数组长度。 当红黑树节点 ≤ 6 时,红黑树退化为链表。 链表的查找时间复杂 ...
本文从作者实际痛点出发,到产生愿景,最后再到落地的全过程,并结合实例案例,介绍了一些核心设计思路,希望读者阅读后对vivo分销业务,能有一些了解,也希望能对读者在应用的认证鉴权、流程编排、低代码等方面有所启发。 ...
起因是最近两天收到了线上项目的告警通知,隔一段时间会出现几笔MySQL的死锁Deadlock的错误,错误日志如下: updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: De ...
题⽬描述 把⼀个数组最开始的若⼲个元素搬到数组的末尾,我们称之为数组的旋转。 输⼊⼀个⾮递减排序的数组的⼀个旋转,输出旋转数组的最⼩元素。 例如数组 {3,4,5,1,2} 为 {1,2,3,4,5} 的⼀个旋转,该数组的最⼩值为 1 。 NOTE:给出的所有元素都⼤于 0 ,若数组⼤⼩为 0 ,请 ...
当在浏览器地址栏输入网址并回车后,浏览器会通过以下步骤加载网页: 域名解析(DNS 查询) 缓存层查找:浏览器首先检查本地缓存(如浏览器缓存、系统缓存)、hosts 文件以及网络运营商的 DNS 缓存中是否存在该域名的 IP 地址。 递归查询:若缓存中未找到对应记录,浏览器会向本 ...
推荐阅读: Java线程池实现原理及其在美团业务中的实践 - 美团技术团队 1.线程池是什么? 定义:工具 解决问题:在并发环境下,系统不能够确定在任意时刻中,有多少任务需要执行,有多少资源需要投入。 用途:管理和复用线程,减少线程的创建和销毁开销。 总结:线程池是用来管理和复用线程的工具,它可以减 ...
https://www.baeldung.com/jpa-join-column https://docs.oracle.com/javaee/6/api/javax/persistence/JoinColumn.html https://stackoverflow.com/questions/37 ...
大家好,我是R哥。 前阵子讲了《华为 OD 的职级与薪资。。》,今天咱们来聊聊华为 OD 的面试流程,很多同学初听华为 OD 就以为是普通的外包嘛,应该不难进,这就大错特错了! 华为 OD 可不是一般的外包,华为 OD 的面试流程也一点不比其他公司简单,对技术和项目的要求非常高,反而更考验候选人的全 ...
最长递增子序列(300) class Solution { public int lengthOfLIS(int[] nums) { int res = 1; for(int num : nums){ int idx = findLarge(nums, res, num); nums[idx] = ...
题⽬描述 ⽤两个栈来实现⼀个队列,完成队列的 Push 和 Pop 操作。 队列中的元素为 int 类型。 思路及解答 栈的特性是先进后出 队列的特性是先进先出 有两个栈 stack1 , stack2 ; 如果有新的数据进⼊,那么我们可以直接 push 到 stack1 ; 如果需要取出数据,那么 ...
起因是安全团队反馈了一个漏洞,说通过公网域名访问内网中的一个SpringBoot服务的根路径,原本是域名的url变成了服务的内网的ip。 简略版的网络拓扑如下: SpringBoot版本:2.2.5.RELEASE server.servlet.context-path=/demo 通过域名访问的u ...
使用druid-spring-boot-starter 1.2.11作为数据库连接池 + dynamic-datasource-spring-boot-starter 3.4.1作为多数据源支持,并且使用了druid的数据库密钥加密功能,启动项目发现日志中有如下日志: [2024-10-31 15: ...