剑指offer-29、最⼩的k个数
题⽬描述
输⼊ n 个整数,找出其中最⼩的 K 个数。例如输⼊ 4,5,1,6,2,7,3,8 这 8 个数字,则最⼩的 4 个数字是 1,2,3,4 。
思路及解答
排序法
最直接的思路是将数组排序后取前k个元素
public ArrayList<Integer> GetLeastNumbers_Solution(int[] input, int k) {
ArrayList<Integer> result = new ArrayList<>();
...
技术面:Java并发(线程同步、死锁、多线程编排)
线程同步的方式有哪些?
线程同步
线程同步,是多线程编程中的一种机制,用于协调多个线程的执行顺序,确保它们在共享资源或关键操作上按照预定的规则运行,避免因并发访问导致的数据不一致、竞态条件(Race Condition)等问题。
线程同步的方式有哪些?
synchronized 关键字,通过 JVM 内置的锁机制实现线程同步,确保同 ...
SSE技术总结
参考
https://www.ruanyifeng.com/blog/2017/05/server-sent_events.html
SSE本质
严格地说,HTTP 协议无法做到服务器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息(streaming)。
也就是说,发送的不是一次性的数据包,而是一个数据流,会连续不断地发送过来。这时,客户端不会关 ...
剑指offer-28、数组中出现次数超过⼀半的数字
题⽬描述
数组中有⼀个数字出现的次数超过数组⻓度的⼀半,请找出这个数字。例如输⼊⼀个⻓度为 9 的数组 {1,2,3,2,2,2,5,4,2} 。由于数字 2 在数组中出现了 5 次,超过数组⻓度的⼀半,因此输出 2 。如果不存在则输出 0 。
思路及解答
哈希表法(HashMap)
哈希表法通过统计每个数字的出现次数来解决问题。遍历数组时,使 ...
springboot~SpringData自定义Repository的正确方式
获取Spring Data自定义Repository中的实际类型
在Spring Data中,当您实现自定义Repository时,由于Java类型擦除的原因,泛型参数T在运行时确实会被擦除为Object类型。不过,有几种方法可以获取实际的类型信息。
你想在自定义的 Spring Data Neo4j Repository 接口中通过默认方法获取泛型 T 的实际类型,这个想法很自然,但 ...
敏感词性能提升14倍优化全过程 v0.29.0
敏感词性能调优系列
v0.29.0 敏感词性能优化提升 14 倍全过程
v0.29.1 敏感词性能优化之内部类+迭代器内部类
v0.29.2 敏感词性能优化之基本类型拆箱、装箱的进一步优化的尝试
v0.29.3 敏感词性能优化之繁简体转换 opencc4j 优化
背景
有一天,群里收到小伙伴提的一个问题,为什么程序 sensitive-word 第一次执行这么慢?
se ...
写了一个java桌面版pdf转图片程序
1.引入依赖
<!-- pdf工具 -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>3.0.5</version>
</dependency>
<!-- 常用工具类 -->
<dependency>
<groupId>org.apache.commons ...
Java 8 终于要被淘汰了!带你速通 Java 8~24 新特性 | 又能跟面试官吹牛皮了
Java 8 终于要被淘汰了!
记得我从大一开始学的就是 Java 8,当时还叫做新特性;后来 Java 11 出了,我用 Java 8;Java 17 出了,我用 Java 8;Java 21 出了,我还用 Java 8。
随你怎么更新,我用 Java 8!
我之前带大家做项目的时候,还是强烈建议大家用 Java 8 的,为什么现在说 Java 8 要被淘汰了呢?
在我看来主要是因 ...
国产化PDF处理控件Spire.PDF教程:如何在 Java 中通过模板生成 PDF
在企业级应用开发中,生成 PDF 文档是一项非常常见的需求。无论是发票、报告、合同,还是其他业务文档,开发人员通常都需要一种高效、稳定的方式来创建 PDF。与其逐行绘制 PDF 内容,不如直接利用 模板 ——常见的模板形式包括 HTML 模板 和 DF 模板 ,开发者只需将动态数据填充进去,就能快 ...
day08-fire
重写/多态/类型转换/其他
重写
子类和父类拥有同名非静态(static)方法时会发生重写
父类的引用可以指向子类(和多态有关)
B类
package com.example.demo.oop.obj;
public class B {
public void a(){
System.out.println("B=>a()");
}
}
A类
package com.example.demo.oop.obj;
public class A extends ...
工作需求记录:处理用户隐私数据,AES对称加密工具类,Crypto库及其使用
今天在处理文档时遇到了一个新的接口需求:如何加密收到的入参数据,并把返回的数据解密?在处理涉及用户个人信息和隐私时,通常数据会经过MD5或SHA的算法进行哈希,我们只需要把这些数据做加密处理即可。数据的加密方法千变万化,这里使用最流行的AES加密举例说明。
AES也称Advanced Encryption Standard高级加密标准,他 ...
突破层级壁垒:Java通过递归实现目录结构的扁平化解析
@目录前言简介一、 定义核心接口二、实现接口逻辑三、创建测试类四、验证结果总结
前言
请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、微信公众号:白码梦想家
提示:以下是本篇文章正文内容,下面案例可供参考
简介
在日常 Java 开发中,我们经常会遇到目录遍历与路径收集的需求 —— 比如统计某个文件夹下 ...
在国企干了 5 年 Java,居然不知道 RPC?这正常吗?
在国企干了 5 年 Java,居然不知道 RPC 是什么?这正常吗?
这很正常。
如果你没接触过分布式微服务项目,基本是接触不到 RPC 这玩意的,并不是个人能力的问题。
不过 RPC 是程序员需要掌握的知识,也是面试官可能会问的题目。
什么是 RPC?RPC 和 HTTP 有什么区别?
下面用 2 分钟给大家讲清楚!
什么是 RPC ...
国产化Excel处理组件Spire.XLS教程:Java 向 Excel 写入数据的3种高效方法(含代码示例)
手动向 Excel 工作表中输入数据既耗时又容易出错,尤其是在处理大型数据集时。而借助合适的 Java Excel 库,可以简化数据输入这一流程。
E-iceblue旗下Spire系列产品,是文档处理领域的佼佼者,支持国产化信创。本文将详细介绍如何使用 Spire.XLS for Java 库,通过 3 种高效方法完成 Java 向 Excel 工作表的数据 ...
剑指offer-27、字符串的排列
题⽬描述
输⼊⼀个字符串,按字典序打印出该字符串中字符的所有排列。例如输⼊字符串 abc ,则按字典序打印出由字符 a , b , c 所能排列出来的所有字符串 abc , acb , bac , bca , cab 和 cba 。
输⼊描述:输⼊⼀个字符串,⻓度不超过9(可能有字符重复),字符只包括⼤⼩写字⺟
思路及解答
递归回溯(使用Set去重)
看到题 ...
TransmittableThreadLocal线程池上下文传递
我们来全面深入地探讨 TransmittableThreadLocal (TTL)。这是一个在异步编程中极其重要的工具,特别是在使用线程池的场景下。
一、 核心概念与使用场景
1. 它是什么?
TransmittableThreadLocal 是阿里巴巴开源的库,是 InheritableThreadLocal 的增强版。它解决了 InheritableThreadLocal 在线程池等复用线程的场景下无法 ...
JVM的组成部分
我们先说说 JVM 是什么,Java Virtual Machine(Java 虚拟机)。我们可以把它理解成一个 "虚拟的计算机" —— 它不是真实的硬件设备,而是一段能运行 Java 字节码的程序。
如果 Java 代码是 "世界通用的食谱",那么 JVM 就是 "能看懂这份食谱的厨师"。不管是用 Windows 、Mac 还是 Linux,只要安装了对应平台的 J ...
Java集合框架实战应用指南
一、ArrayList在具体开发中的使用场景
1、动态数据存储
ArrayList常用于需要动态增减数据的场景,比如读取数据库查询结果时,结果集数量不确定。其自动扩容特性避免了数组手动扩容的麻烦。
2、缓存实现
作为内存缓存容器时,ArrayList的随机访问效率(O(1))比LinkedList更适合高频读取操作。例如电商系统中的商品分类列表 ...
国产化PDF处理控件Spire.PDF教程:在 Java 中将 PDF 转换为 CSV(轻松提取 PDF 表格)
在处理以 PDF 格式存储的报告、发票或数据集时,开发人员常常需要在电子表格、数据库或分析工具中复用其中的表格数据。一个常见的解决方案是 使用 Java 将 PDF 转换为 CSV,因为 CSV 文件轻量、结构化,并且几乎在所有平台上都兼容。与文本或图片导出不同,PDF 转 CSV 的核心是 从 PDF 中提取表格并保存为 CSV。 ...
Java中使用正则表达式的正确打开方式
正则表达式基础语法
Java正则表达式基于java.util.regex包,核心类是Pattern和Matcher。基本语法遵循标准正则规范:
. 匹配任意单个字符(除换行符)
\d 匹配数字,等价于 [0-9]
\w 匹配单词字符,等价于 [a-zA-Z0-9_]
\s 匹配空白字符(空格、制表符等)
[] 字符集合,如 [abc] 匹配a、b或c
^ 在字符集中表示否定,如 [^a ...