
Java
文章平均质量分 61
Super_King_
鬼知道我竟然还会写博客,哈哈哈哈哈
展开
-
2025 年 Java 面试高频手写代码题(附核心实现)
题型核心知识点单例模式双重校验锁、枚举实现、静态内部类多线程同步wait/notify 机制、锁优化、阻塞队列数据结构操作链表反转、二叉树遍历(前/中/后序)、哈希表扩展算法实现快排/归并排序、二分查找、动态规划(背包问题)工程问题红包算法、字符串处理、LRU 缓存设计建议:面试前重点练习单例模式、多线程交替打印、链表操作和排序算法,结合代码手写训练与原理分析,确保能清晰解释实现细节和优化思路。原创 2025-02-25 14:48:19 · 557 阅读 · 0 评论 -
leetcode刷题 删除有序数组中的重复项 II
给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。原创 2025-02-11 13:44:09 · 273 阅读 · 0 评论 -
Leetcode刷题 删除有序数组中的重复项
给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。原创 2025-02-11 12:40:52 · 240 阅读 · 0 评论 -
JAVA底层常见面试题
最明显的区别是 ArrrayList底层的数据结构是数组,支持随机访问,而 LinkedList 的底层数据结构是双向循环链表,不支持随机访问。在 Java 7 中,ArrayList 的默认大小是 10 个元素,HashMap 的默认大小是16个元素(必须是2的幂)。poll() 和 remove() 都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,但是 remove() 失败的时候会抛出异常。Array是指定大小的,而ArrayList大小是固定的。转载 2022-10-27 14:17:27 · 819 阅读 · 0 评论 -
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 · 1073 阅读 · 1 评论 -
【Servlet】超详细开发步骤|在idea上配置Tomcat|网页显示当前系统时间
有朋友问到这个,找个详细的博文自己记录下,方便后期查找🔥前言读者朋友大家好,今天开始分享总结有关Servlet 的知识,今天的内容是初识Servlet,书写开发步骤、配置Tomcat、以及在网页上显示当前系统时间等。让我们来认识Servlet 的本质,享受沉浸式学习的成就吧!因为单纯的HTML是一个静态页面,在实际开发中会面临很多的非静态资源的显示场景,此时将无法完成此类需求,因此需要结合起来能够进行逻辑判断的java代码。Servlet 项目对应的是javaweb项目。转载 2022-09-29 10:33:56 · 824 阅读 · 0 评论 -
redis的入门/原理/实战大总结
这部分在我看来是最有意思的,我们有必要了解底层数据结构的实现,这也是我最感兴趣的。比如,你知道redis中的字符串怎么实现的吗?为什么这么实现?你知道redis压缩列表是什么算法吗?你知道redis为什么抛弃了红黑树反而采用了跳表这种新的数据结构吗?你知道hyperloglog为什么用如此小的空间就可以有这么好的统计性能和准确性吗?你知道布隆过滤器为什么这么有效吗?有没有数学证明过?你是否还能很快写出来快排?或者不断优化性能的排序?是不是只会调库了甚至库函数怎么实现的都不知道?真的就是快排。转载 2022-09-20 14:43:28 · 142 阅读 · 0 评论 -
转载 一整套美团面经
一整套美团面经转载 2022-09-19 14:16:33 · 265 阅读 · 0 评论 -
POI HSSFColor 颜色索引对照表
POI HSSFColor 颜色索引对照表。转载 2022-09-01 21:48:20 · 566 阅读 · 0 评论 -
JAVA判断多个日期段有没有重合的时间
JAVA判断多个日期段有没有重合的时间原创 2022-06-21 09:42:30 · 933 阅读 · 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 · 704 阅读 · 0 评论 -
java生成10000人随机姓名及手机号的excel
不多说 上代码,完整的直接执行就ok了。python的也写了个需要的拿走。导出的excel如下图。原创 2021-12-02 15:20:45 · 6001 阅读 · 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 · 198 阅读 · 0 评论 -
关于 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 · 3021 阅读 · 0 评论 -
基于Freemarker模板引擎生成多个Word文件(doc格式),并压缩成Zip格式导出
基于Freemarker模板引擎生成多个Word文件(doc格式),并压缩成Zip格式导出一、前言 之前做项目遇到一个导出word并压缩成zip的功能需求,当时翻了不少百度文章,没找到系统、详尽的实操教学,现在项目做完了,我就在这做一个简单的总结吧。二、环境SpringBoot + Vue + Linux <!--依赖--> <dependency> <groupId>o...转载 2021-08-03 19:20:51 · 1665 阅读 · 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 · 887 阅读 · 0 评论 -
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 · 3750 阅读 · 2 评论 -
freemarker导出word文档——WordXML格式解析
前不久,公司一个项目需要实现导出文档的功能,之前是一个同事在做,做了3个星期,终于完成了,但是在项目上线之后却发现导出的文档有问题,此时,这个同事已经离职,我自然成为接班者,要把导出功能实现,但是我看了他写的那个ftl文档好久,就是没看懂,上面好多<w:pPr>、<w:rPr>、<w:szCs>、<w:t>等看不懂的标签,我也是无奈,在网上搜索“freemarker导出word文档”无果,后来才知道应该搜索的是“WordXML格式解析”。下面是我在做项目的过程转载 2021-05-25 16:48:13 · 2558 阅读 · 0 评论 -
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 · 2114 阅读 · 0 评论 -
如何实现中文汉字进行笔划(笔画)排序?
一、需求描述最近有个需求,要求对列表进行排序,排序规则如下所示:关于汉语拼音排序的很久之前就实现了,已经运行两年了。笔划排序的是刚刚要求添加的需求,因此得想办法实现中文汉字进行笔划排序。二、如何实现中文汉字笔划排序的需求?进过百度搜索,最终搜索到了下面的链接:利用java对基本汉字(unicode编码4E00-9FA5)进行笔画排序下面我们来测试下这个工具类。2.1 测试 StringStrokeComparator排序StringStrokeComparator排序转载 2021-05-21 18:09:56 · 2054 阅读 · 0 评论 -
List集合中的对象判断某个字段是否重复
/** * 判断List<实体类>的对象某个属性是否有重复,有重复true * * @param orderList * @return */ private Boolean 方法名(List<对象> list) { Set<对象> set = new TreeSet<对象>(new Comparator<对象>() { public int com.原创 2021-04-21 15:03:53 · 3979 阅读 · 1 评论 -
苹果应用内购买(IAP),服务器端开发处理流程
最近公司的app,提交appstore审核时,被拒了,理由是:必须使用IAP接口支付,除了apple pay的用户使用门槛要比第三方支付要高很多,而且iap接口,要跟apple公司三七分成,也就是用户支付10元,苹果要分掉你3元(服务费)。这跟国内的第三方支付相比较,APPLE这种费率太TM的黑了。但是没办法,你要上架appstore,你只能使用IAP,这TM就是垄断。首先要登录APPLE开发者中心:https://itunesconnect.apple.com 设置协议,税务,和银行账户信息。这部转载 2021-04-07 18:26:58 · 3719 阅读 · 0 评论 -
接入Apple Pay流程
接入Apple Pay流程最近在做IOS内购的后端事项,所以总结下整个流程,都是参考网上大佬的。首先我们要搞清楚两个概念:苹果支付(Apple Pay)和IOS内购(IAP)苹果支付:是一种支付的方式。和微信支付、支付宝等一样。内购:是只要在iPhone App上购买的不是实物产品(也就是虚拟产品如qq币、皮肤、英雄......) 都需要走内购流程,苹果这里面抽走30%(真想说一句,太黑了)。服务端iOS内购充值,是通过客户端接入iOS的IAP模块(In-App Purchase)后转载 2021-04-07 14:43:05 · 8973 阅读 · 0 评论 -
苹果内购IAP服务端验证-java篇
苹果内购:只要你在苹果系统购买APP中虚拟物品(虚拟货币,VIP充值等),必须通过内购方式进行支付,苹果和商家进行三七开验证模式有两种:Validating Receipts With the App Store 通过访问苹果接口进行验证。Validating Receipts Locally 本地代码解码进行验证官方验证文档地址:https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStor转载 2021-04-07 14:37:46 · 2490 阅读 · 1 评论 -
Java长链接转短链接 MD5
1.将"原始链接(长链接)+key(自定义字符串,防止算法泄漏)"MD5加密2.把加密字符按照 8 位一组 16 进制与 0x3FFFFFFF 进行位与运算,把得到的值与 0x0000003D 进行位与运算,取得字符数组 chars 索引,把取得的字符相加,每次循环按位右移 5 位,把字符串存入对应索引的输出数组(4组6位字符串)3.生成4以下的随机数,从输入数组中取出随机数对应位置的字符串,作为短链,存入数据库或者NoSql解析方式编写一个web处理程序,把从ur(如:http://url转载 2021-01-05 10:56:58 · 895 阅读 · 0 评论 -
从零认识Stream(Java8Stream )
相信Java8的Stream 大家都已听说过了,看起来真的很简洁,但是可能大家不会用或者用的不熟,我们一起学习吧!操作符什么是操作符呢?操作符就是对数据进行的一种处理工作,一道加工程序;就好像工厂的工人对流水线上的产品进行一道加工程序一样。Stream的操作符大体上分为两种:中间操作符和终止操作符中间操作符对于数据流来说,中间操作符在执行制定处理程序后,数据流依然可以传递给下一级的操作符。中间操作符包含8种(排除了parallel,sequential,这两个操作并不涉及到对数据流的转载 2020-12-16 23:37:50 · 195 阅读 · 0 评论 -
JAVA中将一个时间段按固定间隔拆分为List
通过给定的固定的时间段,输出在该时间段内固定间隔的每个时刻的List集合,如果最后的时间间隔不够的话,将结束时间作为最后的时刻。 /** * 获取固定间隔时刻集合 * @param start 开始时间 * @param end 结束时间 * @param interval 时间间隔(单位:分钟) * @return */ public static List<String> getIntervalTimeList(Str转载 2020-12-16 23:10:00 · 1369 阅读 · 0 评论 -
IDEA热部署不生效解决方案(二)
热部署莫名其妙不能用了,所以求助了万能的百度,找到两个方案,方案二完美解决,方案一是上一篇以防后患也记录了一下方法如下:前提:Intellij Idea 采用的是配置自己安装的tomcat问题:修改java文件不能实现热部署,Intellij Idea的配置tomcat选项On’Update action’ 和 ‘On frame deactivation’并没有 update classes and resource原因:在tomcat设置Dep...转载 2020-06-28 14:22:21 · 1582 阅读 · 0 评论 -
IDEA热部署不生效解决方案(一)
由于近期热部署莫名其妙的不能用了所以求助了万能的百度,找到了解决方案。1.pom依赖<!--Spring 官方提供的热部署插件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> .转载 2020-06-28 14:19:09 · 2500 阅读 · 0 评论 -
Java jsoup table 中获取td和tr的值
由于公司最近需要接一下前端table的数据然后解析出来再循环生成表格数据,或者替换表格里的变量,我就来万能的百度求助了,特此记录例 :html中的内容为<table> <tr> <td>user</td> <td>cc</td> </tr> <tr> <td>pass</td> <转载 2020-06-19 16:02:36 · 3243 阅读 · 0 评论 -
java中String.replaceAll方法把换行符(\n)替换为明文显示(\n)或(\\n)
最近需要解析一个JSONArray类型的字符串[{"key":"姓名","value":"XX"},{"key":"资质","value":"从事贵金属投资行业10年国家期货二级分析师上金所荣誉长老"},{"key":"其他","value":""}]在key资质对应的value中包含三条分行显示的信息,那么坑就来了,当JSON解析遇到\n(换行)就会抛出异常,那怎么办?还好,想到了一个对策,就是使用java原生的String.replaceAll方法先把换行(\n)转换成能明...转载 2020-06-19 11:14:04 · 8394 阅读 · 1 评论 -
java通过poi导出excel
excel模板类/** * Created by wang on 2018/9/11. */public class ScoreCertExcelUtil { /** * 打印表格 */ public static HSSFWorkbook print(List<Map<String, Object>> resultList)...原创 2018-11-06 11:46:40 · 285 阅读 · 0 评论 -
List集合按字段排序并输出
先建立一个实体:这个实体就是简单的学生表实体(共有id,name,age,createDatetime四个字段)package com.test.sort;/** * @author wang * @date 2018/11/29 */public class StudentEntity implements Comparable<StudentEntity> {...原创 2018-11-29 10:42:47 · 2031 阅读 · 0 评论 -
java遍历实体类的属性和值
代码如下:原文地址:https://www.cnblogs.com/ynxrsoft/p/7444453.html实体类:public class User implements Serializable { private static final long serialVersionUID = 1L; private String pkid; ...转载 2019-03-06 14:49:04 · 1184 阅读 · 0 评论 -
常用正则表达式!
下面是网上搜到的详细用法,贴出来以防找不到!!!Java正则表达式的语法与示例:https://www.cnblogs.com/lzq198754/p/5780340.htmljava 正则表达式详细用法:https://blog.youkuaiyun.com/qq_30034925/article/details/70216525常用正则表达式,以防忘记特此记录!一...原创 2019-08-22 11:37:07 · 211 阅读 · 0 评论 -
二进制与十进制之间的转换!
进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的"正"字计数法,以及类似的tally mark计数)。 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。 我们常用的就是二进制,八进制,十进制,十六进制了。二进制就是逢二进一,十进制是逢十进一,十六进制是逢十六进一,以此类推,x进制就是逢x进位。十进制就是我们所说...原创 2019-09-27 15:37:01 · 2035 阅读 · 0 评论 -
java调用ssh往远程linux上传文件
最近有用到这个但是我的知识储备不够啊,所以在网上查了好多,后来发现这个大神写的帖子,觉得很好分享给大家,也为自己记录一下,省着以后找不到原文地址: http://blog.youkuaiyun.com/qq_34021712/article/details/66972672 ©王赛超1.导入maven依赖jar包<!-- https://mvnrepository.com/artif...转载 2018-11-06 11:45:28 · 1365 阅读 · 0 评论