加载中...
力扣hot100
合并K个升序链表 链接:https://leetcode.cn/problems/merge-k-sorted-lists/?envType=study-plan-v2&envId=top-100-liked 官方题解——优先队列: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */cla ...
2025-9月论文阅读
PypiGuard: A novel meta-learning approach for enhanced malicious package detection in PyPI through static-dynamic feature fusion CCFC Key Points 静态分析和动态分析结合 Problems 作者提出的问题: RQ1:如何将静态元数据与动态 API 调用行为相结合,以提高开源存储库中恶意软件包检测的准确性和可靠性? RQ2:混合集成元学习框架与传统机器学习和深度学习方法在检测恶意软件包方面相比如何? Notes References 通过识别与流行包非常相似的名字来识别恶意包 Neupane S, Holmes G, Wyss E, Davidson D, De Carli L. Beyond typosquatting:an in-depth look at package confusion. In: Proceedings of the 32nd USENIX conference on sec ...
2025-8月论文阅读
On the Feasibility of Cross-Language Detection of Malicious Packages in npm and PyPI {2023}, {Piergiorgio Ladisa, Serena Elisa Ponta, Nicola Ronzoni, Matias Martinez, Olivier Barais}, {ACSAC'23} Key Points 跨语言恶意包检测 \(GL_4\) XGBoost 香农熵 Summary 本文聚焦 npm(JavaScript)和 PyPI(Python)生态的开源供应链恶意包检测问题,针对现有机器学习方法多局限于单语言、样本稀缺的痛点,提出基于语言无关特征的跨语言检测方案。作者首先构建包含恶意样本(来自 BKC,去重后共 194 个)和良性样本(来自 libraries.io 流行包,共 1640 个)的单语言与跨语言数据集,提取 141 个语言无关特征(如安装钩子使用、字符串香农熵统计、GL₄编码后的同质 / 异质字符串计数等);随后用 DT、RF ...
黑马八股学习
Redis篇 Redis使用场景-缓存 缓存穿透 缓存穿透:查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库。 解决方案一:缓存空数据,查询返回的数据为空,仍把这个空结果进行缓存 优点:简单 缺点:消耗内存,可能会发生不一致的问题(后面万一这个数据真的被添加上数据库,此时缓存中还存在,就会发生不一致) 解决方案二:布隆过滤器(主要作用:拦截不存在的数据),查询请求首先进入布隆过滤器中,布隆过滤器中存在再查缓存,不存在直接返回。 缓存预热时,预热布隆过滤器,指的是有一批热点数据,在添加缓存中,顺便也添加到布隆过滤器中。 优点:内存占用比较少,没有多余key 缺点:实现复杂,存在误判(只能判断数据一定不存在或者可能存在,无法判断数据一定存在) 布隆过滤器详细实现: 底层是用位图-bitmap 布隆过滤器的误判问题: id1和id2的数据是存在的,id3的数据是不存在的,但是通过布隆过滤器的哈希操作,发现id为3的是存在的。 误判率:数组越小误判率就越大,数组越大误判率 ...
2025-7月论文阅读
Backstabber’s Knife Collection: A Review of Open Source Software Supply Chain Attacks {2020}, {Marc Ohm, Henrik Plate, Arnold Sykosch, and Michael Meier.}, {DIMVA} Key Points npm, PyPI, RubyGems Malicious Packages、Vulnerable Packages attack tree Summary 本文聚焦开源软件供应链攻击,手动收集并分析了 2015 年 11 月至 2019 年 11 月间通过 npm、PyPI、RubyGems 分发的 174 个恶意软件包。研究围绕这些恶意包的注入方式、触发时机、执行特征、攻击目标等展开,发现其主要通过打字错误 squatting 注入,常在安装时触发,以数据泄露为主要目标,且存在条件执行、混淆技术使用及集群化等特征。该研究旨在为开源软件供应链攻击的预防、检测与缓解提供数据集和分析依据。 Research ...
MySQL中的覆盖索引
问题: 根据覆盖索引的定义,是不是对一个查询来说是覆盖索引,可能对另一个查询来说就不是覆盖索引,即这个定义是动态的? 解答: 是的,覆盖索引的定义是动态的,具体取决于查询的字段是否完全包含在索引中。覆盖索引的核心在于索引是否包含查询所需的所有列,而这一条件会因查询的不同而变化。以下是详细分析: 覆盖索引的定义 覆盖索引是指当查询的字段(SELECT、WHERE、GROUP BY、ORDER BY等)完全包含在索引中时,查询可以直接从索引中获取数据,无需回表。例如,若查询为 SELECT name, age FROM users WHERE age > 18,且存在一个包含 (name, age) 的复合索引,则该索引即为覆盖索引。 动态性分析 同一索引对不同查询的覆盖性 同一个索引可能对某些查询是覆盖索引,但对其他查询则不是。例如: 查询 SELECT name FROM users WHERE age > 18:若索引包含 name 和 age,则为覆盖索引。 查询 SELECT id, name, age FROM ...
CAS中的ABA问题
ABA问题 ABA的问题指的是在CAS更新的过程中,当读取到的值是A,然后准备赋值的时候仍然是A,但是实际上有可能A的值被改成了B,然后又被改回了A,这个CAS更新的漏洞就叫做ABA。 ABA可能带来的问题 1.数据结构破坏 案例:无锁链表的删除操作 假设链表结构为 A → B → C,线程 T1 和 T2 并发操作: T1 读取头节点 A,准备删除 A,将头节点指向 B。 T2 抢先删除了 A 和 B,插入新节点 D,再将头节点恢复为 A(比如插入新节点 A → D)。 T1 执行 CAS,发现头节点仍为 A,于是将头节点指向 B。 结果:链表结构被破坏(B 可能已被释放,或 D 节点丢失)。 场景:无锁栈的出栈操作 初始状态:栈中有3个元素:A -> B -> C,top指向A。 线程1执行出栈,读取top为A,准备更新为B,此时线程1被挂起。 线程2依次出栈A和B,再将A重新入栈,top仍指向A。 线程1恢复,CAS操作认为top未改变,更新成功,但栈已被破坏。
Thread、ThreadLocal、ThreadLocalMap的联系
问题:一个thread中存储有一个threadLocalMap,一个map中存储着threadLocal变量,一个thread可以有多个threadLocal变量,一个ThreadLocal变量中可以存储多个值,这理解对吗? 你的理解大部分是正确的,但需要稍作修正和补充。以下是分点解释: 1. Thread 与 ThreadLocalMap 的关系 每个线程(Thread)内部维护一个 ThreadLocalMap 123class Thread { ThreadLocal.ThreadLocalMap threadLocals = null; // 存储线程私有变量} 每个线程(Thread)实例都有一个独立的 ThreadLocalMap,用于存储该线程的所有 ThreadLocal 变量。 此 Map 是懒加载的,首次调用 ThreadLocal.get() 或 set() 时才会创建。 2. ThreadLocalMap 的结构 键(Key)是 ThreadLocal 实例,值(Value)是该 ThreadLocal 在当前线程 ...
Java多态与虚方法表:为什么父类引用无法调用子类新增方法?
报错代码: 123456789101112131415161718192021222324252627282930313233343536package com.torch;public class PolymorphismDemo { static class Animal { public void eat(){ System.out.println("动物吃饭!"); } public void work(){ System.out.println("动物可以帮助人类干活!"); } } static class Cat extends Animal { public void eat() { System.out.println("吃鱼"); } ...
Java八股
计算机网络基础篇OSI七层协议: 应用层 表示层 会话层 运输层 网络层 数据链路层 物理层 TCP/IP的四层协议: 应用层 传输层 网络层 网络接口层 五层协议: 应用层(报文) 运输层(报文段-TCP或用户数据报-UDP) 网络层(数据报、分组) 数据链路层(帧) 物理层(比特) 应用层: 协议: TCP UDP SMTP DNS POP3(或IMAP) TFTP TELNET RIP HTTP DHCP FTP SNMP NFS IGMP 应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。 HTTP状态码: 1xx表示通知信息,如请求收到了或正在进行处理2xx表示成功,如接受或知道了。3xx表示重定向,如要完成请求还必须采取进一步的行动。4xx表示客户的差错,如请求中有错误的语法或不能完成。5xX表示服务器的差错,如服务器失效无法完成请求。 传输层: 传输层有两个传输协议,分别是 TCP 面向连接的 点对点的(一对一) 可靠交付 全双工通信 面向字节流 UDP 无连接的 尽最大努力交付,即不 ...
2025-5月论文阅读
Maltracker: A Fine-Grained NPM Malware Tracker Copiloted by LLM-Enhanced Dataset{2024}, {Zeliang Yu, Ming Wen, Xiaochen Guo, and Hai Jin.}, {ISSTA} Zeliang Yu, Ming Wen, Xiaochen Guo, and Hai Jin. 2024. Maltracker: A FineGrained NPM Malware Tracker Copiloted by LLM-Enhanced Dataset. In Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA ’24), September 16–20, 2024, Vienna, Austria. ACM, New York, NY, USA, 13 pages. Key Points AST [ ] 关键点,看文章途中觉得 ...
2025-04-14-2025-04-20论文阅读周报
Software Supply Chain Risk: Characterization, Measurement & Attenuation {2024}, {Butler A.}, {ASE} Butler A. Software Supply Chain Risk: Characterization, Measurement & Attenuation[C]//Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering. 2024: 2506-2509. Key Points 跨项目调用图 关键点,看文章途中觉得很关键的词可以填写在此处 Summary 写完笔记之后最后填,概述文章的内容,以后查阅笔记的时候先看这一段。注:写文章summary切记需要通过自己的思考,用自己的语言描述。忌讳直接Ctrl + c原文。 Research Objective(s) 作者的研究目标是什么? B ...
公告
This is my Blog