自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一只小菜鸡

欢迎指错

  • 博客(13)
  • 收藏
  • 关注

原创 AtomicInteger的底层实现CAS

我们都知道在Java中i++操作是线程不安全的操作,虽然他看起来只有一行,像是只有一步操作,其实可以拆分开出来三步:第一步:从内存中读出值i;第二步:计算i的值;第三步:将计算得到的i的值替换内存中原有的i;但是以上的3个步骤不是一个原子操作,所以就会出现线程安全的问题,看下面的例子:package com.ck.prefix;import java.util.concu...

2018-12-25 20:55:51 1254

原创 Spring AOP实现多数据源动态切换

前言:前面的一篇文章我们实现了mysql数据库的主从同步,那么这一篇开始我们用AOP来简单实现多数据源的动态切换;要实现的功能:设置读数据库和写数据库,当查询数据的时候从读数据库读取,当插入数据的时候插入写数据库,读写数据库是主从关系,这样就可以实现读写分离了;首先看一下我的项目目录结构,然后我们一步一步的实现: 1、配置读写数据源:既然是设置读写2个数据库,那么肯定是要配置2个数...

2018-12-20 20:25:35 1341

原创 Mysql 5.7实现主从(Master/Slave)同步安装与配置

前言:我的主数据库是安装在Centos6.1上的,从数据库是安装在window上的;第一步:centos安装mysql:1、参考文档:https://jingyan.baidu.com/article/9f63fb91728616c8400f0eed.html                       https://blog.csdn.net/xlgen157387/article...

2018-12-19 20:46:48 958

原创 JDK的动态代理和Cglib的动态代理比较

1、讲动态代理之前,我们先了解下什么叫代理,从字面意思我们也能看出来意思就是代替某人做事情,看下面的例子:package eureka.server.proxy;public interface UserService { void printName();}这是一个UserService接口类;package eureka.server.proxy;publi...

2018-12-18 17:12:58 350

原创 二叉查找树的基本操作与实现(二叉链表实现)

package eureka.server.tree;public class BinarySearchTree<T extends Comparable> implements Tree<T>{ //根节点 protected BinaryNode<T> root; public BinaryNode<T> getR...

2018-12-14 15:58:10 544

原创 springboot整合Mybatis项目源码分析

我们先来看看Mybatis的几个核心类SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession之间的关系;  大致流程是这个样子的,mybatis通过SqlSessionFactoryBuilder类的build方法和配置文件生成SqlSessionFactory对象,而SqlSession对象是通过SqlSessionFactor...

2018-12-12 17:07:00 939

原创 Springboot整合Mybatis项目搭建

实战第一,先创建一个springboot整合mybatis的简单例子:第一步:      创建完成后的maven配置依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3...

2018-12-11 18:06:51 1584

原创 Linux常用系统命令

1、load:查看系统负载,一般load不大于3都是正常的,如果load的值大于5就表示系统负载严重;命令:top或者uptime2、cpu的利用率:命令: top | grep Cpu3、磁盘剩余空间:命令:df -h(表示按单位格式化输出)4、网络traffic:命令:sar -n DEV 1 1   (-n表示汇报网络情况,DEV则表示查看各个网卡的网络情况,第一...

2018-12-07 18:32:46 438

原创 git常用操作命令

git config --global user.name "18521517220" --配置git用户名git config --global user.email "18521517220@163.com" --配置git邮箱git config --list --查看git配置信息ssh-keygen --生成公钥和私钥(密钥的存放位置:C:\Users\v_chengkui\...

2018-12-06 20:47:19 199

原创 源码解析ThreadLocal如何做到线程之间的数据隔离

前言: 我们都知道ThreadLocal能做到线程数据隔离,那么底层到底是怎么做到的,通过解析源码来一探究竟!首先我们来看看ThreadLocal的最重要的set方法,源代码如下: public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap...

2018-12-05 11:34:13 1466 2

原创 Java如何捕获线程的非受检异常

考虑这样的一个问题:在主线程main方法里面,启动一个子线程,这个子线程抛出了一个非受检异常,那么我们如何捕获这个异常呢,可能大部分读者可能想在主线程里面使用try、catch的方法,像下面这样:package eureka.server.paixu;/** * 捕获java线程的非受检异常 */public class MyUncaughtExceptionHandler{...

2018-12-04 16:07:28 664

原创 Java排序之快速排序

快速排序的思想:快速排序是冒泡排序的升级版本,他的基本思想是分而治之、迭代;一、排序步骤:1、先选一个基准元素(一般是数组的最后一个元素),一这个基准元素为基准对剩下的元素依次进行比较,对于比基准元素小的元素,放到基准元素的左边,比基准元素大的元素放到基准元素的右边,这样经过一轮排序之后基准元素左边的元素比基准元素都要小,基准右边的元素都比基准元素大,再对基准元素左边和右边做同样的比较操作...

2018-12-03 16:39:12 164

原创 Centos7关闭防火墙

查看防火墙的状态:systemctl status firewalld.service关闭防火墙:systemctl stop firewalld.service禁止开机启动防火墙:systemctl disable firewalld.service

2018-12-03 10:46:52 223

空空如也

空空如也

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

TA关注的人

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