自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jilindaxue的博客

记录知识、记录编程之美

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

原创 Commons-Logging、Jcl-over-Slf4j、Slf4j、Logback 类图

#mermaid-svg-gvqtZeYzAnDNkmbJ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-gvqtZeYzAnDNkmbJ .label text{fill:#333}#mermaid-svg-gvqtZeYzAnDNkmbJ .node rect,#mermaid-svg-gvqtZeYzAn

2021-02-03 18:03:32 153

原创 数据库概念(第一范式,第二范式,第三范式)

范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF)

2021-01-24 11:07:40 294

原创 Java String、StringBuilder、StringBuffer类设计思路、实现及最佳实践

目录阅读指引0、预备知识JVM相关内存区域String类加载运行时序1、主要源码2、设计思路及实现不可变3、扩展StringBuilderStringBuffer4、最佳实践 Java与JVM术语解释及关系说明 其它阅读指引本文从源码入手,分析String类设计思路及具体实现,同时扩展分析StringBuilder、StringBuffer等相关类。0、预备知识JVM相关内存区域String类加载运行时序1、主要源码public final class String impleme

2021-01-21 22:01:34 293 4

原创 JAVA动态代理死循环原因及解决

1、代码public interface Invoker { public Object invoke(Invocation invocation);}public class EchoHandler implements Invoker { @Override public Object invoke(Invocation invocation) { return i...

2020-03-28 11:05:43 2293 2

原创 sysbench简单测试主从复制

一、主机环境两台机配置相同:[root@192 ~]# pt-summary# Percona Toolkit System Summary Report ###################### Date | 2018-08-15 16:47:37 UTC (local TZ: EDT -0400) Hostname | 192.168.237.128 ...

2018-08-16 00:59:21 653

原创 mysql主从复制命令笔记

mysqladmin ext -i1 | awk '/Queries/{q=$4-qp;qp=$4}/Threads_connected/{tc=$4}/Threads_running/{printf "%5d %5d %5d\n", q, tc, $4}'awk '/^# Time:/{print $3, $4, c; c=0}/^# User/{c++}' slow.log主库:cr...

2018-08-16 00:22:17 500

原创 sysbench最简单安装方法(rhel7)

步骤一:参考 https://github.com/akopytov/sysbench#rhelcentos  使用yum安装依赖包:yum -y install make automake libtool pkgconfig libaio-develyum -y install mariadb-devel openssl-develyum -y install postgresql...

2018-08-16 00:12:47 5541

原创 Mysql 查询缓存(Query Cache)详细介绍

一、功能说明MySQL查询缓存保存查询返回的完整结果。当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段。 查询缓存会跟踪查询中涉及的每个表,如果这写表发生变化,那么和这个表相关的所有缓存都将失效。 但是随着服务器功能的强大,查询缓存也可能成为整个服务器的资源竞争单点。 二、开启、关闭方法 查看当前版本是否支持QC功能:SHOW VARIABLES LIKE 'ha...

2018-08-11 17:21:28 3688 1

原创 《重构》之Duplicate Observed Data示例,使用Observer模式实现界面与数据分离

1、说明利用观察者模式实现JFrame界面与数据分离解耦2、代码package com.hallo.refactoring.DOD;import java.util.Observable;import io.netty.util.internal.StringUtil;/** * 负责界面修改数据获取、重新计算(length = end - start) * @aut...

2018-08-04 15:17:59 367

原创 hashcode、equals、HashMap间的关系

1、从Object说起package com.hallo.collection;public class ObjectDemo { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); //同一Object对象,hashCode...

2018-08-04 11:17:48 444

原创 windows系统单机安装mysql两实例并配置为主从关系

1、环境操作系统:win7 64位mysql版本:5.7.19。下载地址:https://dev.mysql.com/downloads/mysql/2、mysql安装下载文件mysql-5.7.19-winx64.zip到本地,分别解压到两个目录:D:\mysql-5.7.19-winx64D:\mysql-5.7.19-winx64-slave将"D:\mysq

2017-10-18 22:40:34 346

原创 分布式事务JOTM纯Java代码示例

1、代码分析纯java不用spring等框架,代码如下package com.wenc.jdbc;import org.enhydra.jdbc.standard.StandardXADataSource;import org.objectweb.jotm.Jotm;import javax.naming.Context;import javax.sql.XAConnect

2017-09-19 20:58:23 647

原创 java单例模式及其安全发布(含饿汉式、饱汉式和错误示例)

适用场景保证一个类仅有一个实例,并提供一个访问它的全局访问点。例如只应该有一个文件系统来保证文件的正确访问。JDK中java.lang.Runtime#getRuntime()就是一个典型应用:Every Java application has a single instance of classRuntime that allows the application to int

2017-09-09 11:45:49 415

原创 InputStream类available和read方法可能读取不到完整的流数据

1、问题描述项目需要一个将网络流InputStream转换为byte[]数组的方法,于是从网上找了下面的方法: private byte[] toByteArray(InputStream input) throws IOException { byte[] buffer = new byte[(int) in.available()]; in.read(buffer)

2017-08-03 11:30:20 5912 4

转载 数据库范式

范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF)

2017-07-24 17:08:03 189

原创 线程状态图

2017-07-23 19:49:20 242

原创 Java GC与内存分配策略

1、回收区域主要区域:Java堆、方法区。程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,不需要过多考虑回收的问题。2、对象是否可回收?可达性分析算法:通过一系列称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没用任何引用链相连时,则证明此对象时不可用的,即该对象可回收。可作为GC Roots

2017-07-23 11:18:35 327

原创 Java内存区域划分图

2017-07-23 10:25:21 384

原创 JVM与java类的生命周期简述

简单记录下jvm对java类从加载到清除的大概过程,如下图:

2017-07-22 23:09:01 246

原创 Executor框架、线程池及其生命周期

Java类库中,任务执行的主要抽象不是Thread,而是Executor。Executor框架具有以下几个特点:异步任务执行框架基于生产者-消费者模式将任务的提交过程与执行过程解耦,用runnable表示任务采用不同的Executor实现即可改变服务器的行为,简化了代码修改的难度支持生命周期管理、统计信息收集、应用程序管理机制和性能监视等机制。 /* @since 1.5 * @

2017-07-15 21:26:26 639

原创 计数信号量Semaphore的使用

计数信号量(counting semaphore)用来控制同时访问某个特定资源的操作数量,或者同时执行某个制定操作的数量。计数信号量还可以实现某种资源池,或者对容器施加边界。特殊地,初始值为1的semaphore称为二值信号量,可以用作互斥体,并且具备不可重入的加锁语义。下面的例子实现一个资源池,将semaphore的计数值初始化为池的大小,并在从池中获取一个资源之前首先调用acquire方法

2017-07-15 19:45:56 1727

原创 FutureTask使用示例

FutureTask简单使用

2017-07-15 18:02:41 281

原创 CountDownLatch源码分析

1、使用示例CountDownLatch用于实现多个线程同步,一个典型场景是:等待线程B等待N个工作线程A1、A2、...、An并发完成后,才继续往下执行。一个N=2时的示例代码如下(代码转自http://www.iteye.com/topic/1002652):package com.wenc.concurrency;import java.text.SimpleDateFormat

2017-07-09 09:59:53 219

原创 Unsafe类compareAndSwapInt返回值

不聊闲,直接上代码1、代码package com.wenc.keywords;import java.lang.reflect.Field;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import sun.misc.Unsafe;public class CompareAndSwapTest {

2017-07-08 23:44:21 4571 1

原创 CopyOnWriteArrayList<E>

CopyOnWriteArrayList简介CopyOnWriteArrayList,即“写入时复制”容器,在每次修改(add、remove)时都会创建新的底层基础数组,然后在新数组上修改,最后将新数组作为容器的基础数组。因此,非修改操作不需要加锁,修改操作时才加锁,并发性能较同步List好。CopyOnWriteArrayList实现以下定义了基础数组及数组操作public cl

2017-06-25 20:33:08 230

原创 Collections.unmodifiableMap

1、场景某些场景下需要返回不可修改Map,java容器类java.util.Collections提供了static方法unmodifiableMap来提供这个功能: /** * Returns an unmodifiable view of the specified map. This method * allows modules to provide u

2017-06-25 16:55:09 536

原创 Collections.SynchronizedList<E>

1、类图2、线程安全实现

2017-06-25 16:28:42 504

空空如也

空空如也

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

TA关注的人

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