自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 mybatis generator tinyint 处理

1.tinyInt1isBit=false 控制jdbcType为byte而不是boolean2.table加上<columnOverride column="status" javaType="java.lang.Integer"/>控制生成实体的数据类型

2018-10-08 17:23:49 5275

转载 线程池

为什么用线程池博客地址 http://blog.csdn.net/qq_25806863原文地址 http://blog.csdn.net/qq_25806863/article/details/71126867有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长...

2018-09-28 19:18:15 159

转载 java 引用类型传递例外:null

众所周知的是,java中除基本类型外,参数都是引用传递。但是,有一个例外,就是当实参为null时,其实,它依然是一个值传递。也就是说,传参为null,不管函数体内用这个参数做了什么,跳出函数体后该参数依然是null或者说,引用传递退化成为了值传递。再进一步分析,其实是基本类型和指向null的非基本类型的指针,都在栈而非堆中,而引用传递的是堆内存地址。类似的还有String类型。...

2018-09-05 16:12:13 316

转载 w-tinyLFU

缓存设计是个基础架构领域里的重要话题,本号之前也有谈论过相关话题,点击原文可以看之前的介绍。 近日,HighScalability网站刊登了一篇文章,由前Google工程师发明的W-TinyLFU——一种现代的缓存。那么,什么缓存设计能够被称作是“现代”的呢? 当数据的访问模式不随时间变化的时候,LFU的策略能够带来最佳的缓存命中率。然而LFU有两个缺点:首先,它需要给每个记录项维...

2018-08-23 19:55:28 3887

转载 gc日志阅读

本文是 Plumbr 发行的 Java垃圾收集指南 的部分内容。文中将介绍GC日志的输出格式, 以及如何解读GC日志, 从中提取有用的信息。我们通过 -XX:+UseSerialGC 选项,指定JVM使用串行垃圾收集器, 并使用下面的启动参数让 JVM 打印出详细的GC日志:-XX:+PrintGCDetails-XX:+PrintGCDateStamps-XX:+PrintGCTime...

2018-08-21 16:37:34 172

转载 gitlab安装

1、配置yum源vim /etc/yum.repos.d/gitlab-ce.repo复制以下内容: [gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1 2、更新本地yum缓存sudo yum ...

2018-06-13 10:51:02 216

转载 jmap

jmapJVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件。 jmap不仅能生成dump文件,还可以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等。【内存分析】1234567891011121...

2018-05-08 15:47:35 1240

转载 log4j2

一、背景  随着业务服务(Server App)逐渐增加,我们的业务系统中的日志输出面临的问题越来越多,高并发下对磁盘io这块消耗的越来越大,因此,急需要一个高性能且最好能够支持异步输出日志的日志框架,而且能兼容市面上目前主流的日志组件(log4j1.x,logback等)二、简介  log4j2也是一款日志组件,log4j1.x升级版本,并且log4j2和log4j是同一个作者,但是log4j2...

2018-05-08 13:12:12 1117 1

转载 mysql缓存

 众所周知,系统读取数据时,从内存中读取要比从硬盘上速度要快好几百倍。故现在绝大部分应用系统,都会最大程度的使用缓存(内存中的一个存储区域),来提高系统的运行效率。MySQL数据库也不例外。在这里,笔者将结合自己的工作经验,跟大家探讨一下,MySQL数据库中缓存的管理技巧:如何合理配置MySQL数据库缓存,提高缓存命中率。  合理配置MySQL缓存 提高缓存命中率  什么时候适用MySQL缓存  ...

2018-05-07 11:35:53 1372 1

转载 gh-ost表结构修改

简介:2016年8月份,shlomi-noach在GitHub Engineering发文宣布gh-ost开源。gh-ost是什么?一个不依赖触发器实现的在线表结构变更工具.对于数据库运维人员来说,MySQL的大表表结构变更一直都是个麻烦事,为了尽量不影响业务,业内常用的解决方案无外乎三种,一是利用Percona的pt-online-schema-change,Facebook的OSC等三方工具,...

2018-05-03 11:09:26 956

转载 synchronized实现原理

实现原理synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性Java中每一个对象都可以作为锁,这是synchronized实现同步的基础:普通同步方法,锁是当前实例对象静态同步方法,锁是当前类的class对象同步方法块,锁是括号里面的对象当一个线程访问同步代码块时,它首先是需要得到锁才能执行同步代码,当退出或者抛出异常时...

2018-03-23 15:00:10 114

转载 mysql分区

一,什么是数据库分区前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会...

2018-03-16 15:27:26 133

转载 java监控之ManagementFactory分析

The ManagementFactory class is a factory class for getting managed beans for the Java platform. This class consists of static methods each of which returns one or more platform MXBeans representing th...

2018-02-12 11:08:56 313

转载 mysql 字段自动更新

应用场景:1、在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间;2、在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录修改时间;实现方式:1、将字段类型设为  TIMESTAMP 2、将默认值设为  CURRENT_TIMESTA

2018-01-03 20:16:24 1730

转载 hashmap环形链表

导读:经过前面的博客总结,可以知道的是,HashMap是有一个一维数组和一个链表组成,从而得知,在解决冲突问题时,hashmap选择的是链地址法。为什么HashMap会用一个数组这链表组成,当时给出的答案是从那几种解决冲突的算法中推论的,这里给出一个正面的理由:1,为什么用了一维数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点

2017-12-26 19:12:42 2116 1

转载 mysql 共享锁与排他锁

mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流。共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。排他锁又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获

2017-11-15 19:09:43 233

转载 ThreadLocal与Inheritable ThreadLocal

ThreadLocal使用ThreadLocal可以让线程拥有本地变量,在web环境中,为了方便代码解耦,我们通常用它来保存上下文信息,然后用一个util类提供访问入口,从controller层到service层可以很方便的获取上下文。下面我们通过代码来研究一下ThreadLocal。新建一个ThreadContext类,用于保存线程上下文信息public class ThreadConte

2017-11-07 15:28:00 260

原创 二叉树的层序遍历

import javax.swing.tree.TreeNode;import java.util.Queue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;/** * Created by heziyu-dx on 17/10/26. *//**

2017-10-26 15:06:34 194

转载 最小堆获取topK问题与堆的增删

/** * Created by heziyu-dx on 17/10/26. */public class MinHeap { private int[] data; public MinHeap(int[] data){ this.data=data; } //完全二叉树只有下标小于等于 (data.length/2 )-1才有叶子节点

2017-10-26 11:35:35 194

转载 完全二叉树与满二叉树

初次学习二叉树这种数据结构的时候,我们知道,假如一棵二叉树的高度是h,对于一棵完全二叉树,它的前h-1行一定是满的,第h行可以满也可以不满(结点必须集中于最后一行的左边),如果满则是满二叉树,不满的就是完全二叉树。概念描述不是很清晰~下边画图说明吧。 那么知道这些概念之后,我们要如何判断一棵二叉树是否是完全二叉树??? 1)如果一个结点有右孩子而没有左孩子,那么这棵树一定不是完全二叉树

2017-10-26 10:16:02 316

转载 delayqueue

在学习Java 多线程并发开发过程中,了解到DelayQueue类的主要作用:是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。这种队列是有序的,即队头对象的延迟到期时间最长。注意:不能将null元素放置到这种队列中。Delayed,一种混合风格的接口,用来标记那些应该在给定延迟时间之后执行的对象。此接口的实现必须定义

2017-10-25 22:35:05 133

转载 newFixedThreadPool

在上一章中我们概述了一下线程池,这一章我们看一下创建newFixedThreadPool的源码。例子还是我们在上一章中写的那个例子。创建newFixedThreadPool的方法:[java] view plain copypublic static ExecutorService newFixedThreadPool(int nTh

2017-10-25 10:59:51 1016

转载 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法

并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要

2017-10-24 16:58:53 165

原创 mysql之mvcc

事物隔离级别就是通过mvcc做的,readCommitted:读最新版本号的;repeadable read:读同一个版本号的;在并发读写数据库时,读操作可能会不一致的数据(脏读)。为了避免这种情况,需要实现数据库的并发访问控制,最简单的方式就是加锁访问。由于,加锁会将读写操作串行化,所以不会出现不一致的状态。但是,读操作会被写操作阻塞,大幅降低读性能。在java conc

2017-09-13 20:37:19 243

转载 zookeeper原理

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee

2017-08-24 11:05:48 223

转载 多线程之并发队列

在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全的类 ,指的是类内共享的全局变量的

2017-08-17 15:29:54 587

转载 msql分表

http://blog.csdn.net/xlgen157387/article/details/53976153

2017-08-11 15:55:44 229

转载 为什么常规HashMap不是线程安全的?

一直以来只是知道HashMap是线程不安全的,但是到底HashMap为什么线程不安全,多线程并发的时候在什么情况下可能出现问题?HashMap底层是一个Entry数组,当发生hash冲突的时候,hashmap是采用链表的方式来解决的,在对应的数组位置存放链表的头结点。对链表而言,新加入的节点会从头结点加入。javadoc中关于hashmap的一段描述如下:此实现不是同步的。如果多个

2017-08-09 15:30:08 376

转载 多线程面试题

40个问题汇总1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记

2017-08-08 16:36:05 172

原创 跳跃表实现与原理

/** * 跳表节点数据存储结构 */ class SkipNode> { public final E value; //节点存储的数据 public final SkipNode[] forward; //节点的指针数组 /** * 根据节点的层级构造一个节点 * @param level 节点层级

2017-08-07 15:59:14 204

原创 http相关知识点

http相关知识点http是一种基于tcp协议的无状态的应用层协议,1.1加入keepAlive机制 由三部分组成 请求行 消息报头 请求体1.常用的http方法有哪些 .get 请求被uri识别的资源 post 用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。 head 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验

2017-07-29 11:11:29 215

转载 nio简单demo,帮助理解io与nio区别

服务器 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.

2017-07-26 17:48:59 515

原创 Integer==陷阱

Part 1.创建Integer//话不多说,Integer==1;与Integer j=1000;源码执行如下 public static Integer valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i

2017-07-25 18:29:00 477

原创 mysql-删除重复数据

SELECT*FROMtable_demoWHERENAME IN (SELECTNAME,count(1)FROMtable_demoGROUP BYNAMEWHEREcount(1) > 1)AND id NOT IN (SELECTmin(id)FROMtable_demoGROUP BYNAME)

2017-07-25 17:12:12 144

原创 高级程序员的自我修养

1.中间件1.mq2.netty2.数据库1.redis 结构 集群 api 事物2.mysql 引擎 索引3.mongo2.数据结构算法3.并发多线程4.虚拟机1.jvmm5.coreJava6.设计模式 1.策略模式 2.观察者模式 3.责任链模式 4.单例

2017-07-19 16:20:44 281

原创 写个责任链模式(混用观察者)

定义:责任链模式重点在于链上,可以在发生者和处理者之间解耦,使事件在链上传递,直到有一个类处理了这个事件。在工作中,我们跟观察者模式混用在一起,观察者:@Componentpublic class XEventDispatch implements Observer { @Autowired private ListxEventCustomers; publ

2017-07-18 14:26:55 497

转载 hibernate的悲观锁与乐观锁实现

Hibernate支持乐观锁。当多个事务同时对数据库表中的同一条数据操作时,如果没有加锁机制的话,就会产生脏数据(duty data)。Hibernate有2种机制可以解决这个问题:乐观锁和悲观锁。这里我们只讨论乐观锁。      Hibernate乐观锁,能自动检测多个事务对同一条数据进行的操作,并根据先胜原则,提交第一个事务,其他的事务提交时则抛出org.hibernate.StaleOb

2017-07-13 19:58:00 277

转载 写个观察者模式

public class PriceObservable extends Observable { private Double price; public PriceObservable(Double price){this.price=price;} public void setPrice(Double price){ this.price=pr

2017-07-07 16:11:25 263

原创 写个单例

public class Singleten { /** * 关键点 1.静态函数以及静态对象 * 2.私有构造函数 * 3.双重检查 */ private static volatile Singleten s; public static Singleten getInstance() { i

2017-07-07 15:39:59 163

转载 sleep与wait区别

1、每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交互,来实现同步方法或同步块。sleep()方法正在执行的线程主动让出CPU(然后CPU就可以去执行其他任务),在sleep指定时间后CPU再回到该线程继续往下执行(注意:sleep方法只让出了CPU,而并不会释放同步资源锁!!!);wait()方法则是指当前线程让自己暂时退让出同步资源锁,以便其他正在等待该资源的线

2017-07-07 11:28:42 313

空空如也

空空如也

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

TA关注的人

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