2.Java SDK源码分析系列笔记-String系列
目录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.4. equals方法1.3.5. toCharArray方法1.3.6. toString1.3.7. valueOf1.3.7.1. 解释String.valueOf("test3") == String.valueOf("tes ...
1.Java SDK源码分析系列笔记-Integer
目录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 val2 = 1)2.2.4. 解释(Integer val1 = 128) != (Integer val2 = 128)
1. 使用
public class IntegerTest
{
public static void ...
23. Java JUC源码分析系列笔记-ReentrantReadWriteLock
目录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. 使用Sync尝试加共享锁2.3.3.1.1.1. 判断是否需要阻塞读【非公平锁】2.3.3.1.1.2. 快速尝试加锁失败,那么改用死循环加锁2.3.3.1.2. ...
hot100之技巧组题目
只出现一次的数字(136)
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for (int num : nums){
res ^= num;
}
return res;
}
}
分析
异或
多数元素(169)
class Solution {
public int majorityElement(int[] nums) {
int res ...
hot100之多维动态规划
我是比较爱用自底向上的自底向上方法不会计算多余情况, 也不用memo存储
不同路径(062)
class Solution {
public int uniquePaths(int m, int n) {
int[][] dp = new int[m][n];
for (int i = 0; i < m;i++){
dp[0] = 1;
}
for (int j = 0; j < n; j++){
...
Viggle Ai视频创作最佳应用场景?
Viggle Ai视频创作工具(目前全球最好),操作简单、玩法多样、速度快且效果极佳,堪称“爆款视频打造神器”。最佳应用场景为:
【个性化视频制作】
博主最推荐的场景,在这个凡事讲究创新和DIY的时代,老旧俗套的方式必然已经落伍,Ai时代来临改变了这种现状,Ai工具让创作变得高质高量便捷且低成本。例如:
女朋友/老婆生 ...
记一次nginx访问快捷方式指向的文件夹失败的排查解决过程
起因是项目上有一个文件域名,dns解析到linux系统的服务器上,有一个nginx服务反向代理了一个位于nas挂载盘内的文件目录,现在有一个新需求是让客户还是通过这个域名作为访问入口,访问同样位于nas盘中和这个目录同级的另一个目录内的文件。
比如通过nginx反向代理访问的nas盘下的目录路径为/mnt/picture/,访问的url为:ht ...
【学习OR面试】HashMap
1.HashMap的结构特点
结构:桶数组 + 链表 / 红黑树
转换时机:(3点)
当链表的长度超过8 时且桶数组的长度大于等于 64,链表就会转换为红黑树。
当链表长度超过8,但是桶数组长度没有到达64,优先扩容,提升桶数组长度。
当红黑树节点 ≤ 6 时,红黑树退化为链表。
链表的查找时间复杂度是 O(n),当链表长度较长时, ...
三方系统集成(低代码)平台实践
作者:vivo IT 平台团队- Wang Qin
本文从作者实际痛点出发,到产生愿景,最后再到落地的全过程,并结合实例案例,介绍了一些核心设计思路,希望读者阅读后对vivo分销业务,能有一些了解,也希望能对读者在应用的认证鉴权、流程编排、低代码等方面有所启发。
一、背景和痛点
本文首先对vivo分销业务系统(简称V-Work,V-W ...
记一次项目上MySQL死锁Deadlock的排查优化过程
起因是最近两天收到了线上项目的告警通知,隔一段时间会出现几笔MySQL的死锁Deadlock的错误,错误日志如下:
updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock;
try restarting transaction ### The error may exist in com/.../XXXMa ...
剑指offer-6、旋转数组的最小数字
题⽬描述
把⼀个数组最开始的若⼲个元素搬到数组的末尾,我们称之为数组的旋转。
输⼊⼀个⾮递减排序的数组的⼀个旋转,输出旋转数组的最⼩元素。
例如数组 {3,4,5,1,2} 为 {1,2,3,4,5} 的⼀个旋转,该数组的最⼩值为 1 。
NOTE:给出的所有元素都⼤于 0 ,若数组⼤⼩为 0 ,请返回 0 。
思路及解答
在这⾥最重要的特征是 ...
一次HTTP请求
当在浏览器地址栏输入网址并回车后,浏览器会通过以下步骤加载网页:
域名解析(DNS 查询)
缓存层查找:浏览器首先检查本地缓存(如浏览器缓存、系统缓存)、hosts 文件以及网络运营商的 DNS 缓存中是否存在该域名的 IP 地址。
递归查询:若缓存中未找到对应 ...
【学习OR面试】请你介绍一下线程池(1)
推荐阅读:
Java线程池实现原理及其在美团业务中的实践 - 美团技术团队
1.线程池是什么?
定义:工具
解决问题:在并发环境下,系统不能够确定在任意时刻中,有多少任务需要执行,有多少资源需要投入。
用途:管理和复用线程,减少线程的创建和销毁开销。
总结:线程池是用来管理和复用线程的工具,它可以减少线程 ...
springboot~hibernate实现外键表加载
https://www.baeldung.com/jpa-join-column
https://docs.oracle.com/javaee/6/api/javax/persistence/JoinColumn.html
https://stackoverflow.com/questions/37542208/what-is-joincolumn-and-how-it-is-used-in-hibernate
在 JPA 中,通过外键自动获取关联对象的值通常使用关系映射注解(如 @ManyToOne)来实现。以下是 ...
华为 OD 的面试流程。。
大家好,我是R哥。
前阵子讲了《华为 OD 的职级与薪资。。》,今天咱们来聊聊华为 OD 的面试流程,很多同学初听华为 OD 就以为是普通的外包嘛,应该不难进,这就大错特错了!
华为 OD 可不是一般的外包,华为 OD 的面试流程也一点不比其他公司简单,对技术和项目的要求非常高,反而更考验候选人的全面能力和抗压能力。
华为 ...
hot100之动态规划下
最长递增子序列(300)
class Solution {
public int lengthOfLIS(int[] nums) {
int res = 1;
for(int num : nums){
int idx = findLarge(nums, res, num);
nums[idx] = num;
if (idx == res) res++;
}
return res;
}
priv ...
剑指offer-5、两个栈实现⼀个队列
题⽬描述
⽤两个栈来实现⼀个队列,完成队列的 Push 和 Pop 操作。 队列中的元素为 int 类型。
思路及解答
栈的特性是先进后出
队列的特性是先进先出
有两个栈 stack1 , stack2 ;
如果有新的数据进⼊,那么我们可以直接 push 到 stack1 ;
如果需要取出数据,那么我们优先取出 stack2 的数据,如果 stack2 ⾥⾯数据是空 ...
Spring Boot 使用 Tomcat 作为容器时访问根 context-path 302分析
起因是安全团队反馈了一个漏洞,说通过公网域名访问内网中的一个SpringBoot服务的根路径,原本是域名的url变成了服务的内网的ip。
简略版的网络拓扑如下:
SpringBoot版本:2.2.5.RELEASE
server.servlet.context-path=/demo
通过域名访问的url如下:
https://domain.cn/demo
访问之后url转变为:
http://10.x.1/demo/
...
dynamic-datasource detect druid publicKey,It is highly recommended that you use the built-in encryption method
使用druid-spring-boot-starter 1.2.11作为数据库连接池 + dynamic-datasource-spring-boot-starter 3.4.1作为多数据源支持,并且使用了druid的数据库密钥加密功能,启动项目发现日志中有如下日志:
[2024-10-31 15:42:55.343] - [INFO ] - [15336] - [240E04791E60243BB7BE00FEE00CC8F33BE822D8CFE09DDE00D10000] - [main] ...
什么是ollama?如何安装ollama和应用
一、ollama是什么?
Ollama 是一个专注于本地部署和运行大语言模型(LLM)的开源工具,由美国公司 Ollama Inc. 开发。它提供了简单的命令行界面和 HTTP API,使开发者能够在本地环境快速部署、运行和交互各种开源 LLM,无需依赖云服务。
自己对ollama的理解
ollama是一个开源的LLM的工具,管理市面上现有的大模型,通过ol ...