5 a1282379904

尚未进行身份认证

暂无相关简介

等级
TA的排名 7w+

Java 可重入自旋锁简单实现

自旋锁特点:1. 轻量级操作,无需挂起线程2. 特别吃CPU,如果线程在临界区的操作比较耗时或者线程对临界区的竞争很激烈,那还是老老实实用普通的锁以下是Java的简单实现public class SpinLock implements Lock { /** * 锁持有线程, null表示锁未被任何线程持有 */ private final AtomicRefe...

2018-05-15 16:04:09

JVM 栈帧

JVM 栈帧 一、栈帧 栈帧(Frame)是用来存储数据和部分过程结果的数据结构,同时也被用来处理动态链接(Dynamic Linking)、方法返回值和异常分派(Dispatch Exception)。 栈帧随着方法调用而创建,随着方法结束而销毁——无论方法是正常完成还是异常完成(抛出了在方法内未被捕获的异常)都算作方法结束。栈帧的存储空间分配在Java虚

2017-09-12 20:08:06

Linux wc命令

Linux wc命令 作用:统计字节数、字符数、行数、最长的行的长度、单词数 格式:wc [OPTION]... [FILE]...wc [OPTION]... --files0-from=F OPTION:-c,或--bytes : 计算字节数   -m,或--chars : 计算字符数

2017-09-12 20:07:54

ZooKeeper 伪集群安装

ZooKeeper 伪集群安装伪集群即在一台机子上装多个zookeeper,学习测试用.... zookeeper集群至少需要3台,两台是不可以的,因为只有不少于法定仲裁(2/3)的服务器数量正常运行时,整个集群才提供服务。  1.下载 zookeeper-3.4.9.tar.gz 2.解压,并复制出三份出来,分别放在zookeepe

2017-09-12 20:07:40

MySQL 时间日期类型和相关函数

MySQL 时间日期类型和相关函数 一、时间日期类型MySQL中的日期和时间类型类型字节最小值最大值零值DATETIME81000-01-01 00:00:009999-12-31 23:59:590000-00-00 00:00:00DATE41000-01-019999-12-31000

2017-09-12 20:07:29

JVM 垃圾收集器

JVM 垃圾收集器 基本概念 Young Generation:新生代,hotspot vm中又细分为Eden和两个Survivor(from survivor和to survivor)Tenured Generation:老年代Minor GC:只GCyoung generation。Full GC、Major GC:一个意思,指GC整个heap,包括young

2017-09-12 20:07:02

JVM GC算法

VM GC算法基础概念 GC Roots: The objects that a program can access directly are those objects which are referenced by local variables on the processor stack as well as by any static variables

2017-09-12 20:06:29

MySQL 日志

MySQL 日志概述MySQL日志记录了MySQL服务器的各种行为,MySQL中日志有如下几种:类型描述Error Log记录 MySQL启动,运行,停止过程General Query Log 记录客户端的连接以及接受的SQLBinary Log 记录改变数据的语句(通常用于复制)Relay Log记录

2017-09-11 15:29:28

WebSocket 协议

WebSocket 协议WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。在这之前都是客户端主动请求服务端,一请求一应答,很多时候实现消息更新都是采用ajax轮询,有延迟,有了WebSocket双方都可以主动发给对端,实现真正的推送。  一、WebSocket Protocol Format(协议格式

2017-09-11 15:25:35

简单组合java.util.Map<K,V>实现Map<K,P,V>

简单组合java.util.Map实现Map java.util.Map为单键对单值,有时需要双键对单值,因此基于Map可以简单实现一个Map。 接口定义:Java代码 package cc.lixiaohui.demo.javassist.proxy.util;    import java.util.Collection;

2017-09-11 15:23:59

MySQL 主从复制

MySQL 主从复制环境:win10(就配置主从来说linux和windows差别不大),MySQL-5.7.16 1.首先要两个MySQL实例,我这里分别是3307,3308,其中3307作为master,3308作为slave 2.修改master实例的配置my.ini,增加两行:Ini代码 [mysqld]  log_b

2017-09-11 15:22:48

Javassist实现动态代理

Javassist实现动态代理 动态代理模式简述:之所以会出现代理这种模式就是因为我们常有这么一种需求:在被代理类的方法调用前后执行一些其它的逻辑,这些逻辑不适合由被代理类来实现,那这些逻辑谁来实现?当然是代理类。那代理类是谁?从哪里来?代理类是我们利用字节码生成工具动态创建的,然后利用反射实例化而得到代理对象。 tips:这篇文章讲的不是动态代理模式的思想而是怎么

2017-09-11 14:29:45

Java并发编程之线程池任务监控

Java并发编程之线程池任务监控 当我们提交runnable或者callable到ThreadPoolExecutor时,我们是无法知道这些任务是在什么时候才真正的执行的,为了实现这个需求,我们需要扩展ThreadPoolExecutor,重写beforeExecute和afterExecute,在这两个方法里分别做一些任务执行前和任务执行后的相关监控逻辑,还有个terminate

2017-09-11 14:27:48

MySQL MyISAM与表锁

MySQL MyISAM与表锁 在数据库中,除了CPU、内存、IO等的争用外,数据也是一种供许多用户共享的资源,如何保证数据并发的一致性、有效性是所有数据库必须解决的问题,锁冲突也是影响数据库并发性能的一个重要因素。MySQL中不同的存储引擎之间的锁机制不一定相同,例如MyISAM和MEMORY采用的是表锁,BDB采用的是页面锁,但野支持表锁,InnoDB默认是行锁,但也支持表锁。

2017-09-08 14:21:18

MySQL XA事务

MySQL XA事务 MySQL从5.0.3开始支持分布式事务,当前的分布式事务只支持InnoDB存储引擎,在MySQL中,使用分布式事务的应用程序涉及一个或多个资源管理器和一个事务管理器。 资源管理器(Resource Manager):用于提供通向事务资源的途径,数据库服务器是一种资源管理器。该资源必须可以提交或回滚由RM管理的事务,例如,多态MySQL数据库作

2017-09-08 14:20:23

MySQL 分区

MySQL 分区 分区是指根据一定的规则,把一个表分解成多个更小更易管理的部分,逻辑上只有一个表或一个索引,但是实际上该表可能由数个物理分区对象组成,每个分区都是一个独立的对象,每个分区可以独自处理,也可以作为表的一部分处理。分区对应用是完全透明的。 分区的优点体现在以下方面:和单个磁盘或者文件系统相比,可以存储更多数据优化查询,在Where子句中包

2017-09-08 14:19:05

MySQL 通信协议介绍

MySQL 通信协议介绍 1、数据类型了解MySQL协议包之前必需先知道其数据类型  1.1 Integer Types 整数类型(1)定长整型固定长度, 小端编码, 有下面几种(括号内的代表所占字节数):intintintintintint (2)变长整型可能长度为1,

2017-09-08 14:17:24

Maven 生命周期与插件

Maven 生命周期与插件 一、生命周期Maven有三套独立的生命周期,分别为clean,default和site。clean生命周期的目的是清理之前的构建,default的目的是构建项目,site的目的是建立项目站点。 每个生命周期都包含一些阶段(build phase),这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段。三套生命周期是完全独立的,我们可

2017-09-08 14:15:56

Linux Shell运算符

Linux Shell运算符 Shell中的运算符可分为算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符 1.算术运算符 a=2, b=1OperatorDescriptionExample+加法`expr $a + $b` # 3-减法`expr $a - $b` #

2017-09-08 14:14:44

Linux设置环境变量

设置环境变量 一、 直接在shell执行export 设置完后只对当前终端有效, 其他终端获取不到该变量   二、 编辑用户主目录下的.bash_profile文件, 这个文件定义的变量只对当前用户有效 在末尾处添加   保存后在当前shell依然获取不到, 需要让修改生效, 执行

2017-09-08 14:14:02

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!