博客园 - 十七年蝉
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=41617
2023-10-17T06:54:09Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
feed.cnblogs.com
https://www.cnblogs.com/zhuzhen/p/17769708.html
使用Guava的ListenableFuture完成异步多线程任务并返回结果 - 十七年蝉
private static ExecutorService executors = new ThreadPoolExecutor(5, 20, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(10), new ThreadF
2023-10-17T06:54:00Z
2023-10-17T06:54:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】private static ExecutorService executors = new ThreadPoolExecutor(5, 20, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(10), new ThreadF <a href="https://www.cnblogs.com/zhuzhen/p/17769708.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/17565006.html
MySQL在分页查询时的limit深分页问题 - 十七年蝉
在平时业务中我们会发现当分页数据特别大的时候,会出现SQL很慢的情况,下面我们来分析下为什么会出现这种情况以及如何去解决 一、limit深分页问题解析 我们有如下一张表 CREATE TABLE account ( id int(11) NOT NULL AUTO_INCREMENT COMMENT
2023-07-19T02:59:00Z
2023-07-19T02:59:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】在平时业务中我们会发现当分页数据特别大的时候,会出现SQL很慢的情况,下面我们来分析下为什么会出现这种情况以及如何去解决 一、limit深分页问题解析 我们有如下一张表 CREATE TABLE account ( id int(11) NOT NULL AUTO_INCREMENT COMMENT <a href="https://www.cnblogs.com/zhuzhen/p/17565006.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/17428571.html
简单接口限流能力实现 - 十七年蝉
使用AOP注解方式在controller接口上实现的请求接口限流 一:核心逻辑 package com.simple.common.aop;import com.simple.common.model.ErrorCode; import com.simple.common.model.Operati
2023-05-24T07:51:00Z
2023-05-24T07:51:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】使用AOP注解方式在controller接口上实现的请求接口限流 一:核心逻辑 package com.simple.common.aop;import com.simple.common.model.ErrorCode; import com.simple.common.model.Operati <a href="https://www.cnblogs.com/zhuzhen/p/17428571.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/16720609.html
Java使用HttpClient免证书去调用https的方案 - 十七年蝉
一、依赖引入 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.7</version> </dependency> 二、使用HttpCl
2022-09-22T11:21:00Z
2022-09-22T11:21:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】一、依赖引入 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.7</version> </dependency> 二、使用HttpCl <a href="https://www.cnblogs.com/zhuzhen/p/16720609.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/16616359.html
线程池执行流程图 - 十七年蝉
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory t
2022-08-23T07:24:00Z
2022-08-23T07:24:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory t <a href="https://www.cnblogs.com/zhuzhen/p/16616359.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/16355075.html
记一次MySql唯一索引在left join连表查询没走索引的问题 - 十七年蝉
在新建一张账单结算信息表bill_settlement_info的时候,建立的唯一索引uk_bill_no(bill_no,tenant_id)。由于列表查询用到该表的字段。所以在sql中自然做了jeft join查询。 on条件是bill.billNo=bill_settlement_info.b
2022-06-08T03:35:00Z
2022-06-08T03:35:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】在新建一张账单结算信息表bill_settlement_info的时候,建立的唯一索引uk_bill_no(bill_no,tenant_id)。由于列表查询用到该表的字段。所以在sql中自然做了jeft join查询。 on条件是bill.billNo=bill_settlement_info.b <a href="https://www.cnblogs.com/zhuzhen/p/16355075.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/15990652.html
MySql 事务隔离级别简述,以及为什么互联网项目用:读已提交(Read Commited)这个隔离级别 - 十七年蝉
MySql 事务隔离级别 事务隔离级别 脏读 不可重复读 幻读 读未提交(read-uncommitted) 是 是 是 读已提交(read-committed) 否 是 是 可重复读(repeatable-read) 否 否 是 串行化(serializable) 否 否 否 1、脏读:事务A读取
2022-04-19T09:31:00Z
2022-04-19T09:31:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】MySql 事务隔离级别 事务隔离级别 脏读 不可重复读 幻读 读未提交(read-uncommitted) 是 是 是 读已提交(read-committed) 否 是 是 可重复读(repeatable-read) 否 否 是 串行化(serializable) 否 否 否 1、脏读:事务A读取 <a href="https://www.cnblogs.com/zhuzhen/p/15990652.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/15638393.html
Java 线程是如何启动的? - 十七年蝉
Java启动线程的代码: new Thread(() -> { // todo }).start(); // JDK 源码 public synchronized void start() { if (threadStatus != 0) throw new IllegalThreadStateEx
2021-12-03T08:00:00Z
2021-12-03T08:00:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】Java启动线程的代码: new Thread(() -> { // todo }).start(); // JDK 源码 public synchronized void start() { if (threadStatus != 0) throw new IllegalThreadStateEx <a href="https://www.cnblogs.com/zhuzhen/p/15638393.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/14048078.html
Java 使用Stream处理List对象去重 - 十七年蝉
// 根据name去重 List<Person> unique = persons.stream().collect( Collectors.collectingAndThen( Collectors.toCollection(() -> new TreeSet<>(Comparator.compa
2020-11-27T07:08:00Z
2020-11-27T07:08:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】// 根据name去重 List<Person> unique = persons.stream().collect( Collectors.collectingAndThen( Collectors.toCollection(() -> new TreeSet<>(Comparator.compa <a href="https://www.cnblogs.com/zhuzhen/p/14048078.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/13344563.html
关于ThreadLocal的一道面试题 - 十七年蝉
1 public class TestThreadLocalNpe { 2 private static ThreadLocal<Long> threadLocal = new ThreadLocal(); 3 4 public static void set() { 5 threadLocal.s
2020-07-20T05:30:00Z
2020-07-20T05:30:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】1 public class TestThreadLocalNpe { 2 private static ThreadLocal<Long> threadLocal = new ThreadLocal(); 3 4 public static void set() { 5 threadLocal.s <a href="https://www.cnblogs.com/zhuzhen/p/13344563.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/12335435.html
idea 自定义注释模板 - 十七年蝉
自定义的格式: * * * @Description * $param$ * @Author $user$ * @Date $time$ $date$ * @return $return$ **/ $param$使用下面的语句: groovyScript("def result='';def par
2020-02-20T05:54:00Z
2020-02-20T05:54:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】自定义的格式: * * * @Description * $param$ * @Author $user$ * @Date $time$ $date$ * @return $return$ **/ $param$使用下面的语句: groovyScript("def result='';def par <a href="https://www.cnblogs.com/zhuzhen/p/12335435.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/11347104.html
了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透? - 十七年蝉
面试的时候大家都会碰到缓存的问题,而缓存中必问的就是:缓存雪崩和穿透。而且一出现就会是致命的问题。所以我们一定要做好准备。下面我将为大家总结了一份这两类的问题的解决办法和预防方法。 面试题剖析 缓存雪崩 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请
2019-08-13T09:10:00Z
2019-08-13T09:10:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】面试的时候大家都会碰到缓存的问题,而缓存中必问的就是:缓存雪崩和穿透。而且一出现就会是致命的问题。所以我们一定要做好准备。下面我将为大家总结了一份这两类的问题的解决办法和预防方法。 面试题剖析 缓存雪崩 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请 <a href="https://www.cnblogs.com/zhuzhen/p/11347104.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/11245136.html
String字符串用逗号拼接,防止最后一位是逗号 - 十七年蝉
StringBuilder sb = new StringBuilder(); for(String s strArr) { if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号! sb.append(","); } sb.append(s); ...
2019-07-25T08:31:00Z
2019-07-25T08:31:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】StringBuilder sb = new StringBuilder(); for(String s strArr) { if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号! sb.append(","); } sb.append(s); ... <a href="https://www.cnblogs.com/zhuzhen/p/11245136.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/11098332.html
dubbo 使用Multicast注册中心找不到Provider (No provider available for the service) - 十七年蝉
使用Multicast注册中心配置,缺省配置为通过Multicast注册中心广播互相发现。所以在同一台机器时需设置unicast=false:即:multicast://224.5.6.7:1234?unicast=false,否则发给消费者的单播消息可能被提供者抢占,两个消费者在同一台机器也一样,
2019-06-27T09:20:00Z
2019-06-27T09:20:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】使用Multicast注册中心配置,缺省配置为通过Multicast注册中心广播互相发现。所以在同一台机器时需设置unicast=false:即:multicast://224.5.6.7:1234?unicast=false,否则发给消费者的单播消息可能被提供者抢占,两个消费者在同一台机器也一样, <a href="https://www.cnblogs.com/zhuzhen/p/11098332.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/10275586.html
MySQL实现阶段累加的sql写法 ,eq:统计余额 - 十七年蝉
最近项目碰到一个新的需求,统计每日充值/消费之后的余额。对于这种需求,其实也很简单,只需要在每次充值/消费后,计算下余额,然后保存下来就可以了。但是对于这种需求,一条sql就能搞定,都不需要做冗余字段。 用图表展示会更详细: 要求的结果: MySQL写法一: 写法二: 引用文章地址:https://
2019-01-16T02:20:00Z
2019-01-16T02:20:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】最近项目碰到一个新的需求,统计每日充值/消费之后的余额。对于这种需求,其实也很简单,只需要在每次充值/消费后,计算下余额,然后保存下来就可以了。但是对于这种需求,一条sql就能搞定,都不需要做冗余字段。 用图表展示会更详细: 要求的结果: MySQL写法一: 写法二: 引用文章地址:https:// <a href="https://www.cnblogs.com/zhuzhen/p/10275586.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/10156122.html
springboot使用Redis,监听Redis键过期的事件设置与使用代码 - 十七年蝉
我使用的是Windows下的Redis服务,所以一下Redis设置都是在Windows平台进行。 1、修改Redis配置文件 1.1:Windows下的Redis存在两个配置文件 修改带有service的配置文件才会有效。 打开配置文件,找到下面一行代码: notify-keyspace-event
2018-12-21T07:41:00Z
2018-12-21T07:41:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】我使用的是Windows下的Redis服务,所以一下Redis设置都是在Windows平台进行。 1、修改Redis配置文件 1.1:Windows下的Redis存在两个配置文件 修改带有service的配置文件才会有效。 打开配置文件,找到下面一行代码: notify-keyspace-event <a href="https://www.cnblogs.com/zhuzhen/p/10156122.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/10135270.html
Oracle 有排序的分页SQL写法 - 十七年蝉
第一种: 第二种: 第一种比第二种效率会高,这是因为:CBO 优化模式下,Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率。对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 10就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROW
2018-12-18T01:40:00Z
2018-12-18T01:40:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】第一种: 第二种: 第一种比第二种效率会高,这是因为:CBO 优化模式下,Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率。对于第一个查询语句,第二层的查询条件WHERE ROWNUM <= 10就可以被Oracle推入到内层查询中,这样Oracle查询的结果一旦超过了ROW <a href="https://www.cnblogs.com/zhuzhen/p/10135270.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/10101208.html
Mybatis order by语句使用<Choose><When>动态拼装无效的原因及解决方法 - 十七年蝉
在使用 动态拼接order by 语句是${}和#{}是无效的原因,#{}会将参数格式化为 'params',带单引号包括的状态。因此会无效。改为使用${},就OK了
2018-12-11T03:34:00Z
2018-12-11T03:34:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】在使用 动态拼接order by 语句是${}和#{}是无效的原因,#{}会将参数格式化为 'params',带单引号包括的状态。因此会无效。改为使用${},就OK了 <a href="https://www.cnblogs.com/zhuzhen/p/10101208.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/9475171.html
计算字符串中指定字符最大连续出现的次数 - 十七年蝉
//连中次数public static int LzNum(String str) { // 分割成数组 char[] c = str.toCharArray(); // 定义一个记住最大次数的变量 int max = 0; // 循环比较 for (int i = 0; i max) { ...
2018-08-14T08:01:00Z
2018-08-14T08:01:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】//连中次数public static int LzNum(String str) { // 分割成数组 char[] c = str.toCharArray(); // 定义一个记住最大次数的变量 int max = 0; // 循环比较 for (int i = 0; i max) { ... <a href="https://www.cnblogs.com/zhuzhen/p/9475171.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zhuzhen/p/9475142.html
计算字符串中连续出现最多的字符串和长度 - 十七年蝉
public static void main(String[] args) { // 定义的字符串 String str = "aabbccc"; // 分割成数组 char[] c = str.toCharArray(); // 定义一个记住最大次数的变量 int max = 0; ...
2018-08-14T07:59:00Z
2018-08-14T07:59:00Z
十七年蝉
https://www.cnblogs.com/zhuzhen/
【摘要】public static void main(String[] args) { // 定义的字符串 String str = "aabbccc"; // 分割成数组 char[] c = str.toCharArray(); // 定义一个记住最大次数的变量 int max = 0; ... <a href="https://www.cnblogs.com/zhuzhen/p/9475142.html" target="_blank">阅读全文</a>