- 博客(51)
- 收藏
- 关注

原创 如何配置线程池及使用
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:...
2019-08-24 23:01:24
610

原创 两个线程交替打印1-100奇偶数
第一种方式:public class Print奇偶数{ private static class Counter { public int value = 1; public boolean odd = true; } private static Counter counter = new Counter(); privat...
2019-07-26 10:48:36
447
1

转载 Spring MVC常用注解
Spring MVC常用注解如下:@Controller注解一个类表示控制器,Spring MVC会自动扫描标注了这个注解的类。@RequestMapping请求路径映射,可以标注类,也可以是方法,可以指定请求类型,默认不指定为全部接收。@RequestParam放在参数前,表示只能接收参数a=b格式的数据,即Content-Type为application/x-www-form-ur...
2019-04-10 14:02:46
116

转载 Redis 的 8 大应用场景!
之前讲过Redis的介绍,及使用Redis带来的优势,这章整理了一下Redis的应用场景,也是非常重要的,学不学得好,能正常落地是关键。下面一一来分析下Redis的应用场景都有哪些。1、缓存缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能,也提供了灵活的键淘汰策略,所以,现在Redis用在缓存的场合非常多...
2019-04-10 13:54:15
135

原创 最严谨的懒汉式单例模式
/** * Description:最严谨的懒汉式单例模式 * @author Mr Li * @date 2019/4/10 **/public class Singleton { private Singleton() { } //此处使用volatile修饰更严谨 private static volatile Singleton instance ...
2019-04-10 10:48:28
167

原创 如何解决高并发下缓存击穿问题
此处以行品详情为例,讲述如何解决高并发情况下如何解决缓存击穿问题,这里只是一种方法。新建商品详情类ItemDo,此处为简易写法:import java.io.Serializable;import java.math.BigDecimal;/** * Description:商品详情,这里使用简易版 * * @author Mr Li * @date 2019/4/9 **/@...
2019-04-09 14:48:38
1834
2

原创 如何解决多线程情况下ArrayList的线程不安全
此篇文章已证明了ArrayList为线程不安全的事实,如想了解请移步用一段程序证明ArrayList是线程不安全的如何解决这个问题,个人所知有以下两种方式集合工具类Collections加锁,代码如下,无报错运行import java.util.ArrayList;import java.util.Collections;import java.util.List;import j...
2019-04-08 17:44:14
609

原创 用一段程序证明ArrayList是线程不安全的
众所周知arrayList是线程不安全的,如何证明之,请看以下代码,附带运行结果。import java.util.ArrayList;import java.util.List;import java.util.UUID;/** * Description:验证arrayList为线程不安全的 * * @author Mr Li * @date 2019/4/8 **/pub...
2019-04-08 17:23:28
606
原创 如何获取mysql数据库单张表数据量
1、查询mysql自带库information_schema中的tables表进行查询//此处以t_account表为例SELECT SUM(TABLE_ROWS) FROM `information_schema`.`tables` WHERE TABLE_NAME = 't_account' ;条件允许可以这样查询,避免直接查询原表2、主键id自增连续情况下SELECT MAX(id) FROM t_account...
2021-07-06 16:29:27
855
原创 count(*)、count(1)、count(id)、count(列名)的区别
字段有索引:count(*)≈count(1)>count(字段)>count(主键 id) //字段有索引,count(字段)统计走二级索引,二级索引存储数据比主键索引少,所以count(字段)>count(主键 id)字段无索引:count(*)≈count(1)>count(主键 id)>count(字段) //字段没有索引count(字段)统计走不了索引,count(主键 id)还可以走主键索引,所以count(主键 id)>count(字段)cou...
2021-04-11 21:15:24
535
原创 如何在centos7上部署springboot项目
1、将springboot项目打成jar包,例如xxx.jar2、将jar包复制到linux文件目录下,例如/home/service/3、在/home/service/目录下执行命令行 nohup java -jar xxx.jar > 日志文件名.log 2>&1 & //指定生成的日志文件名...
2020-09-02 21:43:39
439
原创 ApplicationListener<ContextRefreshedEvent>使用
示例import com.google.common.collect.Maps;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationListener;import org.springframework.context.event.ContextRefreshedEvent;import org.springframework.stereotype.C
2020-08-12 23:21:34
3613
1
原创 双色球与大乐透号码生成器
双色球import java.util.*;/** * Description: * * @author Lenovo * @date 2020/8/9 **/public class DoubleBallUtil { public static void getDoubleBall(int num) throws Exception { if (num <= 0) { System.out.println("请输入正确的注数!");
2020-08-09 16:42:50
3894
2
原创 netty框架将ByteBuf转为String
public String convertByteBufToString(ByteBuf buf) { String str; if (buf.hasArray()) { // 处理堆缓冲区 str = new String(buf.array(), buf.arrayOffset() + buf.readerIndex(), buf.readableBytes()); } else { // 处理直接缓冲区以及复合缓冲区
2020-07-15 22:25:12
1691
原创 redis Windows版
链接:https://pan.baidu.com/s/1I457iwhokGt6zPWcF_Iq8Q 提取码:5tri 解压后在redis目录下,在命令窗口执行:redis-server.exe redis.windows.conf
2020-06-06 15:06:20
196
原创 Spring Cloud版本与Spring Boot版本之间匹配关系
spring官方文档{ "git": { "commit": { "time": "2020-06-01T19:16:34Z", "id": "9e9981d" }, "branch": "9e9981d03f6c96a5ec2392896a4cb0a4d48d0a98" }, "build": { "version": "0.0.1-SNAPSHOT", "artifact": "start-site", "name": "start.spring.io web
2020-06-02 22:16:34
766
原创 属性转换工具
直接上代码package com.lishikuan.myproject.utils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.BeanUtils;import java.util.ArrayList;import java.util.List;...
2020-04-19 21:20:11
554
原创 linux查看日志
find -type f -name “*.log” |xargs grep “reportId”find -type f -name ".log" |xargs grep “reportId”find -type f -name '.php’|xargs grep ‘hello,world!’cat *.log | grep “hahahah”##查看日志1.查看实时日志:tail ...
2020-03-01 19:34:08
482
原创 插入时存在就更新语句(通过唯一键判断)
INSERT INTO test1(a,b,c) VALUES(2,2,2) ON DUPLICATE KEY UPDATE a = 4 ,b = VALUES(b) ,c = VALUES(c)
2020-02-04 16:29:58
427
原创 规范的建表sql语句示例(自用)
CREATE TABLE IF NOT EXISTS `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键Id', `gmt_create` datetime NOT NULL COMMENT '创建时间', `gmt_modified` datetime NOT NULL COMMENT '修改时间' , `n...
2020-02-04 16:18:58
808
原创 两个线程交替打印1-100
直接上代码public class PrintNum { private static Object lock = new Object(); private static volatile int num = 0; public class PrintThread implements Runnable{ @Override public...
2020-01-07 20:57:07
914
原创 char 与 varchar 区别
在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下两者的区别。首先明确的是,char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10...
2019-10-07 20:42:01
333
转载 pycharm 2019.1.1 注册码
MTW881U3Z5-eyJsaWNlbnNlSWQiOiJNVFc4ODFVM1o1IiwibGljZW5zZWVOYW1lIjoiTnNzIEltIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ...
2019-06-27 11:12:08
9616
原创 Dubbo源码分多少层
config 配置层:对外配置接口,以 ServiceConfig, ReferenceConfig 为中心,可以直接初始化配置类,也可以通过 spring 解析配置生成配置类proxy 服务代理层:服务接口透明代理,生成服务的客户端 Stub 和服务器端 Skeleton, 以 ServiceProxy 为中心,扩展接口为 ProxyFactoryregistry 注册中心层:封装服务地址的...
2019-06-21 11:33:50
500
原创 spring boot 启动时Field xxxdao in xxxxxxx required a bean of type 'XXX' that could not be found
springboot启动类启动时报如下错误: Field deptDao in com.springcloud.service.impl.DeptServiceImpl required a bean of type 'com.springcloud.dao.DeptDao' that could not be found.解决方法如下:1、在dao层加上@Mapper注解@Mapp...
2019-06-20 17:11:01
8269
转载 Mybatis常见面试题18题
1、#{}和${}的区别是什么?答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比...
2019-06-17 17:08:10
244
原创 mybatis之trim标签
1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>prefix:在trim标签内sql语句加上前缀。suffix:在trim标签内sql语句加上后缀。suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql...
2019-06-17 16:32:20
479
原创 亲测可用sqlyog激活注册码
姓 名(Name):ttrar序 列 号(Code):8d8120df-a5c3-4989-8f47-5afc79c56e7c或者(OR)姓 名(Name):ttrar序 列 号(Code):59adfdfe-bcb0-4762-8267-d7fccf16beda或者(OR)姓 名(Name):ttrar序 列 号(Code):ec38d297-0543-46...
2019-06-14 15:45:40
47340
11
原创 Maven项目中如何引入Guava
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> &l...
2019-06-12 16:56:52
7340
转载 spring中编程式事务与声明式事务
spring中使用事务有两种方式,一种是编程式,一种是声明式。编程式事务编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。类似下面的代码,注入transactionTemplate后,执行execute方法,方法参数是一个Transac...
2019-04-15 11:07:02
2374
原创 图解mysql各种join用法
这张图明了简单的解释了LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法,如有疑问请移步:一张图看懂 SQL 的各种 JOIN 用法
2019-04-12 10:45:34
434
原创 插入排序(Insertion Sort)
插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法描述一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该...
2019-04-11 15:54:38
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人