- 博客(26)
- 收藏
- 关注
原创 【开发随记】JAVA超大文件的读取和写入实现(附demo)
因近期工作需要对超大单文本文件进行读取和写入,经过简单研究分别写了读取类和写入类供项目使用。现在简单整理出来分享。核心思想就是通过MappedByteBuffer进行读取和写入。
2022-12-19 15:52:15
4505
6
原创 【开发随记】JAVA+POI+自定义注解+反射构建自定义工具类实现快捷简便的Excel模板化导出(附demo代码)
**注解-标识一个类是用于导出excel的类wqin48//value值即为sheet名Stringvalue();}解释说明该注解用在希望导出的实体类的类名上方,用以标注该类需要被导出,且能够被我们接下来会编写的自定义工具类识别然后正确导出。其中value字段记录了sheet名,因为我的项目需求中单个导出的Excel文件只存在一个sheet页的情况,因此这次开发过程中不需要考虑单文件多sheet的适配情况。/**注解-标识一个字段是需要导出excel的字段wqin48。.........
2022-08-01 15:50:46
3725
3
原创 【开发随记】国密SM2的简单运用和踩坑
最近因为工作需要,项目中需要采用国密加密,最后根据需求采用了SM2加密。这里简单总结一下用法和踩的坑,供分享和交流。1.依赖引入后端依赖引入(Maven,pom.xml): <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.70&
2022-05-27 18:25:34
6532
1
原创 【学习笔记】0004. JAVA_Servlet学习笔记简化版
Servlet笔记简化版1 Servlet概述什么是Servlet?Servlet是运行在web服务器中的小型Java程序(动态资源)。通常通过HTTP接收和响应来自Web客户端的请求。Servlet的作用接收浏览器发送的请求,接收请求数据对请求处理,然后响应数据给浏览器2 Servlet入门实现Servlet接口(SUN指定的动态资源程序标准)Servlet程序入门IDEA创建一个web项目src下创建一个java文件,定义一个类,实现servlet接口重写接口里必
2022-01-18 19:22:37
234
原创 【学习笔记】0003. JAVA线程创建的简单整理
一、创建线程的三种方式1. 继承Thread类Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是native方法,它将通知底层操作系统,最终由操作系统启动一个新线程,操作系统将执行run()。这种方式创建线程很简单,通过自己的类直接extends Thread,并重写run()方法,就可以自动启动新线程并执行自己定义的run()方...
2022-01-12 20:00:27
163
原创 【学习笔记】0002. JAVA实现字符串反转(10种方法)
本人自己思考+网络搜罗,分类整理了以下4类9种方法:A类:使用JAVA原生方法-A1:使用StringBuffer的reverse方法-A2:使用StringBuilder的reverse方法B类:遍历字符串(字符数组)实现-B1:将字符串转变为字符数组,遍历该数组的一半,依次将头尾开始对应的字符交换-B2:逆向遍历s,正序拼接出一个新的字符串-B3:正向遍历s,将取出的字符拼接形成中间字符串,将中间字符串拼接在下一个字符的后面-B4:从首位两边同时遍历,交换首位下标位置的字
2022-01-09 17:45:16
3937
原创 【每日一题】Day0019:力扣题库NO.1629. 按键持续时间最长的键(java实现)
今天的题目比较简单,就不多说了。时间准备看看String的一些细致的知识点和源码里一些方法的实现。链接如下:力扣1629https://leetcode-cn.com/problems/slowest-key/代码如下:package cn.daycode.leetcode;public class SlowestKey { public static void main(String[] args) { Solution s = new Solution();.
2022-01-09 11:26:48
400
原创 【每日一题】Day0018:力扣题库NO.1614. 括号的最大嵌套深度(java实现)
老规矩先链接。力扣1614括号的最大嵌套深度https://leetcode-cn.com/problems/maximum-nesting-depth-of-the-parentheses/题目其实要求的东西很简单,但是描述了非常多的内容。简单题有一个好的地方,测试用例不太会用特别极端的情况,适合前期练手。本来有自己的想法,但是实现过程中发现存在漏洞,然后看到最末尾的提示:The depth of any character in the VPS is the ( number of left
2022-01-07 18:41:11
642
原创 【每日一题】Day0017:力扣题库NO.71. 简化路径(java实现)
这一题还是蛮有趣的。先上链接。力扣71简化路径https://leetcode-cn.com/problems/simplify-path/根据提示:·1 <= path.length <= 3000·path 由英文字母,数字,'.','/' 或 '_' 组成。·path 是一个有效的 Unix 风格绝对路径。基本上不用考虑特别极端的情况,因此可以专心解答。思路比较直接,"/"是做为分隔符分割path字符串,对每一个子串进行判断,做出对应操作即可。代码如下:pac
2022-01-06 19:37:29
287
原创 【每日一题】Day0016:力扣题库NO.1576. 替换所有的问号(java实现)
元旦假期玩的嗨的不行,该收收心回来继续做题了~老规矩先上链接。力扣1576替换所有的问号https://leetcode-cn.com/problems/replace-all-s-to-avoid-consecutive-repeating-characters/今天是个简单题,思路上也很简单,注意以下开头和结尾的特殊情况,以及连续多个?相连的情况即可。代码如下:package cn.daycode.leetcode;public class ModifyString { publi
2022-01-05 20:14:58
284
原创 【学习笔记】0001. JDBC入门学习
前言java基础知识和数据库基础知识学完之后,就可以入门JDBC了。什么是JDBC?Java Database Connectivity,是sun公司设定的一套数据库标准,它只是规范,不做具体实现。数据库厂商根据JDBC标准,实现自家的驱动Driver。如:mysql驱动com.mysql.cj.jdbc.Driver,Oracle的驱动oracle.jdbc.OracleDriver。有了这套解决方案,java就可以访问数据库中的数据了。使用步骤1. 正确导入jar包2. 获取和数据库
2021-12-31 17:48:06
589
原创 【每日一题】Day0015:力扣题库NO.507. 完美数/完数(java实现)
废不多说先放链接。力扣507完美数https://leetcode-cn.com/problems/perfect-number/题目还是很简单的,思路也很明确,没有特别要说明的点,这一题似乎是学习过程比较经典的题目了,大体上考了循环的知识点还有一些基础语法知识。代码:package cn.daycode.leetcode;public class CheckPerfectNumber { public static void main(String[] args) {
2021-12-31 15:33:25
288
原创 【每日一题】Day0014:力扣题库NO.1995. 统计特殊四元组
考完试了,新学业不紧张的情况下有可以每日做题了~链接:力扣1995统计特殊四元组https://leetcode-cn.com/problems/count-special-quadruplets/题目很直接,复杂的算法也想不到,只有简单粗暴的遍历所有情况。不过简单思考了一下,稍微地进行了一点点性能上的优化,将数组排序后再遍历可以省略掉部分遍历,具体见注释。代码如下:package cn.daycode.leetcode;import java.util.Arrays;public c
2021-12-29 19:57:20
525
1
原创 【每日一题】Day0013:力扣题库NO.1705. 吃苹果的最大数目
废不多说先链接:力扣1705吃苹果的最大数目https://leetcode-cn.com/problems/maximum-number-of-eaten-apples/又是一题现实日常会碰到的问题。这题对于我的难点在于实现,思路一开始便有了:现实中处理类似问题也是类似思路(之前在食品企业工作,颇有感触):食品饮料这种快消品相对保质期短,生产和销售厂商一定会本着先进先出的原则,即优先售卖大日期的产品(临保质期)。不过其实往往生产日期过了个把月的产...
2021-12-24 11:24:28
201
原创 【每日一题】Day0012:力扣题库NO.1044. 最长重复子串
今天的题虽然通过自己的思路应该是能够解出答案,但是提交超时;去学习别人的思路和解法,因为没有算法基础也难懂,不过姑且先将自己的思路述出。题目链接:力扣1044最长重复子串https://leetcode-cn.com/problems/longest-duplicate-substring/思路很简单,都在注释里直接看代码:package cn.daycode.leetcode;public class LongestDupSubstring { public static voi
2021-12-23 20:17:26
666
原创 【每日一题】Day0011:力扣题库NO.686. 重复叠加字符串匹配
今天的题目读题还是很容易理解的~直接放链接:力扣686重复叠加字符串匹配https://leetcode-cn.com/problems/repeated-string-match/题目并不麻烦,直接考虑到的就是穷举。分析字符串a和b的不同长度的情况,无非以下几种情况:当a的长度大于等于b的时候,有3种情况,a本身直接包含b,返回1;两个a拼接后包含b,返回2;其他情况都无法达成匹配,返回-1。当a的长度小于b的时候,最后可以提炼成一种通用情况:如果a拼接后能够匹配,那么a最多需要拼接b.len
2021-12-22 20:17:13
334
原创 【每日一题】Day0010:力扣题库NO.1154. 一年中的第几天
今天的题目比较简单~不过非常适合拿来做为初学时的例题!链接如下:1154. 一年中的第几天https://leetcode-cn.com/problems/day-of-the-year/思路:没什么特别的难点,不使用基础库关于时间和日期的方法的话就是少量字符串操作和一些简单的选择结构或者循环结构的运用。需要注意的地方就闰年的判断,还有实际用不用的到闰年了。日期格式确保是固定的话还是非常容易的代码如下:package cn.daycode.leetcode;public cla
2021-12-21 20:08:32
432
原创 【每日一题】Day0009:力扣题库NO.475. 供暖器
又是周一了,我们来做题。力扣-475 供暖器https://leetcode-cn.com/problems/heaters/submissions/今天的题目很有意思,确实像是现实中会碰到的问题的一个简化模型。思路:题目没有提到两个数组是否有序,所以习惯地先进行了排序。类似的问题基本上都是有序数组才能进行处理。要保证每个房子都会被供暖器覆盖,那么遍历每个房子,计算该房子到距离它最近的一前一后两个供暖器之间的距离,将两个距离中较近的那个做为我们选取的取暖器(很符合现实);而如果离它最近的只有
2021-12-20 20:21:07
223
原创 【每日一题】Day0008:力扣题库NO.419. 甲板上的战舰
好的我们今天来做题,链接如下:力扣419 甲板上的战舰https://leetcode-cn.com/problems/battleships-in-a-board/题目挺让人感兴趣的,题目本身还是蛮简单的。题目最后要求:“你可以实现一次扫描算法,并只使用O(1)额外空间,并且不修改board的值来解决这个问题吗?”那么我们就尽量只扫描一遍,只使用1个临时的变量,不修改board值来完成~其实第一时间感觉这题跟前两天优快云上那道最佳路径II的题目很像,思考过后确实有几分相似。思...
2021-12-18 15:59:24
195
原创 【每日一题】Day0007:力扣NO.1518+优快云每日一练
今天题目似乎都简单不少于是多做了几题。Java目前学到集合与泛型阶段了。先上力扣的题目链接:力扣https://leetcode-cn.com/problems/water-bottles/经典的换酒瓶问题,过于简单,迭代也可以不过解这题完全没必要了。代码如下:package cn.daycode.leetcode;public class NumWaterBottles{ public static void main(String[] args) { Solut
2021-12-17 19:42:59
519
原创 【每日一题】Day0006:优快云每日一练:不同路径 II
先放链接:每日一练-做题 每日一练-做题https://dailycode.youkuaiyun.com/practice/1779831昨天发现优快云上也有每日一练,感觉难度相对力扣简单一些,可能更适合自己现在的状态,颇感兴趣就尝试了一下。今天C/C++这道不同路径II很有意思,做完之后用Java实现并加上注释做为自己的理解和巩固。代码如下:package cn.daycode.csdncode;public class UniquePathsWithObstacles { public
2021-12-16 20:48:32
1522
2
原创 【每日一题】Day0005:力扣题库NO.3. 无重复字符的最长子串
今天的签到题确实有点难了,想了很久没有实现,遂放弃,随便找了个中等难度的题目做。(毕竟还处于学习阶段,不能浪费太长时间~加上正好最近学到String类和相关类,就找了个字符串的题目做)老规矩链接如下:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/https://leetcode-cn.com/problems/longest-substring-without-repeating-chara
2021-12-15 19:56:00
176
原创 【每日一题】Day0004:力扣题库NO.630. 课程表 III
小白首次挑战困难难度的题目,有些紧张。有大体思路,不过实现过程中不断发现小问题进行修正,最终终于实现(虽然效率很低。)惯例题目链接如下:力扣https://leetcode-cn.com/problems/course-schedule-iii/拿到题目其实很快就有大概的思路,以人脑解决办法正面解决,用代码实现:1. 将二维数组按lastDayi从小到大,将courses排序。因为解决类似问题的时候,我们总是优先将死线更近的任务完成。2. 顺序去修课,当一门课修完会超过其截至日期时,看看这门
2021-12-14 20:22:23
365
2
原创 【每日一题】Day0003:力扣题库NO.807. 保持城市天际线
题目链接如下:力扣https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline/题目名字挺酷,
2021-12-13 15:34:17
455
2
原创 【每日一题】Day0002:力扣题库NO.911. 在线选举
先吐槽下编号911。这题难度是中等,不过在看到题目的瞬间,思路还是很清晰的。题目连接如下:力扣https://leetcode-cn.com/problems/online-election/初期思路:1. times数组是一个严格递增的有序数组,publicintq(intt) 根据t很容易找到对应的下标2. 根据下标能够得到一个q方法涉及到的persons的子数组3. 记录这个子数组里每个元素(即候选人编号)出现的次数,以候选人编号为键,以出现的次数为值,构成一个hashmap...
2021-12-11 17:03:24
381
原创 【每日一题】Day0001:力扣题库NO.748. 最短补全词
前言:数日前开始学习JAVA基础,发现了宝藏网站力扣,沉迷做题。做了几日感觉部分题目还是值得记录下来的,于是便随即动起手来。如前所说,自己刚开始学习JAVA,有一定的C语言基础,基础语法和一定程度的编程能力是没问题的,也愿意思考和解决问题,但是对于算法和优化是完全小白。所以目前阶段以尽可能独立自主完成题目为第一目标。 那么废话不多少,上题(连接如下)。力扣https://leetcode-cn.com/problems/short...
2021-12-10 16:18:46
394
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人