工作总结
菜菜的土豆
所有的焦虑与不安,都来自于自身的不足
展开
-
关于对kafka的理解
kafka原创 2022-08-31 22:09:33 · 417 阅读 · 1 评论 -
工作防踩坑之-aspect打印接口参数
发原创 2022-04-20 15:36:12 · 450 阅读 · 0 评论 -
防踩坑笔记
数组异或的交换,不能有下标相同的互换!!public void swap(int[] arr, int a, int b) { arr[a] = arr[a] ^ arr[b]; arr[b] = arr[a] ^ arr[b]; arr[a] = arr[a] ^ arr[b]; }这里的a,b如果相同,最后会出现arr[a]=0,所以这里要排除a=b的情况...原创 2022-02-13 21:17:25 · 196 阅读 · 0 评论 -
内存模型.
int a = 1;int b = 2;int c = (a+b) * 10;return c;javap -c class文件转化为字节码文件1: istore_1//将int类型值存入局部变量1 2: iconst_2//将int类型常量2压入操作数栈3: istore_2//将int类型值存入局部变量24: iload_1//从局部变量1中装载int类型值5: iload_2//从局部变量2中装载int类型值6: iadd//执行int类型的加法7: bipush 10//将一原创 2021-02-08 15:34:51 · 71 阅读 · 0 评论 -
pg库创建序列号
//pg库创建序列号create sequence dbname_id_seq increment 1;//设置序列号从已有表中的最大值开始递增select setval(dbname_id_seq,select max(id) from dbname);ALTER TABLE public.so_cars_roadplans ALTER COLUMN id SET DEFAULT nextval('so_cars_roadplans_id_seq'::regclass);...原创 2020-12-30 17:10:41 · 1953 阅读 · 0 评论 -
executorService
ExecutorService 的理解和使用前言:我们之前使用线程的时候都是使用new Thread来进行线程的创建,但是这样会有一些问题。如:a. 每次new Thread新建对象性能差。b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。c. 缺乏更多功能,如定时执行、定期执行、线程中断。相比new Thread,Java提供的四种线程池的好处在于:a. 重用存在的线程,减少对象创建、消亡的开销,性能佳。b. 可有效控制最大并发线程数,提原创 2021-01-12 13:43:31 · 221 阅读 · 0 评论 -
countDownLatch与executorService的demo
package com.moxi.mougblog.base.util;import java.util.List;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class CountDownLatchU原创 2020-12-30 17:06:43 · 453 阅读 · 0 评论 -
自定义参数非空判断
package com.moxi.mougblog.base.util;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import lombok.Data;import lombok.extern.slf4j.Slf4j;import java.lang.reflect.Field;@Data@Slf4jpublic class IsEmptyUtil { @ParamCheck(原创 2020-12-24 18:07:17 · 302 阅读 · 1 评论 -
countDownLatch
package com.moxi.mougblog.base.util;import java.util.HashMap;import java.util.Map;import java.util.concurrent.CountDownLatch;public class CountDownLatchUtils { public static void main(String[] args) { int threadNum = 10; CountDow原创 2020-12-22 16:20:56 · 150 阅读 · 1 评论 -
httpPost发送json或xml参数的请求
import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.HttpClientBuild原创 2020-12-02 11:22:48 · 910 阅读 · 0 评论 -
生成PDF
public File getPdfFile(DocumentDto document){ byte[] documentPdf = DocumentPDFUtil.getDocument(document); //字节数组,位置,文件名 File file = PdfUtil.createPdfFile(documentPdf,position,fileName); } private static byte[] getDocument(DocumentDto document){ .原创 2020-11-02 10:05:12 · 114 阅读 · 0 评论 -
关于统计list中int数据
有时候我们会遇到,求一个数组中,一个int字段的和为多少的需求,代码如下:Lis<Student> list = new ArrayList<>();int sum = list.stream().mapToInt(Student::getNum).sum();有点意思吧,还有更多呢IntSummaryStatistics statistics = list.stream().mapToInt((student) -> student.getNum()).summar原创 2020-09-16 22:15:17 · 685 阅读 · 0 评论 -
通过url创建file,并转成base64
通过url创建fileprivate File getFile(String url){ String fileName = url.substring(url.lastIndexOf(".")); File file = new File(fileName); URL urlFile = null; InputStream in = null; OutputStream out = null; try{ urlFile = new URL(url); in = urlFile.ope原创 2020-08-29 14:08:18 · 751 阅读 · 0 评论 -
关于访问https时,绕过证书验证
private JSONObject doPost(String url){ //创建httpClient HttpClient client = HttpClientBuilder.create().build(); //绕过证书验证 try{ HttpsClientUtil.trustAllHttpsCertificates(); } catch (Exception e){ e.printStackTrace(); } HostnameVerifier hv = new Host原创 2020-08-29 13:23:52 · 1756 阅读 · 1 评论 -
不同类型数据的兼容保存--反射
最近在工作中遇到了这种的需求在一个视频页面,要通过websocket实时保存很多数据,但是数据的字段类型不一致(如果订单号是String,客户id是Long,客户下单的时间是Date),1、前端每修改一个数据(每次只会传过来一个数据),就会发送信令通知到后端,保存进数据库。2、最后还要在关闭页面时,发送所有数据到后端,再统一做一次保存。对于这样的场景,就无法通过固定类型去接收参数,于是采用了反射的方式来处理,下面上代码思路:1、首先,我把所有前端会传过来的值,全部写在一个dto中,并和前端约定好原创 2020-08-23 23:10:54 · 172 阅读 · 0 评论 -
关于动态sql的子查询
工作中遇到了一个查询需求,想查出来的数据结构是这样的 List<Student> studentList = studentMapper.selectStudentInfo(); Student的结构是这样的public class Student{ private Long studentId; private List<Report> reportList;}public class Report{ private String type; private S原创 2020-07-02 22:32:35 · 849 阅读 · 0 评论 -
pgsql中多表联查,查数据在另一张表的数量-6.10.20
现有以下两张表 现在我想查出,每一个班级,有多少位学生select class.id,class.name,table.studentNum from class left join --联合student和class表,先查出每个班有多少个学生(select class.id,count(student.id) as studentNum from class left join student on class.id=student.class_id原创 2020-06-10 22:07:03 · 2117 阅读 · 1 评论 -
关于内省Introspector-工作小结6.8.20
今天在工作中,遇到了一个比效复杂,但不困难的,,,困扰吧。是这样的,我从数据库中,读取出了最近七天的数据(当然是个list,属性值和后面的dto中属性值一样),然后我需要按天数把它装进一个dto(这个dto里包含了一整天的数据,而一天的数据不超过10条)。举个粟子吧public class user{ private String id1; private String name1; private String sex1; private String date1; private Str原创 2020-06-08 22:37:18 · 131 阅读 · 0 评论 -
配置git的ssh私钥配置
今天项目组来了一个新同事,看到他那一头茂密的黑发,我大概就知道,这段时间有的忙了。果不其然,在给他加了代码权限后,同事用http的方式clone下了代码,但是不能pull和push,来找我求助。看了一下,不知道问题在哪儿,就帮他在github上配置了一个私钥,用ssh的方式,就可以pull和push代码了,具体操作如下:首先,肯定要安装好git(废话,我都知道我pull、push不了代码了,肯定是装了git的啊)第二步,右键git bash here打开命令行3、输入ssh-keygen -t r原创 2020-06-04 21:11:49 · 257 阅读 · 0 评论 -
关于动态sql-工作小结6.4.20
在工作中,有时候会遇到,把多张表中的数据拼接起来的需求,可以使用到concat()函数同样,此处的数据库为pgsqlselect concat(id,name) from student显示的结果为id+姓名的字符串,如:u_001张三但有时,又希望拼接的字符串用逗号分隔开,这时,就可以用到concat_ws()函数select concat_ws(",",id,name) from student显示的结果为id+,+姓名的字符串,如:u_001,张三同理,如果想用-分隔开,把逗号换成-原创 2020-06-04 21:00:44 · 130 阅读 · 0 评论 -
关于in与exists的sql优化(记录人生中第一次sql优化)
这是一个阳光明媚的下午,刚端起咖啡的我,余光瞥到了电脑右下角弹出的工作群消息,不禁心头一颤。在一番激烈的心理活动后,我还是先喝了一口咖啡,再点开了消息。因为我知道,如果先点开消息,那今天可能喝不到咖啡了,至少,喝不到热咖啡了。“生产问题,数据超过6000条时,查询数据接口超时,@土豆,跟踪一下”“我的偏头痛可能就是这样的消息看多了吧”,我心想着,麻利地敲下两个字:“收到”问题定位很简单,查询的sql太复杂,优化不够,导致接口超时。原sql如下:<select id="selectOrderB原创 2020-06-03 20:31:30 · 386 阅读 · 0 评论 -
工作小结5.26.20
从请求中获取ip地址public String getIp(httpServletRequest){ String ip = request.getHeader("X-forwarded-for"); if(ip == null || ip.length() == 0 || "unknown".equals(ip)){ ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unkno原创 2020-05-26 22:28:29 · 113 阅读 · 0 评论 -
数据库中对varchar类型数据排序的方法
今天在工作中遇到了一点小问题,花了很多时间,最后在同事的帮助下,很简单的就解决了,现在整理了分享给大家,希望能对大家有所帮助。项目中有对点赞(praise)数量进行排序的需求,但前端传值和数据库(mysql)中都是用的String,如果直接在sql中使用order by praise的话,排序的效果是如下图。很明显,这是不符合产品需求的。想实现按数字大小的排序,就要使用cast()方法。...原创 2020-03-09 23:14:58 · 3432 阅读 · 0 评论