自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (4)
  • 收藏
  • 关注

原创 SpringBoot统一异常处理

首先定义一个异常类CustomException 。/** * 自定义异常类型 * @author kavito * @date 2019/5/31 16:39 */public class CustomException extends RuntimeException { //错误代码 ResultCode resultCode; publi...

2019-08-08 14:03:14 792

原创 JVM学习笔记整理

JVM 垃圾回收的时候如何确定垃圾?知道什么是 GC Roots ?什么是垃圾 简单来说就是内存中已经不在被使用到的空间就是垃圾 要进行垃圾回收,如何判断一个对象是否可以被回收? 引用计数法 枚举根节点做可达性分析 为了解决引用计数法的循环引用问题,Java 使用了可达性算法。通过一系列为GC Roots的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引...

2019-08-04 11:22:17 1478

原创 Java锁之ReentrantReadWriteLock

概述ReentrantReadWriteLock是Lock的另一种实现方式,我们已经知道了ReentrantLock是一个排他锁,同一时间只允许一个线程访问,而ReentrantReadWriteLock允许多个读线程同时访问,但不允许写线程和读线程、写线程和写线程同时访问。相对于排他锁,提高了并发性。在实际应用中,大部分情况下对共享数据(如缓存)的访问都是读操作远多于写操作,这时Reent...

2019-07-30 10:27:26 361

原创 Java锁之自旋锁

自旋锁是指定尝试获取锁的线程不会立即堵塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上线文切换的消耗,缺点就是循环会消耗 CPU。手写一个自旋锁import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicReference;/** * 手写一个自旋锁 * @author k...

2019-07-30 00:09:33 375

原创 基于Docker构建MySql的主从复制

Docker使用以及安装MySQL看我上一篇的介绍:Docker安装MySQL。基于docker实现一主两从,看下docker镜像,mysql版本还是用5.6。首先创建挂载外部数据目录,在宿主下创建三个目录/etc/mysql_cluster/master,/etc/mysql_cluster/slave1,/etc/mysql_cluster/slave2mkdir -p/e...

2019-07-19 22:52:11 439

原创 MySQL优化

MySQL底层原理sql语句编写和解析的过程:编写过程:select dinstinct ...from...join...on ..where...group by...having...order by...limit...解析过程: from...on...join...where...group by...having...select dinstinct...order by...

2019-07-19 15:24:56 473 1

原创 Docker安装MySQL

首先你要先安装docker,安装教程这里简单概括一下安装docker1、检查内核版本,必须是3.10及以上uname -r(版本不够)yum update 升级软件包及内核2、安装dockeryum install docker3、输入y确认安装4、查看docker版本:docker -v5、启动dockersystemctl start docker5、开机启动do...

2019-07-18 11:55:01 580

原创 java知识点整理

平时遇到的零散的java知识点,将会在这篇文章记录整理。1、Math.round(),Math.ceil(),Math.floor()的区别1.1、Math.round():“round”的字面意思“附近、周围”——返回与它最近的一位整数,等于5向上取整。小数点后第一位<5正数:Math.round(11.46)=11负数:Math.round(-11.46)=-11...

2019-06-28 09:35:03 1405

原创 BeanUtils.copyProperties的用法

org.springframework.beans.BeanUtils.copyProperties(Object sourse,Object target),作用就是把两个对象中相同字段进行赋值。不一定是相同对象,只要两个对象中有相同的成员变量就可以赋值。/** * @author kavito * @date 2019/6/24 15:28 */public class Test...

2019-06-24 15:31:22 3279

原创 RabbitMQ快速入门(详细)

在介绍RabbitMQ之前,我们先来看下面一个电商项目的场景: 商品的原始数据保存在数据库中,增删改查都在数据库中完成。 搜索服务数据来源是索引库(Elasticsearch),如果数据库商品发生变化,索引库数据不能及时更新。 商品详情做了页面静态化处理,静态页面数据也不会随着数据库商品更新而变化。 如果我们在后台修改了商品的价格,搜索页面和商品详情页显示的依然是旧的...

2019-06-12 10:45:33 241116 112

转载 IDEA常用快捷键

IDEA快捷方式整理与记录:【常规】 Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用...

2019-06-05 22:35:41 179 1

转载 GitHub的安装和使用

GitHub安装和使用  GitHub是一个基于git的代码托管平台,付费用户可以建私人仓库,一般的免费用户只能使用公共仓库,也就是代码要公开。Github 由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办,主要提供基于git的版本托管服务。  GitHub对于程序员的帮助如下图所示:  一.GitHub下载...

2019-05-28 20:24:13 465

原创 Semaphore信号量

Semaphore是一种在多线程环境下使用的设施,该设施负责协调各个线程,以保证它们能够正确、合理的使用公共资源的设施,也是操作系统中用于控制进程同步互斥的量。Semaphore是一种计数信号量,用于管理一组资源,内部是基于AQS的共享模式。它相当于给线程规定一个量从而控制允许活动的线程数。1.工作原理以一个停车场是运作为例。为了简单起见,假设停车场只有三个车位,一开始三个...

2019-05-09 20:23:10 439

原创 CountDownLatch

CountDownLatch是什么CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier(https://blog.csdn.net/kavito/article/details/81584580)、Semaphore、ConcurrentHashMap和BlockingQueue,它们都存在于java.util.concurrent包...

2019-05-09 18:07:05 184

原创 Elasticsearch的简单入门:(二)ES基础

Elasticsearch的简单入门:(一)ES简介与安装:https://blog.csdn.net/kavito/article/details/88289820前面我们把环境准备好了,下面继续学习ES的索引操作2.操作索引2.1.基本概念Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。对比关系:索引集(ind...

2019-03-07 10:50:59 2353 1

原创 Elasticsearch的简单入门:(一)ES简介与安装

像天猫、京东这样的商城,用户访问商城的首页,一般都会直接搜索来寻找自己想要购买的商品。而商品的数量非常多,而且分类繁杂。如果能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。面对这样复杂的搜索业务和数据量,使用传统数据库搜索就显得力不从心,一般我们都会使用全文检索技术,比如Solr,Elasticsearch。今天我们的主角是Elasticsearch。1、...

2019-03-07 10:40:56 3519 2

原创 50道mysql练习题

student(sid,sname,sage,ssex) 学生表sc(sid,cid,score) 成绩表course(cid,cname,tid) 课程表teacher(tid,tname) 教师表1、建表语句:CREATE TABLE student ( sid INT, sname nvarchar(32), sage ...

2019-02-20 23:37:18 1079

原创 mysql alter的用法--修改表,字段等信息

一: 修改表信息1.修改表名 -- 修改表名为studen1alter table student rename to student1;2.修改表注释   -- 修改表注释alter table student comment '学生表';二:修改字段信息1、(批量)新增字段-- 增加一个字段,默认为空alter table student add COL...

2019-02-13 11:51:55 5956

原创 SpringBoot的属性注入

如果抛开任何的xml,那么我们如果要配置一个Bean该怎么办?比如我们要配置一个数据库连接池,以前会这么玩:&lt;!-- 配置连接池 --&gt;&lt;bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"&gt

2019-01-08 12:12:21 2151

转载 悲观锁与乐观锁

何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线...

2018-12-14 22:29:33 179

转载 正向代理和反向代理(搬运)

代理,字面意义上来说,他就是相当于一个中间人这么个概念。带到项目中也一样,那么来这样一个比喻。用户(客户端) 代理(正,反)  提供者(服务端)。正向代理。把整个流程比如成去饭店吃饭,我们也就是用户(客户端)去饭店吃饭(发送一个请求),你知道你要吃的是鱼香肉丝(请求),可是你不能自己做,那么就需要让大厨(服务端)给你做 ,可是去了饭店,大厨是在后台的,你也不能直接去告诉大厨,因为你...

2018-12-11 22:53:41 180

原创 日期/时间相关API

日常的开发中,我们经常需要处理日期和时间的相关数据,可以看看下面的基本的用法。public class CalendarDemo { /* * 获取年月日时分秒 */ @Test public void test1(){ Calendar c=Calendar.getInstance(); System.out.println("年:"+c.get(Calendar.Y...

2018-11-30 18:04:10 568

转载 Git使用-本地项目上传到Github

干货满满:https://blog.csdn.net/zamamiro/article/details/70172900

2018-10-31 11:35:38 151

原创 文件复制

    之前面试遇到过这个需求,复制文件夹及其子文件夹下的内容到指定文件夹.突然想起来,写个程序记录一下。public class CopyFile { /* * 复制文件夹及其子文件夹下的内容到另一个文件中 */ public static void main(String[] args) throws IOException { String url1 = "D:/测试/...

2018-10-26 22:12:10 260

原创 分布式、集群和微服务理解

分布式、集群和微服务理解1、分布式:一个业务分拆多个子业务,部署在不同的服务器上。2、集群:同一个业务,部署在多个服务器上。3、集群是解决高可用的,而分布式是解决高性能、高并发的。4、集群是个物理形态,分布式是个工作方式。5、例子:一个程序员是单机,多个程序员是集群,一个后台程序员加一个前端程序员是分布式。6、微服务就是微小紧凑的服务, 提供统一简捷的 API 供外部访问, ...

2018-09-19 00:25:09 408

原创 常用Linux整理

1、ps -ef|grep命令ps命令将某个进程显示出来,grep命令是查找,中间的|是管道命令 是指ps命令与grep同时执行ps是LINUX下最常用的也是非常强大的进程查看命令grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权...

2018-09-14 23:51:11 143

原创 常用sql整理

一、谈谈left join 、right join 、inner join的理解left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举个栗子说明:---------------------------...

2018-09-14 11:22:47 2025

原创 多线程运行状态,sleep(),wait(),yield(),join()的理解

开始前,先看下线程的运行状态。线程生命周期一个线程从创建到死亡,经历了哪些状态呢创建(new)状态: 准备好了一个多线程的对象 就绪/可运行(runnable)状态: 调用了start()方法, 等待CPU进行调度 运行(running)状态: 执行run()方法 阻塞(blocked)状态: 暂时停止执行, 可能将资源交给其它线程使用 死亡(dead)状态: 线程销毁1、新...

2018-09-02 13:48:42 1936 5

转载 JVM内存分配担保机制

                                    JVM内存分配担保机制                                             转自:https://cloud.tencent.com/developer/article/1082730 在现实社会中,借款会指定担保人,就是当借款人还不起钱,就由担保人来还钱。在JVM的内存分配...

2018-09-01 23:42:24 22668 3

转载 Java垃圾回收机制

                                                        Java垃圾回收机制转自:http://www.cnblogs.com/dolphin0520/p/3783345.html  说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃...

2018-09-01 01:24:14 108

转载 Minor GC ,Full GC 触发条件

转自:http://blog.csdn.net/yhyr_ycy/article/details/52566105Minor GC ,Full GC 触发条件Minor GC触发条件:当Eden区满时,触发Minor GC。Full GC触发条件:(1)调用System.gc时,系统建议执行Full GC,但是不必然执行(2)老年代空间不足(3)方法区空间不足(4)通过...

2018-09-01 01:12:35 321

转载 Java中的常量池(字符串常量池、class常量池和运行时常量池)

转自:https://blog.csdn.net/zm13007310400/article/details/775343491.字符串常量池(String Constant Pool):1.1:字符串常量池在Java内存区域的哪个位置?在JDK6.0及之前版本,字符串常量池是放在Perm Gen区(也就是方法区)中; 在JDK7.0版本,字符串常量池被移到了堆中了。至于为什么移到堆...

2018-08-31 22:35:06 289

原创 String类和常量池

String类和常量池1、 String对象的两种创建方式:String str1 = "abcd";String str2 = new String("abcd");System.out.println(str1==str2);//false这两种不同的创建方法是有差别的,第一种方式是在常量池中拿对象,第二种方式是直接在堆内存空间创建一个新的对象。记住:只要使用new方...

2018-08-31 19:37:43 4964 1

转载 自定义线程池要点总结

自定义线程池的核心:ThreadPoolExecutor为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的进行线程控制,其中在java.util.concurrent包下,是JDK并发包的核心,比如我们熟知的Executors。Executors扮演着线程工厂的角色,我们通过它可以创建特定功能的线程池,而这些线程池背后的就是:ThreadPoolExecutor...

2018-08-31 16:07:29 858

转载 Java NIO:浅析I/O模型

在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reactor和Proactor)。 以下是本文的目录大纲:一.什么是同步?什么是异步?二....

2018-08-31 10:56:26 140

转载 复制算法的两块Survivor空间

概述:在《深入理解Java虚拟机》这本书中,对复制算法有一段这样的介绍:现在的商业虚拟机大多采用复制算法来收集新生代。复制算法将内存分为一块较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor空间,当回收时,将Eden和Survivor中还存活的对象复制到另一块Survivor上,最后清理掉Eden和刚才使用的空间。复制算法原理  :Survi...

2018-08-30 17:59:40 239

转载 MySQL数据库存储引擎:InnoDB和Myisam

1、事务处理innodb 支持事务功能,myisam 不支持。Myisam 的执行速度更快,性能更好。 2、select ,update ,insert ,delete 操作MyISAM:如果执行大量的SELECT,MyISAM是更好的选择InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表 3、锁机制不同I...

2018-08-30 14:25:52 115

原创 冒泡排序

冒泡排序,俩俩交换,每一趟下来都能选出最大的一个数。结论:N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数(每一轮冒泡的处理,比较+交换)public class BullerSort { /* * 冒泡排序:外出循环控制所有的回合,内层循环代表每一轮冒泡的处理(比较+交换) * 结论:...

2018-08-25 12:06:54 573

转载 归并排序

转自:https://www.cnblogs.com/Java3y/p/8631584.html归并排序就这么简单从前面已经讲解了冒泡排序、选择排序、插入排序,快速排序了,本章主要讲解的是归并排序,希望大家看完能够理解并手写出归并排序快速排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。归并排序的介绍来源百度百科:归并排序(MERGE-SORT)是建立...

2018-08-25 10:31:44 181

转载 快速排序

高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比...

2018-08-25 00:30:22 444

Atlas-2.2.1.el6.x86_64.rar

Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条。 解压出来Atlas-2.2.1.el6.x86_64.rpm CentOS 6.* 版本,安装命令 rpm -i Atlas-2.2.1.el6.x86_64.rpm 安装位置:/usr/local/mysql-proxy,配置文件:/usr/local/mysql-proxy/conf/test.cnf

2019-07-19

Apache commons-io-2.5.jar

Apache Commons IO 2.5 (要求 JDK 1.6),IOUtils,FileUtils,jar包下载

2018-06-01

Spring Boot教学视频

spring boot教学视频,视频生动有趣,课件、资料、源码齐全,学习的好资料

2018-05-26

Mybatis知识点整理

Mybatis知识点整理,Dome代码,简单易懂,很适合新手学习

2018-05-25

空空如也

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

TA关注的人

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