自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 资源 (16)
  • 收藏
  • 关注

原创 shardingsphere示例配置

shardingsphere 版本:4.0.1分表配置:spring.shardingsphere.datasource.names=dsspring.shardingsphere.datasource.ds.type=com.alibaba.druid.pool.DruidDataSourcespring.shardingsphere.datasource.ds.driver-class-name=com.mysql.jdbc.Driverspring.shardingsphere.dat

2021-08-12 16:42:11 1540

原创 无序数组,找到左侧元素比它小,后侧元素比它大的元素

// 无序数组,找到元素,它左边的元素都比它小,它右边的元素都比它大 @Test public void findEleTest() { int[] arr = new int[]{1,2,3,9,5,6,10,11,13,15,17}; findEle(arr); System.out.println(list); } public void findEle(int[] nums) { // 该数组存储元.

2021-08-02 19:39:01 496

原创 根据字符出现的次数排序

@Test public void sortStringTest() { System.out.println(sortString("2a554442f544asfasssffffasss")); System.out.println(sortStringWithBuket("Aabb")); System.out.println(sortStringWithBuket("2a554442f544asfasssffffasss"));// .

2021-07-09 18:12:38 478

原创 实现一个trie树,添加和搜索字符串

@Test public void searchWordTest() { List<String> words = new ArrayList<>(2); words.add("hello"); words.add("world"); TrieNode root = new TrieNode(); addWord(words, root); System.out.println(.

2021-07-09 10:39:11 102

原创 大数据排序

如一个4G的文件,里面是无重复的数字,要求在2G内存的机器上进行排序?方案1:linux sort 命令排序方案2:分治,归并。对大文件切割,分成4个500M的文件,然后就分别读入内存,进行快排,生成4个有序的新文件;然后变成合并K个有序数组/链表的问题,即对4个有序文件,每个读入100M的数据,然后使用一个500M的输出缓冲区;然后分别读入每个文件的第一个元素,判断取最小值,append到输出缓冲区,然后从取得最小值的文件的输入缓冲区,读下一个数字,再次比较,.

2021-06-24 09:37:27 191

原创 org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer解决

背景:我们是一个文件存储和下载的服务,部署架构如下。域名------>VIP------>[同一台机器]nginx,->实际服务。现象:在浏览器上下载文件时,打开Chrome的下载页面,发现下载到5M的时候,浏览器就会自动再次从新下载,经过几次后就下载失败。查看日志:查看服务的日志,发现报错如下:http-nio-1601-exec-47 ERROR - 2021-05-25 11:14:51.888 com.xxx.FileController::downloa

2021-05-25 14:19:31 2722

原创 不同路径

leecode 66题@Test public void test() { System.out.println(uniquePaths(3,7)); System.out.println(uniquePaths(3,2)); System.out.println(uniquePaths(1,2)); } /* 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 内存消耗:35.3 MB,

2021-05-18 11:34:09 63

原创 使用最小花费爬楼梯

/*数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。示例1:输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。示例 2:...

2021-05-13 13:03:16 49

原创 按摩师问题

/*一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4。示例 2:输入: [2,7,9,3,1]输出: 12解释: 选择 1 号预约、 3 号预约和 5 号预约,总时长 = 2.

2021-05-12 17:54:20 94

转载 Linux惊群效应详解(最详细的了吧)

linux惊群效应详细的介绍什么是惊群,惊群在线程和进程中的具体表现,惊群的系统消耗和惊群的处理方法。1、惊群效应是什么?惊群效应也有人叫做雷鸣群体效应,不过叫什么,简言之,惊群现象就是多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态),如果等待的这个事件发生,那么他就会唤醒等待的所有进程(或者线程),但是最终却只可能有一个进程(线程)获得这个时间的“控制权”,对该事件进行处理,而其他进程(线程)获取“控制权”失败,只能重新进入休眠状态,这种现象和性能浪费就叫做惊群。...

2021-05-10 19:45:01 335

转载 网络编程:epoll、accept触发模式及阻塞方式的选择

select(),poll()模型都是水平触发模式,信号驱动IO是边缘触发模式,epoll()模型即支持水平触发,也支持边缘触发,默认是水平触发从表象看epoll的性能最好,但是在连接数少,并且连接都十分活跃的情况下,select和poll的性能可能比epoll好,毕竟epoll的通知机制需要很多回调函数来完成。epoll工作在两种触发模式下:Level_triggered(水平触发): 这是epoll默认的触发方式,既支持阻塞模式,也支持非阻塞模式,当被监控的文件描述符上有可读写事件发生时,epo

2021-05-08 14:32:00 844

原创 顺时针打印二维数组

/*顺时针打印二维数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 4不走 先向右移动,对应的j++ 在向下移动,对应的i++ 在向左移动,对应的j-- 在向上移动,对应的i-- 下面的print可以去掉,提高执行效率*/public class PrintArray { .

2021-05-07 15:28:41 218

原创 三角形最小路径和

执行效率有待提高。。。。/* 给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。 示例 1: 输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]].

2021-04-30 14:46:10 76

原创 买卖股票的最佳时机

/** * * * 给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。 * * 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 * * 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 * * * * 示例 1: * * ...

2021-04-29 21:26:21 76

原创 区域和检索 - 数组不可变

/** * 给定一个整数数组 nums,求出数组从索引i到j(i≤j)范围内元素的总和,包含i、j两点。 * * 实现 NumArray 类: * * NumArray(int[] nums) 使用数组 nums 初始化对象 * int sumRange(int i, int j) 返回数组 nums 从索引i到j(i≤j)范围内元素的总和,包含i、j两点(也就是 sum(nums[i], nums[i + 1], ... , nums[j])) * *...

2021-04-29 21:18:03 68

原创 最大子序和

dp练习题:做出来了,但是执行很慢。。。。/** * 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] * 输出:6 * 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 * */ @Test public void test() { int[] nums = new int[]{-2,1,-3,4,-1,2,1,-5,4}; int s = maxSubArray(nu

2021-04-29 20:11:16 58

转载 MySQL执行计划解读

Explain语法EXPLAIN SELECT ……变体:1. EXPLAIN EXTENDED SELECT ……将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2. EXPLAIN PARTITIONS SELECT ……用于分区表的EXPLAIN执行计划包含的信息id包含一组数字,表示查询中执行select子句或操作表的顺序id相同,执行顺序由上至下如果是子查询,id的...

2021-04-27 14:40:05 97

原创 找到第一个出现一次的字符,并返回

/** * 找到第一个出现一次的字符,并返回 * 如果没有,则返回空格 */ @Test public void test() { String s = "abaccdeff"; char ch = find(s); System.out.println(ch); } /** * 一个有序map,key是26个字符,value是次数,遍历一次字符串,统计各个字符的数量 ...

2021-04-16 17:27:27 106

原创 计算x的平方根

@Test public void test() { double res = sqrt(2, 0.00001); System.out.println(res); } /** * 求x的平方根 * 因为x的平方,这个函数是单调递增的,可以考虑使用二分法 * @param x * @param precision 精度 * @return */ private double ...

2021-04-13 11:24:54 148

原创 二维数组中查找目标数字

[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]5/** * 利用从左到右递增,从上到下递增的特性 * 从左下角节点开始比较判断 * 如果target比它小,则上移一行 * 如果target比它大,则右移一列 * @param matrix * .

2021-04-08 17:08:57 76

原创 计算x的n次方

@Test public void test() { int x = 2, n = -10; boolean nagtive = false; if (n < 0) { n = -n; nagtive = true; } long res = pow(x, n); System.out.println(); if (nagtiv...

2021-04-07 13:53:28 181

原创 扑克牌顺子

/** * 扑克牌顺子 * 输入长度为5的数组,数字范围0-13, 0可以替代任意数字 * 判断数组元素是否连续 * * 思路: * 先排序,然后计算0的个数,同时记录数组上一个元素的值 * 当上一个元素+1不等于当前元素时,消耗0的数量,充当连续的数字 * 同时最外层循环-1,让下一次循环继续比较本次的值 * 如此往复 * @param input * @return */ .

2021-04-06 11:28:25 43

原创 从1累加到N

@Test public void plusN() { int sum = plusN(10); System.out.println(sum); sum = 0; // for循环验证结果 for (int i = 1; i <= 10; i++) { sum += i; } System.out.println(sum); }.

2021-04-02 16:19:49 897

原创 查找环形链表的入口连接点

/** * 查找链表的环的入口 * 即找到2的位置,若无环则返回null * 1-->2-->3 * ^ | * | | * 5<--4 */ @Test public void findRingEntry() { Node node = init(5); Node head = node; Node second = he.

2021-04-01 15:24:08 96

原创 重排单链表

如下单链表:1-->2-->3-->4-->5输出:1-->5-->2-->4-->3class Node{ int val; Node next; public Node(int val) { this.val = val; } } /** * 构造链表 * @param number * @ret.

2021-04-01 14:38:31 137

原创 反转单向链表

class Node{ int val; Node next; public Node(int val) { this.val = val; } } /** * 构造链表 * @param number * @return */ private Node init(int number) { Node node = new Node(1.

2021-04-01 14:12:35 42

原创 延时队列实现

自推荐一个分布式延时消息实现:https://github.com/Roronoa-Zoro/delay-server

2021-03-29 09:52:20 67

原创 服务内存泄漏排查

个人理解算是内存泄漏的问题。缘起:在测试环境,产品说后台服务不能访问了,查看了下,发现进程突然消失了。用户用dmesg查看了下,确实被操作系统给杀了。由于这个服务是把多个微服务又聚合到一个进程里面,所有简单的认为就是消耗内存比较严重。就申请了一台8G机器。申请了8g内存的机器,启动约10小时后,查询系统可用内存,约2-300M。对Java进程进行heap dump,只有300多M大小。因此怀疑发生了内存泄漏。排查:step1:先用pmap -d{pid}命令...

2020-11-09 11:12:24 512

转载 dmesg格式化脚本

#!/bin/sh uptime_ts=`cat /proc/uptime | awk '{ print $1}'` #echo $uptime_ts dmesg | awk -v uptime_ts=$uptime_ts 'BEGIN { now_ts = systime(); start_ts = now_ts - uptime_ts; #print "system start time seconds:", start_ts; #pr.

2020-11-06 14:37:07 154

原创 生成唯一ID方案总结

方案1.snowflake算法,这个算法应该大家都不陌生,使用的也比较广泛。缺点:硬要找个缺点的话,因为这个算法常用的模式就是datacenterID,workerId,时间戳,然后自增序列,是一套跟事件相关的算法,有年限的限制。当然,也许等过个几十年,更高级的算法就出来了,这也不是事。方案2.基于redis的自增ID。缺点:ID会重复。例如:当前线程对ID自增之后,这个新值还没有复制到slave服务器,然后master服务器就挂了,这时候,如果发生主从切换,那么再次对ID自增,就.

2020-07-20 22:05:45 467

原创 给你一个以行程长度编码压缩的整数列表 nums

/** * 给你一个以行程长度编码压缩的整数列表nums。 * * 考虑每对相邻的两个元素 [freq, val] = [nums[2*i], nums[2*i+1]](其中i >= 0),每一对都表示解压后子列表中有 freq个值为val的元素,你需要从左到右连接所有子列表以生成解压后的列表。 * * 请你返回解压后的列表。 * * * * 示例: * * 输入:nums = [1,2,3,4] * 输出:[2,4,4,4] * 解释:第一对 [1,2...

2020-05-11 20:54:03 320

原创 SpringBoot进行参数化单元测试

背景:SpringBoot:2.1.9Jdk:1.8进行单元测试的时候,要测试多组数据,需要对参数数据进行参数化。方案:加载Spring主要靠@Before方法@SpringBootTest@RunWith(Parameterized.class)public class BaseServiceTest { private String data; private String key; public BaseServiceTest(String d.

2020-05-11 20:31:30 778

原创 奇偶链表

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2...

2020-04-30 18:48:28 118

原创 输入一个数组,要求输出一个等长的新数组

当时到了晚上12点,还是没想出来。然后到了答题时间,窗口关闭。错失了一个机会啊。就这么错过了了。。。第二天早上上班路上,花了10分钟,想出了下面这个方案,整体是2次循环,应该也算O(n)把。/** * 输入一个数组,要求输出一个等长的新数组 * 新数组的下标元素的和等于旧数组除当前下标元素外所以元素的乘积 * 例如: * 输入: * [1,2,3,4] * 输出: * [2...

2020-04-30 10:02:19 233

原创 移除链表元素

删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5通过次数73,762提交次数163,138来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-linked-li...

2020-04-28 19:03:49 101

原创 两两交换链表中的节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs著作权归...

2020-04-28 18:07:27 82

原创 rocketmq文件索引之我见

rocketmq:4.3消息写入概要写入流出,先写入CommitLog,然后会有异步线程写入ConsumeQueue和IndexFile文件。这个写入是顺序写。下面来看下各个文件里面的索引/offset都是什么含义。首先,消息的各种配置的类是:org.apache.rocketmq.store.config.MessageStoreConfig里面定义的CommitLog默...

2020-03-28 21:20:35 292

原创 为什么自定义的BeanDefinitionRegistryPostProcessor不能在Spring加载过程中第一阶段初始化

Spring boot:2.2.1jdk:1.8所谓的Spring加载过程的第一阶段是指下面这个地方:AbstractApplicationContext的refrsh方法的registerBeanPostProcessors(beanFactory);会进入到下面到方法里面:PostProcessorRegistrationDelegate.invokeBeanFactoryP...

2020-03-19 11:57:00 433

原创 Spring/Springboot杂记-持续更新

持续更新,遇到的各种小技巧,小难点等等。背景:项目从SpringMvc迁移到SpringBoot,项目里面包括页面资源。目录结构如下,引擎使用beetl。webapp--images--index--resources--static--WEB-INF/view注意到包括和springboot同名到静态资源目录。项目启动的时候访问页面报404.简单分析:找不...

2020-03-04 16:01:59 535

原创 合并区间

/** * 合并区间 * https://leetcode-cn.com/problems/merge-intervals/ * * 给出一个区间的集合,请合并所有重叠的区间。 * * 示例 1: * * 输入: [[1,3],[2,6],[8,10],[15,18]] * 输出: [[1,6],[8,10],[15,18]] * 解释: 区间 [1,3] 和 [2,6] 重...

2020-01-06 14:17:49 163

SOA权威指南:通过BEA AquaLogic Service Bus实现

SOA权威指南:通过BEA AquaLogic Service Bus实现

2012-01-09

gemfire开发入门

gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档gemfire开发文档

2011-09-05

flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码

flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码flex3注册码

2011-05-02

log4j使用详解log4j使用详解

log4j使用详解log4j使用详解log4j使用详解log4j使用详解log4j使用详解log4j使用详解log4j使用详解log4j使用详解log4j使用详解log4j使用详解log4j使用详解

2011-05-02

java编程规范jsp编程规范

java编程规范jsp编程规范java编程规范jsp编程规范java编程规范jsp编程规范java编程规范jsp编程规范java编程规范jsp编程规范java编程规范jsp编程规范java编程规范jsp编程规范java编程规范jsp编程规范

2011-05-02

.net 4.0 ajax

.net 4.0 ajax.net 4.0 ajax.net 4.0 ajax.net 4.0 ajax.net 4.0 ajax.net 4.0 ajax.net 4.0 ajax.net 4.0 ajax.net 4.0 ajax.net 4.0 ajax.net 4.0 ajax

2011-05-02

spring+hiberante+struts配置文件详解

SSH配置详解SSH配置详解SSH配置详解SSH配置详解SSH配置详解SSH配置详解SSH配置详解SSH配置详解SSH配置详解

2010-07-21

java EE6 api

java EE 6 api java EE 6 api java EE 6 api java EE 6 api java EE 6 api .chm 格式 完整英文版

2010-06-10

通俗易懂的23设计模式,经典之作

23种设计模式,23种设计模式,23种设计模式,通俗易懂的设计模式教程

2010-05-20

struts2API

struts2API struts2API struts2API struts2API

2010-05-20

EJB3入门经典黎活明

EJB3入门经典,基础教程,经典教程,黎活明著作

2010-05-20

jQuery基础教程第5章中文版

jQuery基础教程第5章中文版,经典的jQuery学习丛书

2010-04-17

jQuery基础教程(3,4章)

jQuery基础教程,中文版,第3,4章,jQuery的经典之作

2010-04-17

JQuery基础教程(1,2章)

jQuery基础教程中文版,第1,2章 jQuery的经典入门丛书

2010-04-17

孙卫琴Java面向对象编程源代码

孙卫琴Java面向对象编程源代码,便于您的学习

2009-07-08

空空如也

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

TA关注的人

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