- 博客(257)
- 资源 (1)
- 收藏
- 关注

原创 《图解设计模式》读书笔记
《图解设计模式》这本书总体来说是一本讲解设计模式比较好的书籍。个人认为的主要原因主要是:图例比较生动,会将代码按照功能和角色进行分类,更加便于理解。所以我将每一个章节,将关键部分进行摘录,便于自己日后的“温故而知新”。Iterator 模式Adapter 模式Template Method 模式Factory Method 模式Singleton 模式Prototype 模式Bu...
2019-11-02 09:40:57
485

原创 Java NIO学习教程纲领
原文地址: link.上图便是整篇教程的目录机构,下面我会将其与自己翻译的进行关联:Java NIO学习教程(一),包含:1.Java NIO Tutorial、2.Java NIO Overview和3.Java NIO Channel;Java NIO学习教程(二),包含:4.Java NIO Buffer和5.Java NIO Scatter/Gather;Java NIO学习教程...
2019-02-19 10:23:44
543

原创 设计模式定义
设计模式策略模式 (Strategy Pattern)策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。观察者模式 (Observer Pattern)观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者会收到通知并自动更新。装饰者模式 (Decorator Pattern)装饰者模式动态地将责任附加到对...
2018-11-18 14:34:40
274
原创 IDEA替换项目中的yml配置文件的属性值
点击Modify options->勾选Environment variables。Environment variables: 修改你想要修改的属性值。
2024-10-16 10:50:04
440
2
原创 运用反射将对象中的一些字段设置为null
之前的一个需求是需要将查询出来的对象,只保留特定值,其余值都设置为null。最直接的办法是把对象中的属性捞出来,手动设置null;可是对象每增加一个值可能都需要修改一下,很不便利。我们可以把利用反射的原理来处理:这样处理,我们只保留了id和carVin的值。
2023-08-09 16:23:55
542
原创 数组双指针
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。给定一个含有 n 个正整数的数组和一个正整数 target。...
2022-08-03 11:19:30
234
原创 LeetCode题26.删除数组中的重复项
由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有k个元素,那么nums的前k个元素应该保存最终结果。给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。不要使用额外的空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。将最终结果插入nums的前k个位置后返回k。比较好的方法,采用双指针的方式来进行处理。...
2022-07-22 13:34:04
363
原创 MySQL CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP使用问题记录
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',如上面所示,建表语句中有一条,自动更新更新时间的语句。只要这条记录发生变化,更新时间就会更新为当前时间。一次执行批量更新业务时:update tableDemo set xxx='' where yyy='';这时我们发现只要被更新的数据,更新时间都变为当前时间了,如果你的更新时间是有业务作用的..
2022-05-28 21:57:59
694
原创 Redisson用作计数的方式
java // 设置每次加一 RAtomicLong atomicLongCharge = redisson.getAtomicLong(CHARGE_KEY); atomicLongCharge.incrementAndGet(); // 设置非固定值的增加 RAtomicLong atomicLongMile = redisson.getAtomicLong(MILE_KEY); atomicLongMile.addAndGet(Long.valueOf(mile)); /
2022-04-11 15:55:10
3293
原创 MyBatis 通用Mapper中的通用example(排序)
Example example = new Example(User.class);example.setOrderByClause("created_at DESC");
2021-12-31 15:25:02
1048
原创 MySQL同表中一个字段的值赋值给另一个字段
update account set business_time=created_at;# 类型一样的两个字段值互换update account a1,account a2 set a1.business_time=a2.created_at,a2.created_at=a1.business_time
2021-12-28 11:04:19
1922
原创 手动分页功能编写
数据无法分页,手动分页功能编写:// 集合大小int size = list.size();// 分页总数int pages = size / param.getPageSize();int pages2 = size % param.getPageSize();if (pages2 > 0) { pages = pages + 1;}page.setTotal(Long.valueOf(size));page.setPages(pages);if (param.getPa
2021-12-27 16:59:02
385
原创 2021年总结,2022年展望
2021年总结年中的时候换了份工作;每月写博客的习惯还是保留了下来;新工作已经转正;极客时间的课程学习保持的还可以;博客的质量有点下降,干货越来越少了。2022年展望学习go语言;Redis高并发优化方面学习一下;数据结构巩固;左耳听风的极客课程再看一遍;提高博客的文章的质量。...
2021-12-19 17:50:35
4732
原创 MySQL in查询优化
select sum(integral_left) from `integral_produce_available` where `DELETED` =0 and integral_produce_id in (select id from `integral_produce` where account_Id='1446656640503070720' and `STATUS` =1 and `DELETED` =0 and activate_flag=1 and expired_flag=0 and
2021-11-29 11:04:49
3637
原创 MySQL查询某个字段相同的数据
select *,count(*) as count from integral_total where INTEGRAL_PRODUCE=500 and `DELETED` =0 group by INTEGRAL_PRODUCE, `ACCOUNT_ID`, `CHANNEL` having count>1;
2021-11-29 10:52:34
2373
原创 MySQL外键检查和主动提交
外键检查关闭和打开SET FOREIGN_KEY_CHECKS = 0;SET FOREIGN_KEY_CHECKS = 1;MySQL主动提交打开或关闭## 关闭set @@autocommit=0;select @@autocommit;## 打开set @@autocommit=1;
2021-11-01 10:58:32
227
原创 MySQL的for update的理解
我们都知道select查询语句是不会加锁的,但是select…for update除了有查询的作用外,还会加琐。如果查询条件用了索引/主键,那么select…for update就会进行行锁。如果是普通字段(没有索引/主键),那么select…for update就会锁表。...
2021-11-01 10:34:30
220
1
原创 《我们为什么要睡觉》
1. 坚持固定的睡眠时间。2. 锻炼很有益。3. 避免咖啡因和尼古丁的摄入。4. 避免睡前喝酒精饮料。5. 深夜避免大量进食和喝饮料。6. 尽量避免使用会延迟或破坏睡眠的药物。7. 下午3点以后不要午睡。8. 睡前放松。9. 睡前洗个热水澡。10. 保持卧室幽暗凉爽,并且不要放置任何电子产品。11. 适当晒太阳。12. 醒着时不要躺在床上。...
2021-10-27 16:22:22
195
原创 如何设置签到积分的获得概率
要求总积分平均值在5~6之间import java.util.HashMap;import java.util.Map;/** * @author Yun.Yang1@zeekrlife.com * @title * @Package com.zeekrlife.eaf.app.vehicle.model.result * @date 2021/10/15 4:07 下午 */public class IntegralUtil { /** * 获取积分 * 获
2021-10-15 16:42:33
178
原创 MySQL update语句的执行条件
UPDATE items SET retail = retail * 0.9 WHERE id IN (SELECT id FROM items WHERE retail / wholesale >= 1.3 AND quantity > 100);上面的语句执行会报如下错误You can’t specify target table integral_total for update in FROM clause.我们只能使用多表更新的方式:UPDATE items,
2021-09-24 14:51:56
553
3
原创 安装谷歌插件.Crx提示程序包无效“CRX_HEADER_INVALID”的解决办法
网上搜索的方法,并不能解决问题。我们可以访问这个网址中去安装https://crxdl.com/,link 。参考网址:link。
2021-09-18 16:39:18
339
原创 MySQL max()的正确使用方法
问题查询数据库中积分最多的用户 SELECT MAX(integral_left) AS integral_left, ACCOUNT_IDFROM integral_total GROUP BY ACCOUNT_ID ORDER BY `integral_left` desc;SELECT MAX(integral_left) AS integral_left, ACCOUNT_ID FROM integral_total ORDER BY `integral_left` desc;查询出来
2021-09-09 19:16:34
4643
原创 锦鲤签到个人算法总结
需求目前客户点击签到按钮获取固定的积分值。预期客户点击签到按钮进行一次锦鲤抽奖,抽到的用户获得188积分。未抽到的则还是获取固定的积分值。锦鲤签到有一定的数量限制,比例是昨日签到人数的5%。算法和实现public class Test { // 昨日签到总人数 static int count = 1000; // 今日锦鲤最大的数量 static int luckyCount = 3; // 设置奖励 static Map<String
2021-09-09 17:40:11
262
原创 Swagger的接口信息不更新的问题
最近开发遇到修改代码后,Swagger接口不进行更新的问题。后来经过检查发现是@ApiModel("")中的值重复导致的问题。每个里面的value都需要不一样。重复就有导致刚才的问题。
2021-08-30 15:01:56
4714
3
原创 Redis更新数据的时候如何不重置过期时间
Redis我们再使用的时候一般都会设置过期的时间,但是get和set操作都会重置过期时间。有时我们需要过期时间不进行相关的变化,所以我们需要自己进行相关的设置操作。Long time = RedisUtils.stringRedisTemplate.getExpire(command);Date date = new Date(Instant.now().toEpochMilli() + time * 1000);RedisUtils.setString(command, JSONUtil.toJso
2021-08-27 12:09:33
3465
原创 Java Stream的各种使用方法
针对类中某一个字段的求和操作// BigDecimalBigDecimal bb =list.stream().map(Plan::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add);// int、double、long:double max = list.stream().mapToDouble(User::getHeight).sum();通过Stream转换集合为Map1、指定key-value,value是对象中的某个属性值 Ma
2021-08-22 16:08:51
1472
原创 Java对日期Date类进行加减运算,年月日,时分秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date dt = new Date();System.out.println(sdf.format(dt));Calendar rightNow = Calendar.getInstance();rightNow.setTime(dt);// 日期减1年rightNow.add(Calendar.YEAR, -1);Date dt1 = rightNow.g
2021-08-22 15:50:27
2166
原创 拼手气积分红包
拼手气积分红包算法,借鉴了网上的微信红包算法。不过积分的最小单位是1,所以进行了相关的修改操作。import java.time.LocalDateTime;/** * @author yangyun * @title * @Package com.zeekrlife.micro.mpintegral.utils * @date 2021/8/16 4:16 下午 */public class RedPacketsTest { public static int getRandom
2021-08-20 14:32:48
159
原创 Java在服务器端如何写MultipartFile类型参数的入参
File picFile = new File("filePath");FileInputStream fileInputStream = new FileInputStream(picFile);MultipartFile multipartFile = new MockMultipartFile(picFile.getName(), picFile.getName(), ContentType.APPLICATION_OCTET_STREAM.toString(),
2021-08-08 13:30:11
1971
原创 图片转换为base64字符串
import cn.hutool.http.HttpUtil;import java.io.ByteArrayOutputStream;import java.util.Base64;public class Base64Utils { /** * 将指定url的图片转换为base64字符串 * * @param url * @return */ public static String picToBase64(String u
2021-07-31 13:03:03
1296
原创 由A-Z和0-9生成五位随机数
实现方法package com.example.demo.random;import java.security.SecureRandom;import java.util.*;public class RandomTest { private static String generateWord() { String[] beforeShuffle = new String[]{"1", "2", "3", "4", "5", "6", "7",
2021-07-23 09:05:25
792
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人