
亲力亲为
文章平均质量分 62
跌撞江湖
这bug很帅
展开
-
quartz,java世界里面的任务管理容器
quartz,java世界里面的任务管理容器。至于为什么会有misfire这个概念,我想可以重这三个方面来进行说明:1 所有的线程都在忙于更高优先级的任务2 任务本身CRASH了3 代码的BUG,导置错误的设置了JOB基于这3种原因,其实也是现实世界中的常理。没有任何事情,都能保证100%运行OK。quartz提出了misfire的理论,让任务在错过之后,还能正常的运行。以下分别对几种类型的JOB进行说明:without repeating(不重复的JOB)这里只列出有代表的转载 2021-02-04 15:18:50 · 178 阅读 · 0 评论 -
各map的key、value为null的统计记录
原创 2021-02-03 12:26:49 · 274 阅读 · 0 评论 -
java8,Stream的理解和使用
1、Stream 在java8中是对集合Collection对象功能的增强2、专注于对集合对象进行便利,高效聚合,大批量数据操作3、常用方法:filter,map,limit等等…实例代码:.....List<String> listStr= listObj.stream() //筛选出卡路里大于400的 .filter(d -> d.getCalories() < 400) //抽取名字属性创建一个新的流 .map(Dish::getNam原创 2020-08-12 14:51:24 · 224 阅读 · 0 评论 -
java用http请求高德,百度地图坐标以及驾驶时长
高德:根据起始地计算驾驶时间```java//驾车 @Override public double getDrivingTime(String sendAddr, String receiverAddr) { String urlStr = "https://restapi.amap.com/v4/direction/truck?key=244f1717f5857cddfxxxxxx&size=4&origin="; String send原创 2020-07-03 09:00:10 · 793 阅读 · 0 评论 -
数据库SQL优化大总结之 百万级数据库优化方案
数据库SQL优化大总结之 百万级数据库优化方案网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全原创 2020-06-29 14:33:02 · 151 阅读 · 0 评论 -
优化Mysql数据库的8个方法
优化Mysql数据库的8个方法本文通过8个方法优化Mysql数据库:创建索引、复合索引、索引不会包含有NULL值的列、使用短索引、排序的索引问题、like语句操作、不要在列上进行运算、不使用NOT IN和<>操作1、创建索引对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会原创 2020-06-29 14:31:38 · 189 阅读 · 0 评论 -
swagger接口模型排序和定义顺序保持一致
package com.hdd.oms.service.utils;import com.fasterxml.jackson.databind.introspect.AnnotatedField;import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;import com.google.common.base.Optional;import io.swagger.annotations.ApiModelPrope原创 2020-06-16 14:45:01 · 3375 阅读 · 2 评论 -
eureka和zookeeper的区别
注册中心规则每一个微服务启动的时候,都需要去注册中心注册(eureka或zookeeper或其他)同类服务注册的服务名必须相同,不同类服务注册的服务名一定不能相同(订单服务部署5台服务器,那么这5台微服务在注册中心中注册的服务名必须一致,例如ORDER)(商品服务部署4台服务器,那么这4台微服务在注册中心中注册的服务名必须一致,例如GOODS)(订单服务和商品服务注册的服务名一定不能相同,不能同为ORDER,也不能同为GOODS)eureka是什么eureka作为分布式系统的注册中心,主要作用原创 2020-05-12 14:32:38 · 176 阅读 · 0 评论 -
Mapper的常用写法
参数包括String和List类型时,Strig类型的为表名,日志表以月为单位生成,(还可以使用按月表分区功能优化性能)一般使用Map方式注入参数。例如调用类:public int batchUpdate(List<Logs> list,String num) {Map<String,Object> paramMap = new HashMap<String,O...原创 2020-05-12 11:47:45 · 1377 阅读 · 0 评论 -
springboot使用LogAspect的切面日志
1.首先定义个切面标签源public enum Source { main("10", "微信"), platform("20", "支付宝"), driverApp("25", "app"), shipperApplet("70", "小程序"), private String code; private String name; pri...原创 2020-04-26 16:37:35 · 2753 阅读 · 0 评论 -
springboot使用POI创建world实现下载
---------------------------------后端获取response------------------------------------- ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder....原创 2020-04-24 16:22:08 · 431 阅读 · 0 评论 -
springboot后端获取response request
private HttpServletResponse getHttpServletResponse(String fileName) { ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttribute...原创 2020-04-24 16:01:23 · 895 阅读 · 0 评论 -
java自带的数据类型 为什么可以自动排序呢
java利用自定义类型对树形数据类型进行排序前言为什么集合在存自定义类型时需要重写equals和hashCode?1、先说List集合List集合在存数据时是可以重复的但是 当我们需要判断一个对象是否在集合中存在时这样就有问题了!因为我们通常判断一个对象是否在集合中存在只需要判断值就行 而List内部实现方法是用地址来进行判断的 因为我们在创建对象时即使是值都一样但是内存地址不一...原创 2020-03-25 11:00:01 · 688 阅读 · 0 评论 -
TCP/UDP/HTTP的区别和联系
“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。你应该能理解,TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:...原创 2020-03-20 15:07:33 · 138 阅读 · 0 评论 -
HTTP长连接和短连接
1.HTTP协议的五大特点1)支持客户/服务器模式2)简单快速3)灵活4)无连接每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答后,断开连接。5)无状态协议不会记录服务器客户端状态。2.保持HTTP连接状态的两种方式1)Cookie在访问统一网站时,可以将信息写入cookie,方便在不同的页面间提取信息。2)SessionSession保存在服务器上,同时将...原创 2020-03-20 11:21:35 · 91 阅读 · 0 评论 -
类与类之间的关系-依赖,关联,聚合,组合,继承泛化的区别
1)依赖依赖关系是类与类之间的联接。一个类依赖于另一个类的定义。如,一个人(Person)可以买车(Car)和房子(House),Person类依赖于Car和House的定义,因为Person引入了Car和House。与关联不同的是,Person类中没有Car和House的属性,Car和House的实例是以参量的方式传入到buy()方法中的。一般而言,依赖关系在Java语言中体现为局部变量,方法...转载 2020-03-20 11:14:01 · 620 阅读 · 0 评论 -
REST API和SOAP API区别
REST API优点:1. 轻量级的解决方案,不必向SOAP那样要构建一个标准的SOAP XML。2. 可读性比较好:可以把URL的名字取得有实际意义。3. 不需要SDK支持:直接一个Http请求就可以,但是SOAP则可能需要使用到一些Webservice的类库(例如Apache的Axis)缺点:1. 复杂的应用中,URL可能非常长,而且不容易解析。SOAP API优点:1. 定...原创 2020-01-22 17:24:02 · 1030 阅读 · 0 评论 -
java常见工具库
目前项目中常见的工具库有apache commons,google guava,再算上spring的话,需要自己从头开始写工具类的情况大大减少。 为了给广大童鞋普及一下工具库用法,减少无用功(还可能因为实现的不好留后遗症的),这里简单的介绍一下相关工具类。google guava大家应该比较陌生,这里先不介绍,????apache commons官方地址: http://commons.apache...原创 2019-12-28 15:04:27 · 161 阅读 · 0 评论 -
mysql中的CONCAT()函数的用法
select CONCAT(null,“aaaa”);select CONCAT(“aaaa”,null);上面这2种写法,返回的值都为Null所以如果要把两个变量的值concat的话,需要替换掉Null值,不然的话只要某个变量为null,结果都为null正确的写法应该是select CONCAT(ifnull(null,’’),“aaaa”);...原创 2019-12-24 11:50:45 · 268 阅读 · 0 评论 -
mysql创建索引的原则
在mysql中使用索引的原则有以下几点:1、 对于查询频率高的字段创建索引;2、 对排序、分组、联合查询频率高的字段创建索引;3、 索引的数目不宜太多原因:a、每创建一个索引都会占用相应的物理控件; b、过多的索引会导致insert、update、delete语句的执行效率降低;4、若在实际中,需要将多个列设置索引时,可以采用多列索引如:某个表(假设表名为Stu...原创 2019-12-24 11:36:03 · 101 阅读 · 0 评论 -
java实现 json属性赋值 实体属性
json 转化成实体是将 userId 赋值给 @JsonProperty(“id”) ,最后返回的是个map结构的数据@Data@ApiModel("用户信息")public class UserInfo { @JsonProperty("id") private int userId; @JsonProperty("name") private St...原创 2019-12-23 19:40:34 · 1911 阅读 · 0 评论 -
rocketmq使用过程中遇到的问题
rocketmq使用过程中遇到的问题,在这里只作为记录生产者生产数据流程:调用中间件遇到的问题:1.服务器磁盘日志写满,导致服务阻塞2.网络异常,发送给第三方接口后,返回false导致大量队列数据阻塞,重试发送3.消费端消费后返回false,导致大量队列数据阻塞,重试发送4.阿里云云盾限制IP请求服务端,导致网络异常,数据无法走队列管理5.producer.setRetryAnoth...原创 2019-12-21 17:21:19 · 6853 阅读 · 1 评论 -
Java工程服务MEM内存过高问题处理方法
搞Java开发的,经常会碰到下面两种异常:1、java.lang.OutOfMemoryError: PermGen space(Java虚拟机的堆内存不够)(1)Java虚拟机的堆内存设置不够,可以通过参数-Xms、-Xmx来调整。(2)代码中创建了大量大对象,并且长时间不能被垃圾收集器收集(存在被引用)。2、java.lang.OutOfMemoryError: Java heap s...原创 2019-12-21 09:51:03 · 1886 阅读 · 0 评论 -
Java工程服务CPU100%问题处理方法
如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载?简要步骤如下:(1)找到最耗CPU的进程;(2)找到最耗CPU的线程;(3)查看堆栈,定位线程在干嘛,定位对应代码;步骤一、找到最耗CPU的进程工具:top方法:执行top -c ,显示进程运行信息列表键入P (大写p),进程按照CPU使用率排序步骤二:找到最耗CPU的线程工具:top方法...原创 2019-12-21 09:16:25 · 359 阅读 · 0 评论 -
使用消息队列规避分布式事务问题
前阵子从支付宝转账10000元到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加10000,数据就会出现不一致状况了。这样的场景在各个类型的系统中都能找到相似的影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量也必须减1;在搜索广告系统中,当用户点击某广告后,除了在点...原创 2019-12-21 08:53:36 · 182 阅读 · 0 评论 -
在windows上搭建redis集群 - 主从复制
Redis主从复制常用的几种方式:1、一主二扑 A(B、C) 一个Master两个Slave2、薪火相传(去中心化) A-B-C,B既是主节点(C的主节点),又是从节点(A的从节点)3、反客为主(主节点down掉后,手动操作升级从节点为主节点)4、哨兵模式(反客为主的自动版,即主节点down掉后,从节点会自动升级为主节点)Redis 主从复制(一主二从):一、下载安装Redis二、配...原创 2019-12-20 16:38:37 · 148 阅读 · 0 评论 -
windows下搭建安装redis服务器(单节点)
Redis在windows平台下的安装和部署一、单机部署Redis服务1、下载Redis,直接解压到任意位置,如:D:\tools\Redis-x64-3.0.5042、运行cmd命令启动Redis服务。窗口是服务终端,如果窗口被关闭,对应的服务也会停止。注意:带后面的启动参数,如果对配置文件修改,没有带启动参数并不会生效.3、cmd命令启动客户端。集群分布式部署Redis后续...原创 2019-12-20 16:27:38 · 289 阅读 · 0 评论 -
Java技术的那些事
https://clojars.org/jar包下载地址=线程==========1.实现Runnable接口implement Runnable 接口2.任务逻辑代码Task()3.重写run函数overriderun()4.调用:Thread t = new Thread();t.start();工厂模式:1.定义一个造车接口 CreateCar2.对这个接口有N...原创 2019-12-20 10:44:52 · 492 阅读 · 0 评论 -
IDE使用技巧
IDEA中try/catch快捷键 Ctrl + Alt + tCtrl+Shift+F12 当大当前编辑框Alt+7 查看当前文件代码接口1、Ctrl+N按名字搜索类抽取方法的快捷键是 Ctrl + Alt + MIDE使用:IntelliJ IDEA隐藏不想看到的文件或文件夹:打开IntelliJ IDEA,File -> Settings -> Editor...原创 2019-12-20 10:41:02 · 554 阅读 · 0 评论 -
http协议
既然TCP/UDP是广泛使用的网络通信协议,那为啥有多出个http协议来呢?笔者曾自己动手写过一个简单的web服务器处理软件,根据我的推断(不一定准确)。UDP协议具有不可靠性和不安全性,显然这很难满足web应用的需要。而TCP协议是基于连接和三次握手的,虽然具有可靠性,但人具有一定的缺陷。但试想一下,普通的C/S架构软件,顶多上千个Client同时连接,而B/S架构的网站,十万人同时在线...原创 2019-12-20 10:39:13 · 117 阅读 · 0 评论 -
Windows查找查杀被占用端口
Windows常用命令用法:netstat -aon|findstr “端口号”tasklist|findstr “2720”终止PID进程taskkill /PID 4276强制终止PID进程taskkill /F /PID 4276kill -F 进程名 加-F参数后强制结束某进程calc-----------启动计算器rononce -p ----15秒关机mem.exe...原创 2019-12-20 10:36:35 · 268 阅读 · 0 评论 -
MySQL中find_in_set函数
find_in_set()和like的区别:在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET函数就派上用场了,下面来看一个例子。创建表并插入语句:CREATE TABLE users( id int(6) NOT NULL AU...原创 2019-12-17 18:28:58 · 113 阅读 · 0 评论 -
RocketMQ消费者配置消费场景
一个producer, 一个consumer1,一个consumer21.producer发送消息 3条DefaultMQProducer producer = new DefaultMQProducer("group"); producer.setRetryTimesWhenSendAsyncFailed(3); producer.setNamesrvAdd...原创 2019-12-14 16:03:10 · 1268 阅读 · 0 评论 -
Slf4j和logback.xml配合使用,配置控制台打印日志级别带颜色
在logback.xml文件中添加或覆盖原有的节点:<property name="CONSOLE_LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldYellow(%thread) | %boldGreen(%logger) | %msg%n"/>...原创 2019-12-12 19:33:02 · 2068 阅读 · 0 评论 -
关于inner join 与 left join 之间的区别
关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了。需求是从数据库查数据,在前端以柱形图的形式展现出来,查到的数据按行业分组,显示每个行业的户数及户数占比,涉及到的字段有A表的用户数、总用户数和B表的行业名称。本来是不管查不查的到数据,在X轴都应该显示行业名称的,结果是X、Y轴都没...转载 2019-12-04 10:56:42 · 106 阅读 · 0 评论 -
RocketMQ入门经验
源码和应用下载 这里以RocketMQ的4.3.0版本为例,本地环境为windows10,jdk1.8, maven3.2.1.源码下载地址: http://mirrors.hust.edu.cn/apache/rocketmq/4.3.0/rocketmq-all-4.3.0-source-release.zip应用下载地址: https://www.apache.org/dyn/clo...原创 2019-04-01 17:31:40 · 697 阅读 · 0 评论 -
rocketmq 中SendCallback有效性检查
Java Code Examples for com.alibaba.rocketmq.client.producer.SendCallbackThe following are top voted examples for showing how to use com.alibaba.rocketmq.client.producer.SendCallback. These examples a...转载 2019-04-11 12:21:05 · 3356 阅读 · 0 评论 -
shiro框架的简单登录说明下shiro的用法
控制器对应的登陆方法:@RequestMapping(value = "/login", method = RequestMethod.GET)public String login(@RequestParam("username") String username, @RequestParam("password") String password){ // 获取当前的 Subjec...原创 2019-04-08 11:09:47 · 117 阅读 · 0 评论 -
mybatis中mapper.xmlSQL手写总结
工作流成简述:mapper.xml–>dao接口–>service–>Controller查询: select * from 表名 where … mapper.xml;<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapp...转载 2019-04-03 11:28:18 · 1450 阅读 · 0 评论 -
配置generatorConfig.xml自动生成的代码,sql
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-confi...原创 2019-04-03 11:31:40 · 580 阅读 · 0 评论