自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(269)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java多线程之join方法

个人技术博客(IBLi)CSDN Github掘金参考资料1、Java多线程中join方法的理解2、Thread.join的作用和原理3、Thread.join的作用和原理join方法join重载方法1 join()2 join(long millis) //参数为毫秒3 join(long millis,int nanoseconds) //第一参数为毫秒,第二个参数为纳秒功能演示public class JoinDemo implement.

2020-09-21 23:16:24 474

原创 Java泛型详解

Java泛型个人技术博客(IBLi)CSDN Github掘金1、泛型定义使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后在进行强制类型转换的代码具有更好的安全性和可读性。 --《Java核心技术》泛型是在编译时期作用的;泛型变量使用大写形式,在Java库中,一般使用变量E表示集合的元素类型,K和V表示表的关键字与值的类型。2、通配符2.1 无边界通配符无边界通配符又成为非限定通配符public static void main(String[]

2020-09-19 22:54:07 55

原创 Java反射获取List的泛型

Java反射获取List的泛型public static void main(String[] args) throws NoSuchFieldException { Field listField = ListTest.class.getDeclaredField("users"); Type genericType = listField.getGenericType(); System.err.println("genericType name "

2020-09-18 20:10:47 142

原创 Java反射详解

个人技术博客CSDN Github掘金反射反向探知,在程序运行是动态的获取类的相关属性这种动态获取类的内容以及动态调用对象的方法和获取属性的机制,叫做java反射机制;反射的优缺点优点增加了程序的灵活性,避免的固有逻辑写死到程序中代码简介,提高程序的复用性缺点相比于直接调用,反射有比较大的性能消耗内部暴露和安全隐患 (因为反射可以操作private成员变量和调用private成员方法)反射的基本操作获取类对象的4种方式// 调用forName方法得.

2020-09-18 17:40:19 83

原创 FutureTask源码解析

参考资料(1) future.get方法阻塞问题的解决,实现按照任务完成的先后顺序获取任务的结果(2) Java多线程引发的性能问题以及调优策略(3) 可取消的异步任务——FutureTask用法及解析(4) FutureTask源码解读Future方法介绍public interface Future<V> { // 取消任务 可中断的方式取消 boolean cancel(boolean mayInterruptIfRunning);

2020-09-17 17:37:06 70

原创 Spring中的InitializingBean接口

Spring中的InitializingBean接口前言Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,常用的设定方式有以下三种:通过实现 InitializingBean/DisposableBean接口来定制初始化之后/销毁之前的操作方法;通过元素的 init-method/destroy-method属性指定初始化之后/销毁之前调用的操作方法;在指定方法上加上@PostConstruct或@PreDest

2020-09-08 21:27:36 33

原创 JDK自带HttpServer处理Http请求

下面是JDK自带的HttpServer处理Http请求的源码和流程,我看网上貌似还没有介绍这个的流程,所有就画了一下,如有不足,请矫正。1、官方APIhttps://docs.oracle.com/javase/7/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/HttpExchange.html2、启动一个HttpServer demo: privatestaticfinalMap<String, Htt...

2020-07-27 22:06:37 281

原创 Java调用shell脚本

public class ShellTest { private String callScript( String... workspace) { try { File dir = null; if (workspace[0] != null) { dir = new File(workspace[0]); System.out.println(workspace[.

2020-07-23 17:10:07 137

原创 Spring BeanFactory结构图

下面是我在IDEA中导出的一份Bean Factory的实现结构图,个人习惯,学习源码的时候,先要掌握一个大体的结构,有哪些方法,哪些属性,哪些实现类,依赖哪些interface或者class,掌握他们的关系之后,再仔细的去阅读和学习源码。...

2020-07-21 16:26:15 156

原创 Git统计代码量

在git客户端或服务终端输入以下命令:find . "(" -name "*.java" ")" -print | xargs wc -l效果如下:上面的每一行是你提交的文件以及行数,最后total是你这个项目提交的代码总行数。...

2020-02-10 19:33:57 374

原创 MySql IFNull()函数

背景:A 这张表的user_id 是user这整表的partner_id ,现在需要使用user的主键id正常的sqlUPDATE A old set user_id = (SELECT id FROM user WHERE partner_id = old.user_id);但是在开发环境去刷数据的时候,由于脏数据特别多,会出现赋值为null的情况,就是SELECT id ...

2020-02-10 16:49:48 131

原创 SpringBoot 项目启动加载数据到内存/Redis

@Order(1)@Componentpublic class YjStartRunner implements CommandLineRunner { @Resource private InitStartService initStartService; @Override public void run(String... args) { ...

2020-02-05 14:44:32 1292

原创 mybatis 时间区间查找

mybatis 时间区间查找 req.startTime -> date类型 <if test="req.startTime != null and req.endTime != null"> <![CDATA[ and DATE_FORMAT(ivo.created , '%Y-%m-%d')>= DATE_FORMAT(...

2020-02-03 21:33:52 527

转载 Spring获取环境变量profiles值

业务需求:针对业务的一些告警,需要区分是线上环境的告警还是开发和测试环境的告警,然后发送到不同的微信群。具体工具类:import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.contex...

2019-12-12 23:18:00 1122

原创 mybatis tingint类型对应boolean/byte

mysql数据库表中字段类型为:tinyint长度为1,即类型为:tinyint(1)使用Mybatis查询tinyint字段数据,那么tinyint的数据默认会转化为boolean类型数据,如何将改字段的java类型设置为Integer?解决方案: 1.使用ifnull(column, 0)处理该字段,个人测试过可以; 2.在jdbcUrl添加参数:tinyInt1isBi...

2019-10-17 13:35:59 1067

原创 It is required that your private key files are NOT accessible by others

It is required that your private key files are NOT accessible by others@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: UNPROTECTED PRIVATE KEY FILE! @@@@@@@...

2019-10-08 19:19:27 8592 1

原创 修改 usr/bin 目录权限

修改 usr/bin 目录权限1)重启,过程中按住 command+R,进入保护模式,点击实用工具2)打开terminal终端,输入csrutil disable3)再次重启,即可对 usr/bin 目录下文件进行修改如果要恢复保护机制,重新进入保护模式,输入csrutil enable...

2019-09-24 13:29:14 1336

原创 Mac下安装go语言开发包和配置环境

首先大家可以在 Go语言官网下载对应版本的的安装包(https://golang.google.cn/dl/):点击下载完成后双击安装就可以了。安装完成之后,打开终端,输入 go version 现实如下则安装完成:然后设置GOPATH环境变量:开始写 go 项目代码之前,需要我们先配置好环境变量。编辑 ~/.bash_profile(在终端中运行vi ~/.bash_...

2019-09-05 18:23:28 123

原创 mac 本地搭建kafka及简单案例

安装kafka$ brew install kafka(1) 安装过程将依赖安装 zookeeper(2) 软件位置/usr/local/Cellar/zookeeper/usr/local/Cellar/kafka(3) 配置文件位置/usr/local/etc/kafka/zookeeper.properties/usr/local/etc/kafka...

2019-08-10 16:30:58 474

原创 mac Vue环境的搭建&新项目创建

1、Mac下vue开发环境的搭建步骤以及新建项目总结:https://www.jianshu.com/p/2273e26ff6e82、Mac上搭建vue项目 :https://blog.csdn.net/weixin_42635599/article/details/81304077以上步骤亲测有效,十几分钟搞定环境安装和项目的新建...

2019-08-10 14:20:59 160

转载 mysql 如何查看sql语句执行时间和效率

查看执行时间1 show profiles;2 show variables;查看profiling 是否是on状态;3 如果是off,则 set profiling = 1;4 执行自己的sql语句;5 show profiles;就可以查到sql语句的执行时间;查看操作了多少行在sql语句前面加上 explain就可以了;explain select * fr...

2019-08-09 15:21:21 730

转载 springboot 打印sql执行信息日志 (sql语句,执行时间)

最近接口ab压测,发现写接口比较慢,所以需要在日志中打印一些sql的执行时间,排查问题。@Aspect@Component@Log4j2public class MapperAspect { @AfterReturning("execution(* com.lsj.xcjfs.dao.*Mapper.*(..))") public void logServiceAcc...

2019-08-09 13:59:52 3717

原创 Guava Cache本地缓存在 Spring Boot应用中的实践

概述在如今高并发的互联网应用中,缓存的地位举足轻重,对提升程序性能帮助不小。而 3.x开始的 Spring也引入了对 Cache的支持,那对于如今发展得如火如荼的 Spring Boot来说自然也是支持缓存特性的。当然 Spring Boot默认使用的是 SimpleCacheConfiguration,即使用 ConcurrentMapCacheManager 来实现的缓存。但本文将讲...

2019-08-07 21:53:54 298

转载 sonar 规则总结

参考:sonar 规则总结

2019-08-07 16:50:36 264

原创 apache bench 压测 (POST/GET)

安装ab工具yuminstallhttpd-tools参数说明-n:执行的请求个数,默认时执行一个请求-c:一次产生的请求个数,即并发个数-p:模拟post请求,文件格式为gid=2&status=1,配合-T使用-T:post数据所使用的Content-Type头信息,如果-T 'application/x-www-form-urlencoded'...

2019-08-07 12:58:17 186

原创 AOP注解检测接口响应时间

首先自定义注解:@Time@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Time { String value();}设置通知(advice)@Aspect@Order(1)@Component@Lazy(false)public class ...

2019-07-27 18:13:00 668

原创 mysql 数据类型

参考资料 :w3c :https://www.runoob.com/mysql/mysql-data-types.htmlmysql 数据类型 :https://www.cnblogs.com/-xlp/p/8617760.html

2019-07-24 19:22:01 73

原创 springboot全局异常处理 --- @ControllerAdvice

1、首先我们可以针对自己的业务创建自定义异常,系统层面,业务方面等我们系统业务层统一使用BizException,这个是自定义的。2、配置controllerAdvice下面是代码:@ControllerAdvice@ResponseBodypublic class ControllerExceptionHandler { /** * 日志...

2019-07-24 17:07:15 106

原创 LocalDateTime 时间戳 字符串 之间的转换

1、时间戳转LocalDateTime2、LocalDateTime转时间戳3、dateString 转 LocalDateTime4、LocalDateTime转dateString public static void main(String[] args) { Long time = 1562983881098L; LocalDateTime...

2019-07-13 10:41:44 3561 3

原创 java dataUtils

获取当前时间和前一天凌晨时间: LocalDateTime now = LocalDateTime.now(); refundMonitorListReq.setCreateBeginTime(getLastDay(now)); refundMonitorListReq.setCreateEndTime(getThisDay(now));/** ...

2019-07-12 19:24:32 137

原创 mybatis string转date

需求是进行列表查询,传如的参数是string,数据库的类型是timestamp(对应java的date)mybatis 中做一下处理:<if test="createBeginTime != null and createBeginTime != ''"> and create_time <![CDATA[ >= ]]> DAT...

2019-07-11 17:08:09 2267

原创 mysql中int,bigint,smallint 和 tinyint的区别详细介绍

Number 类型:数据类型描述TINYINT(size) -128 到 127 常规。0 到 255 无符号*。在括号中规定最大位数。占1个字节的存储空间。SMALLINT(size) -32768 到 32767 常规。0 到 65535 无符号*。在括号中规定最大位数。占2字节的存储空间。MEDIUMINT(size) -8388608 到 8388607 普通。0 to 16...

2019-06-26 14:09:15 2074

原创 xxl-job分布式任务调度项目搭建(单机部署demo)

今天学习了一下分布式任务开源项目xxl-job,然后自己在本地“搭建”了一个单机的任务项目。写了一个定时任务,每分钟向数据库中添加一条数据,很简单的项目,大家可以通过该项目作为xxl-job的入门小试。先介绍一下大致是怎样的吧:第一部分,xxl-job作为一个单独的项目,需要部署在tomcat上面,当然是进行一些简单的配置之后。第二部门,是我单独创建了一个springboot项目,...

2019-04-23 20:49:17 2717 3

原创 MySQL中distinct和group by性能比较

在分组字端是单字端的情况下:没有创建索引时:distinct比group by 要慢一些 在数据量为10万的时候,用时0.78秒group by 耗时0.31在创建了索引之后:discinct的时间较少了107倍group by 加快了43倍以上为实验证明大家有时间可以测试一下多字端去重!!!...

2019-04-19 16:32:51 477

转载 优化 Group By -- MYSQL一次千万级连表查询优化(转)

概述:交代一下背景,这算是一次项目经验吧,属于公司一个已上线平台的功能,这算是离职人员挖下的坑,随着数据越来越多,原本的SQL查询变得越来越慢,用户体验特别差,因此SQL优化任务交到了我手上。这个SQL查询关联两个数据表,一个是攻击IP用户表主要是记录IP的信息,如第一次攻击时间,地址,IP等等,一个是IP攻击次数表主要是记录每天IP攻击次数。而需求是获取某天攻击IP信息和次数。(以下SQ...

2019-04-19 16:22:48 978

转载 Java并发包之CountDownLatch

今天主要来看一下JUC中的CountDownLatch:public class CountDownLatchTest implements Runnable{ static final CountDownLatch countDownLatch = new CountDownLatch(10); static final CountDownLatchTest t = ne...

2019-04-03 15:09:22 166

原创 try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?

会在return中间执行!try中的return语句调用的函数先于finally中调用的函数执行,也就是说return语句先执行,finally语句后执行,但return并不是让函数马上返回,而是return语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行finally语句后才真正开始返回!但此时会出现两种情况:①、如果finally中也...

2019-03-29 20:25:57 2944

原创 数据库 DML、DDL、DCL的区别

一、DMLDML(data manipulation language)数据操纵语言:    就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作。SELECT 列名称 FROM 表名称UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值INSERT INTO table_name (列1, 列2...

2019-03-19 13:34:37 120

转载 Redis最新最全面试题

原文:https://blog.csdn.net/u010682330/article/details/810434191、什么是Redis?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写...

2019-03-11 20:14:49 158

原创 redis面试考点

1. 使用redis有哪些好处?(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)(2) 支持丰富数据类型,支持string,list,set,sorted set,hash(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行(4) 丰富的特性:可用于缓存,消息,按key设置过期...

2019-03-11 18:12:43 237

spring-boot-mybatis-mysql-demo

springboot+mybatis 实现对mysql数据的增删改查。可以直接导入项目使用启动springboot的启动类run.java,在浏览器中输入localhost:8080回车即可

2018-09-15

jsonview插件

jsonview插件,可在谷歌浏览器中安装,方便web开发中对json数据的查看和检查

2018-09-27

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除