![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
还算善良_
慢慢提升技术;总结的都是工作中真实遇到的一些问题。
展开
-
Java小数和百分数互转
【代码】Java小数和百分数互转。原创 2022-11-09 15:17:16 · 2821 阅读 · 1 评论 -
有关HashMap的computeIfAbsent优雅使用方式
【代码】有关HashMap的computeIfAbsent优雅使用方式。原创 2022-10-23 11:55:50 · 161 阅读 · 0 评论 -
有关HashMap的computeIfAbsent优雅使用方式
【代码】有关HashMap的computeIfAbsent优雅使用方式。原创 2024-03-28 21:03:26 · 133 阅读 · 0 评论 -
Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
Java使用Cipher.getInstance("AES/ECB/PKCS5Padding");加解密算法工具类实现。原创 2022-08-01 10:08:28 · 8612 阅读 · 0 评论 -
有关直连接口的开发
有个需求,作为服务方,开发一个接口,接受客户端推送来的信息,将信息落库以及其他处理。思路:创建类继承httpservlet重写post和get方法。获取到request中的reader流,之后将其转化成对应实体即可。另外,将自定义个servlet注册就完成了~......原创 2022-06-02 14:49:32 · 163 阅读 · 0 评论 -
有关数据库深分页导致的查询慢的问题
在业务场景中,如果用户进行了很多页数据的查询,可能会出现深分页的情况,如何解决?一般可以先查询出上一次查询的最大的id,然后使用id>maxId的方式进行查询,此时走的是主键id索引,查询速度很快select * from t where ... limit 1000000,20 有深分页问题以下是优化方式:#首先根据主键索引查出上一次最大的主键idmaxId: select id from t where ... limit 1000000,1#之后 根据条件查询走索引的方式进行查原创 2022-03-14 11:38:20 · 1058 阅读 · 0 评论 -
数据库中某一列中使用的是text存储,使用的是逗号分割,查询某一个数据在该列所有数据中的条数【真实场景】
假如数据如下:四列CityStr 1111,1112,1113,1114,1115,1116,1117CityStr 1111,1112,1113,1114,1115,1116,1117CityStr 1111,1112,1113,1114,1115,1116,1117CityStr 1112,1113,1114,1115,1116,1117,1118,1119HYJ_City是数据库表名CityStr是数据库中的某一列1111 是CityStr中的想要查询的数据SELECT原创 2022-03-10 16:55:48 · 820 阅读 · 0 评论 -
获取一个集合中(集合中存贮的是对象)根据对象的某一个属性获取对应数据
获取一个集合中(集合中存贮的是对象)根据对象的某一个属性获取对应数据public class Horder { /** * 酒店id */ private Integer id; /** * 排序值 */ private Integer order; /** * 推荐理由 */ private String recommendReason;}//获取Horder中 order最小的数原创 2022-01-21 10:33:49 · 547 阅读 · 0 评论 -
有关线程的一些小记录
使用继承Thread的方式使用线程的话,不能共享资源,实现Runnable的方式,可以实现资源共享。原创 2021-11-10 18:22:31 · 60 阅读 · 0 评论 -
使用定时任务 随着项目启动定时执行
有关定时任务的使用(1)在启动类开启定时任务@EnableScheduling@SpringBootApplication//开启定时任务@EnableSchedulingpublic class Application{ public static void main(String[] args) { SpringApplication.run(Application.class, args); }}(2)@Scheduled(cron = " ")来指定自原创 2021-10-22 15:08:31 · 1658 阅读 · 0 评论 -
使用JSON解析对象成map结构
工作中有时候会遇到,使用JSON.parseObject方法将实体类解析Map结构。Map<Integer, List<String>> entityMap = JSON.parseObject(Entity, new TypeReference<Map<Integer, List<String>>>() {});//我这里解析的key存储的是整型,value存储的是list类型,可以根据自己需要进行转换。//主要是new TypeRefer原创 2021-10-21 14:03:59 · 1995 阅读 · 0 评论 -
有关使用ScheduledThreadPoolExecutor实现定时处理任务
使用ScheduledThreadPoolExecutor实现定时任务 ,如下样例,定时输出系统时间,每隔两秒执行一次。 Thread.sleep作用是线程执行的时间,假如处理业务时间是10秒 public static void main(String[] args) { ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(2); executor.scheduleAtFixedRate(new Runn原创 2021-10-20 14:58:20 · 980 阅读 · 0 评论 -
有关日期格式化的问题
LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault()).format(F)``和simpleDateformat```的使用private static final DateTimeFormatter F = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");private static final SimpleDateFormat sdf =ne原创 2021-10-20 11:16:27 · 137 阅读 · 0 评论 -
日期字符串转换成时间戳
时间戳转换 String format = "yyyy-MM-dd"; String dateStr = "2021-10-14"; SimpleDateFormat sdf = new SimpleDateFormat(format); try { String s = String.valueOf(sdf.parse(dateStr).getTime() / 1000); System.out原创 2021-10-13 09:55:10 · 3493 阅读 · 0 评论 -
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing --已解决
在使用单元测试对样例进行测试的时候,报错Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing起初想法是缺少依赖,后来发现是junit版本过高的问题(开始用的 4.12)后来换成4.10版本就好了~...原创 2021-09-23 15:52:00 · 522 阅读 · 0 评论 -
有关String.join()方法的使用
List list=new ArrayList();list.add("a");list.add("b");list.add("c");list.add("d");String str=String.join("|",list);System.out.println("str=="+str);》》》结果 str== a | b | c | d可以使用String.join()方法 在集合中 进行分割。原创 2021-09-18 10:56:03 · 168 阅读 · 0 评论 -
有关小数点之后为0的问题
比如1.001 ,1.000。现在的需求是:如果小数点之后为0,则直接返回整数1,否则返回原来的数值1.001。实现方式:BigDecimal.stripTrailingZeros()方法 可以去除小数点之后为0的值,但是如果是100这类的 没有小数点,但是又正好是100、1000之类的数值,此时会出现问题,表示方式是科学计数法。解决办法:可以先判断传值是否是包含"." 包含的使用```BigDecimal.stripTrailingZeros() ```方法进行转换,不包含的直接返回即可。...原创 2021-09-16 14:55:37 · 522 阅读 · 0 评论 -
有关ConcurrentModificationException问题
同步容器使用foreach迭代过程中修改了元素的值,则会出现ConcurrentModificationException异常,可以使用iterator迭代器解决,但是在多线程并行情况下,修改容器中数据,会发生阻塞或者报异常原创 2021-09-15 13:44:36 · 70 阅读 · 0 评论 -
有关方法耗时 倒计时的记录手段
可以在方法的执行之前 使用long startTime=System.nanoTime()+timeOut(纳秒级别) 之后在方法执行的循环体末尾中 重新进行timeOut的赋值操作timeOut=startTime-System.nanoTime()之后在循环的开始的时候进行timeOut的判断 ,查看是否是timeOut<=0如果满足的话,直接返回即可。...原创 2021-09-15 10:11:24 · 73 阅读 · 0 评论 -
有关StringUtils中isEmpty和 isBlank 的使用场景
有关isEmpty 和IsBlank的比较直接看代码 直观清晰//判断字符串是否为空,为空的标准是str==null或str.length()==0StringUtils.isEmpty(null) = trueStringUtils.isEmpty("") = trueStringUtils.isEmpty(" ") = false //注意在StringUtils中空格作非空处理// 判断字符串是否为空或长度为0StringUtils.isBlank(null) = trueStri原创 2021-09-14 17:12:58 · 106 阅读 · 0 评论 -
有关mybatis查询text类型的数据为NULL的情况
场景是这样的:我这边需求需要对操作日志信息进行分页查询,但是其中数据库的字段有一个是使用的text 类型,所以使用常规的分页查询,查询出的数据信息总是null;解决办法先使用常规的分页查询,查出对应的分页信息,之后使用selectByprimateryKey查出所对应的数据信息,循环进行数据赋值。 List<HotellistLog> hotellistLog=listLogMapper.getLogInfoByid(offset,PageSize,id);原创 2021-07-21 15:17:34 · 951 阅读 · 0 评论 -
有关模糊获取Redis所有key 之后遍历的问题
今天项目中使用到模糊获取redis中所有的key代码如下: public static List<String> getRedisKeys(String pattern){ List<String> keys = cacheClient.Key().keys(pattern); if(keys!=null && keys.size()>0){ return keys; }原创 2021-09-07 16:51:20 · 527 阅读 · 0 评论 -
有关List集合 “去除中括号[]“ 问题
工作中遇到 需要对list集合去除 [] 这里记录一下 public String remove(String str, String removeChars) { if (isEmpty(str)) { return str; } else { str = stripStart(str, removeChars); return stripEnd(str, removeChars);原创 2021-09-07 14:09:54 · 2169 阅读 · 1 评论 -
有关后端使用Springboot导出Excel,前端使用vue实现Excel下载的功能实现
接到一个需求 ,是有关Excel导出的功能,用户通过页面的数据,进行批量的导出操作。话不多说,直接上代码:后端package com.ly.travelaround.cms.common.utils;import org.apache.poi.hssf.usermodel.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.http.HttpServletRequest;import j原创 2021-09-02 15:59:38 · 1868 阅读 · 0 评论 -
有关Excel导出文档之后 文件名中文乱码问题
今天写了一个Excel导出功能,但是文件名称由于是中文,一直乱码,搞了好久,还是没搞定,试了很多种办法,就连区分浏览器类型都试了一下,可惜还是没解决,之后看到有大佬说是由于Swagger的问题,但是也没见有人细说是为什么,这里就先做一下笔记吧,以后再次遇到类似的问题就不去纠结乱码了,真的是太浪费时间了。。...原创 2021-08-31 17:49:57 · 2231 阅读 · 1 评论 -
随机生成3位随机数
Math.random()*900 +100;原创 2021-08-30 10:56:52 · 3630 阅读 · 0 评论 -
记录一下标志位的使用
今天写一个接口,其中情况是如果用户不传城市id的话 则默认返回第一条数据信息带详情,其余信息都是只有城市id以及城市名称,我的做法是:查出所有的集合之后,先取出第一个,之后从第二个开始循环。但是这样的代码显得有些许"臃肿" ,另一种做法就是: 直接对集合全量循环,然后在循环的外边顶一个一个标志位 比如 Boolean flag=true; 在循环里进行判断 flag=true的时候才进行详情信息的查询,出了判断之后将flag置为false。这样的代码就既美观又简洁易读。...原创 2021-08-26 16:36:54 · 186 阅读 · 0 评论 -
java.lang.UnsupportedOperationException
有关数组转list 遍历报UnsupportedOperationException的问题。这个问题是由数组转集合 又对集合进行操作导致的问题,解决办法就是:新建一个List集合 将数组转化得来的List传进去。 List<String> list = Arrays.asList(array); List list1 = new ArrayList(list); ...原创 2021-08-25 19:41:10 · 77 阅读 · 0 评论 -
SpringBoot控制台打印SQL
使用logging.level.数据库操作层的包名=debug即可原创 2021-08-25 19:32:50 · 131 阅读 · 0 评论 -
有关SpringBoot项目启动就自动停止的问题
记录一下有关SpringBoot项目启动的时候总是自动停止的问题,我的原因是pom文件中没有添加 springboot-starter-web依赖 添加上依赖之后就可以正常启动啦~~原创 2021-04-22 22:44:49 · 1548 阅读 · 0 评论 -
如何判定目标类实现的是哪一种 动态代理
如果一个目标类有接口 ,那么,默认情况下是使用的jdk动态代理;反之,如果是继承(也就是没有接口) 那么默认使用的是cglb动态代理。如果目标类有接口,但是仍然想使用cglb动态代理,需要设置 <aop:aspectj-autoproxy proxy-target-class="true"/>...原创 2021-02-24 10:42:55 · 292 阅读 · 0 评论 -
什么时候使用aop
对于什么是aop 相信大家都明白 那么什么时候使用aop呢?当为一个系统添加新的功能的时候又不能修改原来的代码 ,这个时候就可以使用aop技术。当为多个类添加相同的功能的时候就可以使用aop技术...原创 2021-02-24 09:45:32 · 1588 阅读 · 0 评论 -
Spring 如何创建第三方Bean
创建第三方Bean如果一个Bean不在我们自己的包下,如何创建它?答案是我们自己在@Configuration类中编写一个Java方法创建并返回它,同时标注@Bean注解:Spring对标记为@Bean的方法只调用一次,因此返回的Bean仍是单例。@Configuration@ComponentScanpublic class MyConfig { // 创建一个Bean: @Bean H createH() { return new H(); }原创 2021-01-19 11:14:39 · 572 阅读 · 0 评论 -
==和equals区别
==和equals区别==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的是地址值。equals()是一个方法,用于比较两个对象是否相等。原创 2021-01-14 19:48:04 · 55 阅读 · 0 评论 -
有关token实现单点登录步骤
有关token实现单点登录步骤服务端1. 客户端使用username和pwd进行请求登录2. 服务端收到请求,验证用户名和密码3. 验证通过之后,服务端会签发一个token令牌,(存储到redis 还可以设置有效时间)再把token发送给客户端4. 客户端收到token以后,存储到cookie或者session5. 客户端每次向服务器请求资源都需要带着token6. 服务端收到请求,然后去验证客户端请求里的token,如果验证成功,就向客户端返回请求的数据。客户端1、第一次登录的时候,原创 2021-01-02 21:32:59 · 10396 阅读 · 1 评论 -
后端解决跨域问题
后端解决跨域问题实现WebMvcConfigurer@Configuration@SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection")public class AppConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapp原创 2021-01-02 21:22:26 · 181 阅读 · 0 评论