java
文章平均质量分 55
乐观的Terry
道理谁都懂,但是你要为自己做点什么!
展开
-
java8的LocalDateTime还没搞懂?一文轻松解决掉你的烦恼
java都出到17了,我这java8的LocalDateTIme都没怎么研究过。感觉是有点说不过去啊,周末的时候在家把源码看了看,写了一个工具类,以便将来的开发过程中省时省力。这段时间换工作,新的公司用java8语法糖用的很多,上周开发一个需求,用到时间计算,因为这个时间计算,搞了两个小时。......原创 2022-08-02 12:04:07 · 206 阅读 · 0 评论 -
java:实现判断两个时间差是否在N天以内
java实现判断两个时间差是否在N天以内原创 2022-07-11 22:24:57 · 1271 阅读 · 0 评论 -
jvm调优
原文链接想要调优,你不得不知道的一些参数JVM参数的含义参数名称含义-Xms初始堆大小-Xmx最大堆大小-Xmn年轻代大小-XX:NewSize设置年轻代大小-XX:MaxNewSize年轻代最大值(for 1.3/1.4)-XX:PermSize设置持久代(perm gen)初始值-XX:MaxPermSize设置持久代最大值-Xss每个线程的堆栈大小-XX:ThreadStackSizeThread Stac原创 2022-04-02 15:49:38 · 327 阅读 · 0 评论 -
微服务下登录检验解决方案之 JWT
JWT(八股文):一个开放标准,它定义了一种用于简洁,自包含的用于通信双方之间以「JSON」对象的形式安全传递信息的方法.JWT可以使用「HMAC」算法或者是「RSA」 的公钥密钥对进行签名总结:通过一定规范来生成token,然后可以通过解密算法逆向解密token,这样就可以获取用户信息.优点:生产的token可以包含基本信息,比如id、用户昵称、头像等信息,避免再次查库存储在客户端,不占用服务端的内存资源缺点:token是经过base64编码,所以可以解码,因此token加密前的对象不应原创 2021-05-25 21:42:17 · 217 阅读 · 0 评论 -
解决Guava Cache存入null值报错的问题
项目背景最近在做一个给帖子配图的项目,我这里只负责配图,上游将帖子的id发给我,我拿着帖子id去另一个服务查询,但我不能每次都去查人家的服务啊,所以我将每次查到的数据添加到缓存中了.帖子会有过期的时间,我的上游可能还没收到帖子过期的消息就已经将帖子id发给我了,这时我也需要拿着帖子id去查帖子服务,查不到时我这里就拿到null了,我把查询的结果放到缓存中,当get的时候不就报错了嘛!private static Cache<String, RawData> tenMiniCache =原创 2021-02-24 19:19:37 · 1901 阅读 · 0 评论 -
java时间差工具类
分享一个我目前在用的时间差工具类,比较实用,方便检测方法的耗时/** * @author : xuzhennan * @email : xuzhennan@58.com * @date : 2021年01月15日 8:19 上午 */public class TimeUtils { /** @return 当前毫秒数 */ public static long nowMs() { return System.currentTimeMillis(); } /** *原创 2021-02-02 11:29:37 · 365 阅读 · 0 评论 -
自研判断工具类CheckUtils的使用方式
如果我们通过不断的叠加对字段的判空总感觉很不方便,因此写了一个工具类,通过链式进行对obj的判断如果按照传统方式,编码是这样的public static void verify(RecallRequest request) { if (request == null) { throw new RuntimeException("请求不能为null"); } if (StringUtils.isBlank(request.getIm原创 2021-01-26 20:08:24 · 971 阅读 · 0 评论 -
日志中进行脱敏处理
首先要写脱敏类,如下@Slf4jpublic class SensitiveDataConverter extends MessageConverter { private static Pattern idCardPattern = Pattern.compile("(\\D)(\\d{6})([19,20]\\d{7})(\\d{3}[0-9Xx])(\\D)"); private static Pattern bankCardPattern = Pattern.compile("(\\D原创 2020-09-25 11:54:52 · 4376 阅读 · 0 评论 -
利用spring.factories文件动态加入自定义日志注解
在SpringBoot中,有一种自动装配的过程,是通过在文件classpath:/META-INF/spring.factories 中添加配置org.springframework.boot.autoconfigure.EnableAutoConfiguration 的方式来配置BeanMETA-INF/spring.factories文件在SpringFactoriesLoader类中定义public abstract class SpringFactoriesLoader { /** *原创 2020-07-23 15:20:57 · 1164 阅读 · 0 评论 -
java实现-JSONArray按照时间排序
需求已知业务方传过来的json是中包含一个JSONArray,我需要用ognl表达式将JSONArry转成List《Object》而且还需要根据时间排序(由于业务方查询了多个表未能按时间排序)假设一个json如下String s = "{\n" + " \"da_a_getUserCreditInfoByIdCard\": {\n" + " \"control\": {\n" +原创 2020-06-24 11:50:40 · 3275 阅读 · 0 评论 -
通过读取excel数据生成sql
最近公司好多计算逻辑通过ognl表达式操作,需要将ongl配置到表中,每天写入很多,深感眼睛的疲惫,所以想到以前做的导入excel数据的功能,利用这个实现了一个自动生成相应sql的程序首先引入相应的jar包<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <versi原创 2020-05-21 14:23:26 · 658 阅读 · 0 评论 -
GenericTokenParser在项目中的应用
承接上文,params参数可以从数据库中查询String params = "{\"user_id\":\"${userId}\",\"endTime\":\"${inTimeStamp}\",\"startTime\":\"${startTimeStamp}\",\"token\":\"user_agent_message\",\"limit\":\"10\",\"tags\":\"\"}";...原创 2020-05-08 16:27:44 · 607 阅读 · 0 评论 -
java8实现项目需求
获取通讯录中使用最多的运营商// 从json中拿到PhoneContactEntity PhoneContactEntity entity = jsonObject.getObject("entity", PhoneContactEntity.class); List<PhoneContactItemEntity> rawData = entity.getRa...原创 2019-12-12 16:30:30 · 249 阅读 · 0 评论 -
java+mybatis实现分表查询
需求:查询用户的模型分,我们将用户的请求放到biz_order表中,定期更新数据库,按月分表,查询某一用户先查询biz_order表,如果没有数据,就会循环查询历史表,查得数据返回数据分,查不到返回处理失败入参:user_id,order_id,query_sources,order_id是记录此次请求用的,不用于查询参数@RequestMapping(value = "/creditData...原创 2019-12-06 15:32:41 · 7626 阅读 · 0 评论 -
利用栈实现括号匹配问题
给定一个字符串,包括"(){}[]<>"这些符号,求该字符串是否匹配例如:({[]}) 匹配(){}[]<>匹配)(){}不匹配实现如下:/** * @author xuzn * @ClassName: BraceMatch * @ProjectName geekblog * @Description: 利用栈解决括号匹配问题 * @date 2019...原创 2019-11-19 12:04:52 · 337 阅读 · 0 评论 -
分批插入数据
一次性插入一万条数据,数据库的参数限制,导致插入失败,如果在不修改数据库参数的前提下,保证插入质量,只能选择进行分批插入实现方法如下:public void addVidmates(List<YoutubeVo> emps) { List<YoutubeVo> vos = thRankYoutubeList(); logger.info("批...原创 2018-07-04 11:50:42 · 16600 阅读 · 0 评论 -
springboot拦截器@resource注解注入为null解决方案
为什么@resource注入为nullinteceptor在springcontext之前加载,注入必然是null解决方案加入注解@Bean@Configurationpublic class WebMVCInterceptor implements WebMvcConfigurer { @Override public void addInterceptor...原创 2018-11-23 14:01:27 · 7466 阅读 · 5 评论 -
fork/join 分支/合并框架和自动机制拆分流Spliterator
利用fork/join求和代码分析// 集成RecursiveTask用来创建可以用于分支/合并框架的任务public class ForkJoinSumCalculator extends RecursiveTask<Long> { // 不再将任务分解为子任务的数组大小 public static final long THRESHOLD = 10_00...原创 2018-09-30 18:54:49 · 455 阅读 · 0 评论 -
reduce求和与for-each求和比较
@Test public void testReduce() { List<Integer> numbers = Lists.newArrayList(1,2,3,4,5,6,7,8,9); int sum = 0; for (Integer integer:numbers) { sum+=integer...原创 2018-09-30 15:49:18 · 792 阅读 · 0 评论 -
利用flatmap做一些事情
题目:给定列表[1, 2, 3]和列表[3, 4],如何返回[(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)]答案:List<Integer> numbers1 = Arrays.asList(1,2,3);List<Integer> numbers2 = Arrays.asList(3,4);List<in...原创 2018-09-30 15:32:02 · 962 阅读 · 0 评论 -
扁平化流flatMap
List<String> words = Arrays.asList("Hello", "World"); List<Integer> wordLengths = words.stream() .map(String::length) .collect(toList()); S...原创 2018-09-30 15:04:54 · 718 阅读 · 0 评论 -
streamVScollection
1.首先创建一个对象public class Dish { private final String name; private final boolean vegetarian; private final int calories; private final Type type; public Dish(String name, boolea...原创 2018-09-30 14:00:47 · 145 阅读 · 0 评论 -
json转map
引用ali的fastjson,将json转换成map,代码如下:import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import java.util.*;/** * @author lelontar * @ClassName: Json2MapUtil * @Project...原创 2019-02-19 14:35:11 · 187 阅读 · 0 评论 -
BeanCopyConverter
public final class BeanCopyConverter { /** * 具有相同属性名称的对象转化 * * @param srcClazz * @param dstClazz * @return */ public static <T1, T2> T1 converterClass(final T2 srcClazz, Class<...原创 2019-04-04 10:45:25 · 320 阅读 · 0 评论 -
java利用ognl获取最大值
riskResult是一个集合,获取思路是获取列表指定的risktime的集合,然后调用sort和reverse方法在获取第一个值,因为sort默认是正序排序,通过reverse方法进行反转,获取第一个既是最大值String s = "{\n" + " \"code\": 10000,\n" + " \"...原创 2019-10-09 16:31:09 · 242 阅读 · 0 评论 -
springboot静态资源会被HandlerInterceptor拦截的原因和解决方法
###文章链接项目目录结构在geek工程中我设置了自定义拦截器,且访问首页的时候不走拦截器public class WebMVCInterceptor implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { reg...原创 2019-09-27 15:10:56 · 3832 阅读 · 2 评论 -
Java实现获取两个日期相差天数
文章链接最近项目的需求,微博征信贷中首单模型在开发过程中用到了部分时间差特征和一些与订单相关的信息来提高模型效果,时间差要求保留两位小数的天数,代码如下:public static float decimalFormat(String pattern, double value) { return Float.parseFloat(new DecimalFormat(patte...原创 2019-09-05 15:36:00 · 9526 阅读 · 2 评论 -
搭建eureka_server的时候报错:Application failed to start with classpath:file:/C:/ProgramFiles/Java/jdk
今天在搭建eureka的时候遇到这个错误:"C:\Program Files\Java\jdk1.8.0_131\jre\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jm...原创 2019-07-11 15:26:23 · 7355 阅读 · 2 评论 -
二分查找法
二分查找法是用于查找一个数字在一个有序序列中的位置public class BinarySearch { public static int bsearch(int[] array,int findData) { int low = 0; int high = array.length-1; while (low<high) { ...原创 2019-06-11 11:49:38 · 393 阅读 · 1 评论 -
java实现斐波那契函数
/** * @author xuzn * @ClassName: PrintFIb * @ProjectName model_scheduler_new * @Description: TODO * @date 2019/6/11/11:07 */public class PrintFIb { public static int printFIb(int num) { ...原创 2019-06-11 11:14:08 · 3363 阅读 · 0 评论 -
fastJson-对象转map
CallbackEntity callbackEntity = new CallbackEntity();callbackEntity.setUserId(infos.get(3)); //用户idcallbackEntity.setOrderId(infos.get(0)); //订单idcallbackEntity.setChannel(infos.get(4));//渠道callba...原创 2019-04-29 16:30:13 · 9968 阅读 · 0 评论 -
通过注解分配权限
@Componentpublic class GlobalInterceptor extends HandlerInterceptorAdapter { private static Logger logger = LoggerFactory.getLogger(GlobalInterceptor.class); @Resource private UserService...原创 2019-04-08 18:03:38 · 212 阅读 · 0 评论 -
二要素/三要素/face++/人脸识别-第三接口的调用
package com.yinker.datacenter.service;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.google.common.base.Strings;import com.yinker.datacenter.entity.common...原创 2019-03-28 16:48:24 · 990 阅读 · 0 评论 -
单例模式的应用
创建一个单例对象package com.myshiro.support.support.manager;import java.util.TimerTask;import java.util.concurrent.ScheduledThreadPoolExecutor;import java.util.concurrent.TimeUnit;/* * * @Author xuzn ...原创 2018-06-30 14:00:10 · 209 阅读 · 0 评论 -
关于excutorservice的使用
使用excutorservice异步发送push定时任务,调用发送push服务@Scheduled(fixedDelay = 60000) //距离上次调用完成1分钟调用 public void sendImPush() { logger.info(DateUtil.getText(DateUtil.DateFormat.DF_YYYY_MM_DD_HH_MM) + "im...原创 2018-06-15 18:53:10 · 819 阅读 · 0 评论 -
mybatis——example文件形式——多表联查
mybatis——example文件形式——多表联查并且每个表中都有同样的id不能识别问题解决方法名称:orderListByStatusmapper.xml文件中写法<select id="orderListByStatus" resultMap="BaseResultMap1"parameterType="com.integral.entity.OrderDetailExample"原创 2017-03-16 13:27:25 · 18882 阅读 · 6 评论 -
redis代码实战
将查询的列表添加到redis缓存 实现: ①先查询redis缓存中有没有该列表,如果有,从缓存中获取 ②缓存中没有,根据参数查询用户列表,将查询结果添加到缓存中实现代码如下:public List friends(String cid) throws Exception { //从缓存中取内容 try { String result原创 2017-05-02 15:54:49 · 495 阅读 · 0 评论 -
传多个参数
mybatis传多个参数问题原创 2017-05-02 15:49:33 · 280 阅读 · 0 评论 -
java封装json格式工具类优化
需要調用的主要方法/** * @author:作者Lelonta * @version:1.0 * 创建时间:2017-4-12 下午10:27:50 * 类说明 */ public class MyJson {/** * 返回成功数据 * @param resObj * @return */public static JSONObject returnSucc原创 2017-04-15 07:43:03 · 1354 阅读 · 0 评论 -
java返回json工具类
自己编写的返回json串的工具类用着别人封装的东西而且返回的数据有些都不需要还不能处理,感觉着实不爽,因此开始接触jsonconfig,顺势写出这个工具类,工具类其实都大同小异,写这个只是出于个人爱好!仅此而已!!!/** * @author:作者Lelonta: * @version:1.0 * 创建时间:2017-4-12 下午10:27:50 * 类说明 */ p原创 2017-04-12 22:51:24 · 1271 阅读 · 0 评论