- 博客(102)
- 资源 (32)
- 问答 (2)
- 收藏
- 关注

原创 restful风格
概念 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。URL定义资源:互联网所有的事物都可以被抽象为资源资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。分别对应 添加、 删除、修改、查询。...
2018-08-24 11:55:19
132823
15

原创 长沙十大情调情侣约会餐厅,你们去过哪几家?
穿梭于星城,如果有这样一家餐厅,既有浪漫的烛光晚餐,又能俯瞰美景,岂不美哉?邀请自己心爱之人在曳曳的烛光之下,慢慢品饮一杯红酒,慵懒的音乐的低吟浅唱掠过耳畔,微醺的眼眸彼此凝视,夜色无边浪漫,时间戛然而止都甜蜜无比。要爱情,也要美食,要情调,更要浪漫,盘点长沙最具情调的餐厅,只为提供恋人浪漫约会安谧之地。NO1、麓港小镇美食上榜理由:
2018-04-13 17:16:45
33920

原创 情话套路大全,哈哈哈~~~
自古套路留不住,唯有深情撩人心。套路是我学的,撩你是真心的。“你把手给我看看”(摊手)“咦,你这,命里缺我啊”“你会喜欢我吗”“不会”“那我教你好啦?”“你喜欢什么小动物”“猫”“喵”“狗”“汪”“如果我有一天想环游世界了我可以围着你绕一圈吗?”“电风扇为什么摇头”“它叫我不要不爱你”“最近我体重增加了不少,大概心里装了一个你吧”(大概你在我心里又胖了吧)“我以前...
2018-04-08 16:58:08
148934
3

原创 java简单搭建分布式架构
一般来说,数据库的数据过多,查询效率就很慢,这时候我们如果把表分库到不同的数据库,这时候访问速度就会快很多,如果并且采用多线程去访问的话,查询速度也会提高的更快,我这里是运行内存8核电脑进行测试的单个访问mysql数据库的200万数据,时间在8秒左右,但是把表分到10个数据库里面,每张表20万,总共也是200万,并且采用多线程访问,这里只需要3-5秒左右,下面是代码:jar包数据库:这里我们知道我...
2018-03-20 20:28:50
18278

原创 SpringMVC Controller单例和多例
对于SpringMVC Controller单例和多例,下面举了个例子说明下.第一次:类是多例,一个普通属性和一个静态属性。结果:普通属性:0.............静态属性:0普通属性:0.............静态属性:1普通属性:0.............静态属性:2普通属性:0.............静态属性:3所以说:对于多例情况普通属性时不会
2017-03-29 03:28:47
52070
13

转载 Java学习路线图
一、Java学习路线图 二、Java学习路线图——视频篇 六大阶段学完后目标知识点配套免费资源(视频+笔记+源码+模板)密码 第一阶段Java基础 入门学习周期:35天学完后目标:1.可进行小型应用程序开
2017-03-25 20:34:16
26100
9
原创 SVN出现Cleanup failed to process the following paths...
3、通过SQLite文件可视化工具(SQLiteExpert Professional),下载地址http://www.sqliteexpert.com/download.html ,打开.svn目录下的wc.db文件,删除wc_lock和work_queue两张表下的记录;2、通过sqlite3.exe,下载地址https://www.sqlite.org/download.html,放在.svn目录下执行;推荐先1,不行再2;
2023-10-30 09:31:04
1983
原创 排查java进程被linux杀掉
通俗的话来说,其实因为java进程占用内存太高,被linux进程评为最高分,linux内核为了自保,而把评分高的进程给杀死,如果这个java进程设置不可杀死,可能会造成linux死机,而实际查到linux上当时还有其余的一些服务在运行,其余的服务在申请内存的时候,发现内存不够,但是linux为自保就把评分高的进程给杀掉了。原因:当时还有一个docker启动的一些服务,停掉后会自动拉起,而造成原因是这些服务申请内存的时候造成了linux杀掉了评分高的服务。
2023-05-18 11:30:11
2565
原创 自定义注解
什么是注解?从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。其实说白就是代码里的特殊标志,这些标志可以在编译,类加载,运行时被读取,并执行相应的处理,以便于其他工具补充信息或者进行部署。JDK的元Annotation(元注解)?jdk中包含了...
2021-07-30 11:36:14
288
原创 红黑树分析
什么是红黑树?红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 红黑树是一种特化的AVL树(平衡二叉树),都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。 它虽然是复杂的,但它的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。 jdk1.8中map和set都是用红黑树实现的。红黑树的特征?...
2020-12-09 09:16:15
449
原创 JDK源码分析-Map接口
Map接口以键值方式存储,常用的实现类有HashMap,Hashtable,ConcurrentHashMap,TreeMap,LinkedHashMap等。 jdk1.7的Map接口的方法有如下,到了jdk1.8还有额外的增加。package java.util; public interface Map<K,V> { //获取集合代下 int size(); //判断集合是否为空 boolean isEmpty(); //...
2020-10-30 14:28:33
240
原创 redis错误 [ERR] Sorry, can‘t connect to node
[ERR] Sorry, can't connect to node 47.107.66.37:6380 绑定ip问题注释密码注释每个redis中redis.conf的requirepass,就是无密码
2020-10-29 14:29:31
807
原创 字符串分词,字符串词语切割
基本分词-BaseAnalysis基本分词是什么基本就是保证了最基本的分词.词语颗粒度最非常小的..所涉及到的词大约是10万左右.基本分词速度非常快.在macAir上.能到每秒300w字每秒.同时准确率也很高.但是对于新词他的功能十分有限基本分词具有什么功能用户自定义词典 数字识别 人名识别 机构名识别 新词发现 Χ √ Χ...
2020-10-29 14:24:49
3146
原创 JS快速解析Excel文件
<html lang="en"><head> <meta charset="UTF-8"> <title>Excel批量处理</title> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script> <script src="https://cdn.bootcss.com/xlsx/0.11.5/xl.
2020-10-26 10:26:31
2137
原创 Linux的常用命令
基本命令ifconfig 查看ipwho am i 查看当前用户su 用户名 切换用户pwd 查看当前路径ls 打印文件和文件夹qll 打印文件和子文件的详细信息ll -a 打印所有隐藏文件clear 清除命令行文件和文件夹操作mkdir 文件夹名称 创建一个文件夹mkdir -p 文件夹/文件夹 创建深层次多个文件夹mv old new 修改文件夹名称rm 具体文件 删除文件rm -r 文件夹 删除文件夹 需要用卓个 y 确认rm -rf 文件夹
2020-10-24 10:32:40
285
原创 设计模式——工厂模式(创建型模式)
概述 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行代码小结 优点: 1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,...
2020-07-30 14:39:44
329
原创 设计模式——策略模式(行为型模式)
概述: 什么是策略模式? 假如我们需要修理一个物品,我们可能需要螺丝刀,扳手,锤子等工具。 假如我们需要去旅游,可能需要乘坐飞机,火车,汽车等。 假如我们需要计算一个答案,可能需要用到加,减,乘,除等。那么按照常规的方式,可能会用if,else,switch来进行一下的条件判断操作,缺点在于代码和环境类(当前类)写到了一起,那么耦合性就很高,不利于维护,代码规则也是高内聚,低耦合,长话短说,直接上代码,看完就明白了。...
2020-07-24 16:49:06
251
原创 JMeter压力测试
创建一个线程组设置线程组参数线程数:我将它理解成模拟的用户数,假设线程数为50,那么相当于模拟50个用户; Ramp-Up Period:每个线程的执行时间间隔,如果为0那么就相当于是并发的意思; 循环次数:执行任务的次数,永远的意思就是一直循环执行,不停止; 调度器:设置开始、结束时间假设线程数为50,我们可以当做50个用户同时执行一次任务创建HTTP请求配置HTTP请求...
2020-07-23 14:09:29
904
原创 JDK源码分析-Queue, Deque
继承结构Queue接口定义public interface Queue<E> extends Collection<E> { // 将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true, //如果当前没有可用的空间,则抛出 IllegalStateException。 boolean add(E e); //将指定的元素插入此队列(如果立即可行且不会违反容量限制), //当使用有容量限.
2020-07-15 17:18:41
231
原创 JDK源码分析-ArrayList
继承结构我们都知道数组定义了长度就不可以改变了,而List其实就是可延长的数组,内部就是采用数组结构来实现的,具体怎么实现的,我们往下来看源码,首先是ArrayList 的继承结构如下:构造方法 private transient Object[] elementData; private int size;首先我们从ArrayList的构造方法来看我们可以看到super()调用父类AbstractList的构造方法,而AbstractList方法是没有任何内容的所以不需要
2020-07-11 17:24:25
262
原创 JDK源码分析-Vector
继承结构可以看出Vector集合和ArrayList集成结构一样,其实内部方法也是大同小异,这里不常用,就做学习其实现原理构造方法 protected Object[] elementData; protected int elementCount; protected int capacityIncrement; private static final long serialVersionUID = -2767605614048989439L;
2020-07-11 12:30:50
212
原创 Collection接口源码分析
存在于java.util包下所有超级接口:Iterable<E>所有已知子接口:BeanContext,BeanContextServices,BlockingDeque<E>,BlockingQueue<E>,Deque<E>,List<E>,NavigableSet<E>,Queue<E>,Set<E>,SortedSet<E>所有已知实现类:Abstra...
2020-07-10 12:29:34
282
原创 GC日志打印
Jstat –gc 4100 1000 54100:pid 查询项目pid :netstat -ano|findstr 8092 (注:8092为项目端口)250:打印频率 1秒5:打印次数S0C 年轻代中第一个survivor(幸存区)的容量 (字节)S0U 年轻代中第一个survivor(幸存区)目前已使用空间 (字节)EC 年轻代中Eden(伊甸园)的容量 (字节)EU 年轻代中Eden(伊甸园)目前已使用空间 (字节)OU Old代目前...
2020-07-09 11:45:16
479
原创 bootstraptable不排序进行列合并
需求:根据日期排序,并且根据主键自定义合并列,看网上大部分都是排序后在合并,所以自己稍微改动了下。一个函数搞定function myMergeCells(data,fieldName,colspan,target,fieldList){ var index = 0; for(var i = 0 ; i < data.length ; i++){ var oldPrjcode...
2019-09-27 11:44:04
666
原创 jdk1.7访问https请求,jdk1.8访问https请求
之前用jdk1.7去访问https,怎么都不成功,要么成功后就是返回html代码,而不是json数据,但是用jdk1.8访问就是成功的,返回的也是json数据,由于项目搭建是jdk1.7,不能够因为https问题去升级jdk,因为会很麻烦,主要因为jdk1.7默认https 请求是TLS1不支持TLS1.2,而jdk1.8是访问没问题的,下面的jdk1.7代码做了改进之后就可以访...
2019-06-01 17:19:27
7874
4
转载 npm安装过程
一、使用之前,我们先来掌握3个东西是用来干什么的。npm: Nodejs下的包管理器。webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并和打包。vue-cli: 用户生成Vue工程模板。(帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装)开始:...
2019-01-15 09:14:45
1196
原创 Vue开发工具
vscodeVSCode是微软出的一款轻量级代码编辑器,免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。VSCode推荐一个项目以文件夹的方式打开。vscode安装进入vscode官网(https://code.visualstudio.com/Download)image 双击下载的...
2019-01-14 19:11:40
9905
原创 线程死锁
先简单用生活列子介绍死锁, 2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥有2只筷子才能吃)。某一个时候,一个拿了左筷子,一人拿了右筷子,2个人都同时占用一个资源,等待另一个资源,这个时候甲在等待乙吃完并释放它占有的筷子,同理,乙也在等待甲吃完并释放它占有的筷子,这样就陷入了一个死循环,谁也无法继续吃饭。。 ...
2018-12-14 13:00:04
391
转载 线程状态
线程的几种状态转换线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态的进程除CPU之外,其它的运行所需资源都已全部获得。3、运行状态(Running):...
2018-12-14 10:48:11
178
原创 线程通信实现方式
第一种方式是wait和(notify)notifyAll的方式,一个线程负责变量的新增,一个线程负责变量的相减,一个线程操作完,另一个线程等待,具体操作请看下面的代码这里需要注意的是一定尽量要用while判断,不要用if判断第一消除notifyAll() 引起的并发问题,第二在while循环里而不是if语句下使用wait。这样,循环会在线程睡眠前后都检查wait的条件,并在条件实际上...
2018-12-14 09:34:19
314
原创 CountDownLatch的使用
countDownLatch的概念CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成了...
2018-12-13 18:49:16
586
原创 多数据库,多数据源,数据库路由
首先,要明白为什么要使用多数据库? 正常情况下,如果,百万数据在单个mysql其实没太大影响的,但是如果数据达到了,千万,亿,甚至更多,从数据库着手我们得对数据库进行拆分成多个库,但是多个库之间的数据操作,这就涉及到了我们的数据源之间的路由的,但是具体代码怎么实现的呢?这里我用spring+springmvc...
2018-12-13 10:15:28
2544
1
原创 jsp模板
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><% String path = request.getContextPath(); String basepath = request.getScheme()+"://"+reque...
2018-12-12 10:26:18
9255
原创 分布式锁
一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几台机器上然...
2018-12-11 13:50:17
436
原创 redis学习
String(字符串)redis 127.0.0.1:6379> SET name "runoob"OKredis 127.0.0.1:6379> GET name"runoob"Hash(哈希)redis> HMSET myhash field1 "Hello" field2 "World""OK"redis> HGET my
2018-12-11 10:45:08
235
转载 23种设计模式全解析
23种设计模式全解析一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解...
2018-12-10 11:48:18
180
原创 选择排序和冒泡排序
import java.util.Arrays;/** * @author liuchaojun * @date 2018-12-10 上午10:29:58 */public class SortUtils { /** * 冒泡排序 * 大的一直往后比较 往后推 * 第一次第一个和第二个比较 所以要减去一次 比较完一次最大就减一个 * 时间复杂度:(n-1)...
2018-12-10 11:19:09
146
jmeter.zip
2020-07-23
navicat和mysql5.6
2018-10-30
拆分字库文档
2018-08-27
redis集群所有文件
2018-04-12
influxDB的增删改查操作,全部测试通过了
2018-03-27
influxdb-1.2.4_windows64位
2018-03-24
spring+hessian搭建rpc体系
2018-01-23
Ajax上传文件(无需表单)实测可用
2017-08-19
Mybatis逆向工程,测试通过
2017-03-10
框架整合jar包及其它功能包_spring4.2.3+hibernate5.0.2+struts2.3.24
2017-03-10
JDBC数据库驱动程序包,Sql+mySql+oracle
2017-01-09
求大神帮忙看下代码 运行结果出不来
2018-09-11
el表达式或者struts标签取值
2017-03-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人