自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2025 年 Java 面试高频手写代码题(附核心实现)

‌题型‌‌核心知识点‌单例模式双重校验锁、枚举实现、静态内部类‌多线程同步wait/notify 机制、锁优化、阻塞队列‌数据结构操作链表反转、二叉树遍历(前/中/后序)、哈希表扩展‌算法实现快排/归并排序、二分查找、动态规划(背包问题)‌工程问题红包算法、字符串处理、LRU 缓存设计‌建议‌:面试前重点练习单例模式、多线程交替打印、链表操作和排序算法,结合代码手写训练与原理分析,确保能清晰解释实现细节和优化思路‌。

2025-02-25 14:48:19 523

原创 搭建一个 Spring Boot 项目,解决jdk与springboot版本不匹配

搭建一个 Spring Boot 项目,解决jdk与springboot版本不匹配

2025-02-17 20:15:57 1180

原创 如何设计一个线程池(白话讲解例子2)

线程池可以简单理解为一个管理和复用线程的 “小团队”,下面从设计线程池要考虑的几个关键部分来进行白话讲解

2025-02-13 15:52:18 249

原创 如何设计一个线程池(白话讲解例子1)

如何设计一个线程池。

2025-02-13 15:47:26 230

原创 leetcode刷题 删除有序数组中的重复项 II

​给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。

2025-02-11 13:44:09 267

原创 Leetcode刷题 删除有序数组中的重复项

​给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。​

2025-02-11 12:40:52 230

原创 LeetCode刷题 合并两个有序数组

给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。

2025-02-11 11:32:15 189

原创 LeetCode刷题 移动零

给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。

2025-02-10 20:35:35 172

原创 LeetCode刷题 移除元素

数组移除元素

2025-02-10 20:30:16 404

原创 Leecode刷题—字母异位词分组

给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。

2025-02-10 16:36:13 458

转载 解决IDEA项目external libraries依赖包消失的问题

有时候电脑重启后,再打开IDEA上的项目时会出现external libraries目录下的依赖包都消失了的情况,只剩下了一个JDK的包。原文链接:https://blog.youkuaiyun.com/weixin_44853310/article/details/131633163。版权声明:本文为优快云博主「ThatMonth」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。1.删除项目目录下的.idea文件夹。2.IDEA重新打开项目。

2023-11-14 14:26:26 1256 1

原创 java读取各种类型文件,获取文件字数

【代码】java读取各种类型文件。

2023-07-04 18:26:50 1064

转载 java二维码定位获取坐标并替换原来二维码

一个东西的技术实现,都是站在前人的肩膀上去累积,优化,总结的,我大概在网上看了下,貌似没有人遇到这种需求,参考了opencv java版本的代码,毕竟不是做图像识别的,这方面的知识有限,所以用了zxing实现.于是自己硬着头皮上,基本实现了我们的业务需求,但,二维码的坐标识别还是有些许的差别,还是把代码分享出来,起抛砖引玉的作用,同时,也希望大家能够在这个基础上进行优化...3.获取原图片里二维码的信息和坐标信息(x,y,w,h),并保存起来。2.包含二维码的图片,对原图片里面二维码进行识别并定位。

2023-07-04 18:16:29 708

转载 PostgreSQL数据外部表使用(postgres_fdw)

我们在上面已经创建了外部服务器并指定了要连接的外部数据库的信息,但是我们并没有指定外部服务器的用户信息,所以我们接下来要创建一个用户映射。我们已经创建了外部表服务和用户映射,接下来我们将要创建一个外部表,用来访问外部数据库的表数据。外部表的列必须匹配被引用的远程表。但是,如果你在外部表对象的选项中指定了正确的远程名称,你可以使用不同于远程表的表名和/或列名。现在你只需要从一个外部表SELECT来访问存储在它的底层的远程表中的数据。注意:一个外部表可以被声明比底层的远程表较少的列,或者使用一种不同的列序。

2023-02-23 10:53:10 2939

原创 postgresql和mysql数据库中使用sum聚合函数查询,结果出现不确定的小数

double,float属于非标准数据类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值。需要精确存储数值,会采用标准数据类型,不会使精度丢失,比如银行账户里的金额。在MySql数据库中,也会出现这样的问题,大致的解决方式差不多。后来发现,是数据库中的数据字段类型使用错误导致的。查询结果会随机出现长串小数,页面显示不正常,但数据库直接查询单条数据结果是正常的。,比如decimal(10,3)或者numeric(10,3),均可。如果不需要那么准确,也可以直接把查出的数据四舍五入转成。

2022-11-14 19:08:41 2288

转载 JAVA底层常见面试题

最明显的区别是 ArrrayList底层的数据结构是数组,支持随机访问,而 LinkedList 的底层数据结构是双向循环链表,不支持随机访问。在 Java 7 中,ArrayList 的默认大小是 10 个元素,HashMap 的默认大小是16个元素(必须是2的幂)。poll() 和 remove() 都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,但是 remove() 失败的时候会抛出异常。Array是指定大小的,而ArrayList大小是固定的。

2022-10-27 14:17:27 815 1

转载 程序员书单,你读过几本?

Head First HTML5 Programming(中文版),完整扫描版。Head First Servlet JSP (中文版),完整扫描版。[软件架构设计:程序员向架构师转型必备(第二版)].温昱.扫描版。Head First Mobile Web(中文版),完整扫描版。Head First C#(第2版)(中文版),高清完整扫描版.Head First HTML与CSS(第2版),中文完整扫描版。Head First C#(第2版)(中文版),高清完整扫描版。

2022-10-24 17:08:30 174

转载 哈希表冲突及处理冲突的方法(含例子)

哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表成为哈希表。基本思想:首先在元素的关键字K和元素的位置P之间建立一个对应关系f,使得P=f(K),其中f成为哈希函数。创建哈希表时,把关键字K的元素直接存入地址为f(K)的单元;查找关键字K的元素时利用哈希函数计算出该元素的存储位置P=f(K).

2022-10-20 16:12:48 3247

原创 MyBatis在做查询的时候传入0值会不生效

在Java开发过程中,遇到的坑,通常会通过判断是否有传递参数来写活sql,那就免不了使用mybatis,最近在使用mybatis出现传0无效得情况。那是因为在mybatis中自动判断Integer为0时为false,即 and saleOrgId!有个需求,传0表示A类型,传其他数字表示B类型,传递1得时候是有效得,传0无效,会查出所有得数据。所以我们只需要将后面得 and saleOrgId!= '' 去掉就行了。所以这个判断就不生效了。

2022-10-12 17:36:01 1067 1

转载 【Servlet】超详细开发步骤|在idea上配置Tomcat|网页显示当前系统时间

有朋友问到这个,找个详细的博文自己记录下,方便后期查找🔥前言读者朋友大家好,今天开始分享总结有关Servlet 的知识,今天的内容是初识Servlet,书写开发步骤、配置Tomcat、以及在网页上显示当前系统时间等。让我们来认识Servlet 的本质,享受沉浸式学习的成就吧!因为单纯的HTML是一个静态页面,在实际开发中会面临很多的非静态资源的显示场景,此时将无法完成此类需求,因此需要结合起来能够进行逻辑判断的java代码。Servlet 项目对应的是javaweb项目。

2022-09-29 10:33:56 806

原创 Linux查询日志 打印日志

----------------------------- 日志文件 查询 -------------------------------- 查询关键词首次出现位置(空格下一页,回车下一行),q退出 -n显示行号。-- 查询关键词位置,可上下翻。-- 从102行开始显示20行。-- 查看文件多少行 多少条。-- 按时间导出到文件。-- 按行数导出到文件。整理了下 仅做记录。

2022-09-29 09:53:52 2685

转载 redis的入门/原理/实战大总结

这部分在我看来是最有意思的,我们有必要了解底层数据结构的实现,这也是我最感兴趣的。比如,你知道redis中的字符串怎么实现的吗?为什么这么实现?你知道redis压缩列表是什么算法吗?你知道redis为什么抛弃了红黑树反而采用了跳表这种新的数据结构吗?你知道hyperloglog为什么用如此小的空间就可以有这么好的统计性能和准确性吗?你知道布隆过滤器为什么这么有效吗?有没有数学证明过?你是否还能很快写出来快排?或者不断优化性能的排序?是不是只会调库了甚至库函数怎么实现的都不知道?真的就是快排。

2022-09-20 14:43:28 139

转载 转载 一整套美团面经

一整套美团面经

2022-09-19 14:16:33 261

转载 select......for update会锁表还是锁行?

select查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁。使用主键id为条件去查询,然后开启另一个事务去更新数据,更新被阻塞,加锁了,锁定要查询的id为1的行数据。如果是普通字段(没有索引/主键),那么select ..... for update就会进行锁表。如果查询条件用了索引/主键,那么select ..... for update就会进行行锁。另一个事务我去更新另外一条数据,如果我更新成功了,就是锁行,失败了就是锁表。

2022-09-05 16:33:21 753

转载 POI HSSFColor 颜色索引对照表

POI HSSFColor 颜色索引对照表。

2022-09-01 21:48:20 556

原创 JAVA判断多个日期段有没有重合的时间

JAVA判断多个日期段有没有重合的时间

2022-06-21 09:42:30 926 1

转载 java时区——获得某一时区的某一时刻一天的开始结束时间

代码地址:https://code.youkuaiyun.com/luo4105/javautilclass/tree/master 下的TimeZoneTest.java文件。需求如下:计算出某一时区和某一时刻的一天的开始时间和日结束时间,并转成本地时区的时间显示。这里我们可以通过两种方式实现:第一种是通过时间的时区转化得到,如GMT+2一天的开始结束时间在GMT+8显示,我们可以先得到GMT+2时间的0点,再转成GMT+8的时间,并打印显示;第二种是通过两个时区的偏移值计算得到,还是上面GMT+2时

2022-04-17 09:56:13 700

原创 python导出excel,随机生成姓名、手机号

朋友想要个随机手机号的excel,python写法比java简单些。

2021-12-02 16:44:47 1626

原创 java生成10000人随机姓名及手机号的excel

不多说 上代码,完整的直接执行就ok了。python的也写了个需要的拿走。导出的excel如下图。

2021-12-02 15:20:45 5966 1

转载 十大经典排序算法(动图演示)

0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。 不稳定:如果a原本在b的前面,而a=b,排序之后 a...

2021-11-24 18:27:40 197

转载 PostgreSQL的日期/时间函数

零、前言公司里有一台阿里云RDS数据库用了PPAS(Postgres PlusTM Advanced Server),在处理日期/时间时遇到一些问题,花了点时间整理如下。一、获取当前时间select now()select current_timestampselect localtimestampselect clock_timestamp()有时候,我们不需要这么完整细致的时间,自然就有select current_dateselect current_timeselec

2021-11-24 18:07:35 14490 1

原创 postgresql 基础sql

postgresql 基础sql

2021-11-24 17:56:39 673

转载 关于 NPOI 报 Invalid column index (256). Allowable column range for BIFF8 is (0..255) or (‘A‘..‘IV‘) 错误

当看到这个错误的时候,网上搜索可以会有些说列数有限制之类的说法,这个说法是相对于 Office 2003 的,在 Office 2007 之前,最多只可以创建256列;在 Office 2007 之后,可以创建的列数大多了,使用 Office 2013 实测最多可以创建16384列。解决办法:其实换用另外一个 NPOI 中的类就可以了,参见以下代码:var workbook = new XSSFWorkbook(); // 最多只能创建 16384 列//var workb...

2021-11-04 10:42:21 3000

转载 基于Freemarker模板引擎生成多个Word文件(doc格式),并压缩成Zip格式导出

基于Freemarker模板引擎生成多个Word文件(doc格式),并压缩成Zip格式导出一、前言  之前做项目遇到一个导出word并压缩成zip的功能需求,当时翻了不少百度文章,没找到系统、详尽的实操教学,现在项目做完了,我就在这做一个简单的总结吧。二、环境SpringBoot + Vue + Linux <!--依赖--> <dependency> <groupId>o...

2021-08-03 19:20:51 1655 1

转载 sqlserver数据库类型对应Java中的数据类型

下表列出了基本 SQL Server、JDBC 和 Java 编程语言数据类型之间的默认映射:SQL Server 类型 JDBC 类型 (java.sql.Types) Java 语言类型 bigint BIGINT long timestamp binary BINARY byte[] bit BIT

2021-07-08 10:50:29 881

原创 Java中利用freemarker模板动态生成word含表格

最近公司有导出word的需求,由于word的样式有的很复杂所以记录一下Java中利用freemarker模板动态生成word含表格,以防以后忘记。配置项目的gradle文件,xxx.gradle文件里配置好拷贝ftl文件的代码(绿色部分是需要添加的代码,gradle版本不一样文件路径也不同,下图是4.0版本路径)2.4版本 into "${buildDir}/classes/main"4.0版本into "${buildDir}/classes/java/main"...

2021-05-26 19:04:18 3738 2

转载 freemarker导出word文档——WordXML格式解析

前不久,公司一个项目需要实现导出文档的功能,之前是一个同事在做,做了3个星期,终于完成了,但是在项目上线之后却发现导出的文档有问题,此时,这个同事已经离职,我自然成为接班者,要把导出功能实现,但是我看了他写的那个ftl文档好久,就是没看懂,上面好多<w:pPr>、<w:rPr>、<w:szCs>、<w:t>等看不懂的标签,我也是无奈,在网上搜索“freemarker导出word文档”无果,后来才知道应该搜索的是“WordXML格式解析”。下面是我在做项目的过程

2021-05-25 16:48:13 2529

转载 freemarker/ftl模板/导出doc 单元格合并注意事项(一)

在现有模板上添加新表格数据word 导出 2003版xml 和默认版本xml是有区别的,如果已经创建好的ftl模板文件,后期维护添加图表,则必须使用同样版本的xml进行模板数据的追加。一下说明下合并单元格标签是使用1上下单元格合并<w:vmerge w:val="restart"/> 代表从哪一行开始合并 ,<w:tr>代表一行数据 ,然后到下一个的哪一一个单元格结束 <w:vmerge/> 需要成对出现,要求必须写在<w:tcPr&g...

2021-05-25 16:23:01 2099

转载 如何实现中文汉字进行笔划(笔画)排序?

一、需求描述最近有个需求,要求对列表进行排序,排序规则如下所示:关于汉语拼音排序的很久之前就实现了,已经运行两年了。笔划排序的是刚刚要求添加的需求,因此得想办法实现中文汉字进行笔划排序。二、如何实现中文汉字笔划排序的需求?进过百度搜索,最终搜索到了下面的链接:利用java对基本汉字(unicode编码4E00-9FA5)进行笔画排序下面我们来测试下这个工具类。2.1 测试 StringStrokeComparator排序StringStrokeComparator排序

2021-05-21 18:09:56 2025

转载 IntelliJ IDEA修改项目名字(gradle)

有时候修改很多次都达不到自己想要看到的样子,看这一篇就够了使用的是gradle构建的项目首先项目里找到这个,然后在里面修改自己想要的项目名称这里修改名称然后file->project structure接着关闭项目,去本地文件夹,修改项目所在文件夹的名称重启ideaok————————————————版权声明:本文为优快云博主「natural_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://b

2021-05-13 16:13:30 791

空空如也

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

TA关注的人

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