- 博客(22)
- 收藏
- 关注
原创 Javassist实现动态代理
Javassist实现动态代理 动态代理模式简述:之所以会出现代理这种模式就是因为我们常有这么一种需求:在被代理类的方法调用前后执行一些其它的逻辑,这些逻辑不适合由被代理类来实现,那这些逻辑谁来实现?当然是代理类。那代理类是谁?从哪里来?代理类是我们利用字节码生成工具动态创建的,然后利用反射实例化而得到代理对象。 tips:这篇文章讲的不是动态代理模式的思想而是怎么
2017-09-11 14:29:45 565
原创 JVM 栈帧
JVM 栈帧 一、栈帧 栈帧(Frame)是用来存储数据和部分过程结果的数据结构,同时也被用来处理动态链接(Dynamic Linking)、方法返回值和异常分派(Dispatch Exception)。 栈帧随着方法调用而创建,随着方法结束而销毁——无论方法是正常完成还是异常完成(抛出了在方法内未被捕获的异常)都算作方法结束。栈帧的存储空间分配在Java虚
2017-09-12 20:08:06 535
原创 Linux wc命令
Linux wc命令 作用:统计字节数、字符数、行数、最长的行的长度、单词数 格式:wc [OPTION]... [FILE]...wc [OPTION]... --files0-from=F OPTION:-c,或--bytes : 计算字节数 -m,或--chars : 计算字符数
2017-09-12 20:07:54 576
原创 ZooKeeper 伪集群安装
ZooKeeper 伪集群安装伪集群即在一台机子上装多个zookeeper,学习测试用.... zookeeper集群至少需要3台,两台是不可以的,因为只有不少于法定仲裁(2/3)的服务器数量正常运行时,整个集群才提供服务。 1.下载 zookeeper-3.4.9.tar.gz 2.解压,并复制出三份出来,分别放在zookeepe
2017-09-12 20:07:40 332
原创 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 709
原创 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 427
原创 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 399
原创 MySQL 日志
MySQL 日志概述MySQL日志记录了MySQL服务器的各种行为,MySQL中日志有如下几种:类型描述Error Log记录 MySQL启动,运行,停止过程General Query Log 记录客户端的连接以及接受的SQLBinary Log 记录改变数据的语句(通常用于复制)Relay Log记录
2017-09-11 15:29:28 329
原创 WebSocket 协议
WebSocket 协议WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。在这之前都是客户端主动请求服务端,一请求一应答,很多时候实现消息更新都是采用ajax轮询,有延迟,有了WebSocket双方都可以主动发给对端,实现真正的推送。 一、WebSocket Protocol Format(协议格式
2017-09-11 15:25:35 396
原创 简单组合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 471
原创 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 257
原创 Java并发编程之线程池任务监控
Java并发编程之线程池任务监控 当我们提交runnable或者callable到ThreadPoolExecutor时,我们是无法知道这些任务是在什么时候才真正的执行的,为了实现这个需求,我们需要扩展ThreadPoolExecutor,重写beforeExecute和afterExecute,在这两个方法里分别做一些任务执行前和任务执行后的相关监控逻辑,还有个terminate
2017-09-11 14:27:48 2578
原创 MySQL MyISAM与表锁
MySQL MyISAM与表锁 在数据库中,除了CPU、内存、IO等的争用外,数据也是一种供许多用户共享的资源,如何保证数据并发的一致性、有效性是所有数据库必须解决的问题,锁冲突也是影响数据库并发性能的一个重要因素。MySQL中不同的存储引擎之间的锁机制不一定相同,例如MyISAM和MEMORY采用的是表锁,BDB采用的是页面锁,但野支持表锁,InnoDB默认是行锁,但也支持表锁。
2017-09-08 14:21:18 598
原创 MySQL XA事务
MySQL XA事务 MySQL从5.0.3开始支持分布式事务,当前的分布式事务只支持InnoDB存储引擎,在MySQL中,使用分布式事务的应用程序涉及一个或多个资源管理器和一个事务管理器。 资源管理器(Resource Manager):用于提供通向事务资源的途径,数据库服务器是一种资源管理器。该资源必须可以提交或回滚由RM管理的事务,例如,多态MySQL数据库作
2017-09-08 14:20:23 824
原创 MySQL 分区
MySQL 分区 分区是指根据一定的规则,把一个表分解成多个更小更易管理的部分,逻辑上只有一个表或一个索引,但是实际上该表可能由数个物理分区对象组成,每个分区都是一个独立的对象,每个分区可以独自处理,也可以作为表的一部分处理。分区对应用是完全透明的。 分区的优点体现在以下方面:和单个磁盘或者文件系统相比,可以存储更多数据优化查询,在Where子句中包
2017-09-08 14:19:05 584
原创 MySQL 通信协议介绍
MySQL 通信协议介绍 1、数据类型了解MySQL协议包之前必需先知道其数据类型 1.1 Integer Types 整数类型(1)定长整型固定长度, 小端编码, 有下面几种(括号内的代表所占字节数):intintintintintint (2)变长整型可能长度为1,
2017-09-08 14:17:24 4669
原创 Maven 生命周期与插件
Maven 生命周期与插件 一、生命周期Maven有三套独立的生命周期,分别为clean,default和site。clean生命周期的目的是清理之前的构建,default的目的是构建项目,site的目的是建立项目站点。 每个生命周期都包含一些阶段(build phase),这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段。三套生命周期是完全独立的,我们可
2017-09-08 14:15:56 314
原创 Linux Shell运算符
Linux Shell运算符 Shell中的运算符可分为算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符 1.算术运算符 a=2, b=1OperatorDescriptionExample+加法`expr $a + $b` # 3-减法`expr $a - $b` #
2017-09-08 14:14:44 279
原创 Linux设置环境变量
设置环境变量 一、 直接在shell执行export 设置完后只对当前终端有效, 其他终端获取不到该变量 二、 编辑用户主目录下的.bash_profile文件, 这个文件定义的变量只对当前用户有效 在末尾处添加 保存后在当前shell依然获取不到, 需要让修改生效, 执行
2017-09-08 14:14:02 331
原创 Linux 注册系统服务
Linux 注册系统服务 像mysql,ssh这些我们都可以用service mysqld start类似的命令来启动、关闭等,那我们如何把我们自己的程序也按照如此的方式来进行管理呢? 1.进入/etc/init.d, 建立文件 xxxd,其内容形如以下:Shell代码 #!/bin/bash # chkconfig: - 90 1
2017-09-08 14:12:59 4519 2
原创 MySQL LOAD DATA INFILE
MySQL LOAD DATA INFILELOAD DATA INFILE语句是MySQL中用来批量、快速导入数据的一种方式,和SELECT ... INTO OUTFILE 作用是相反的 一、完整语法Sql代码 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
2017-09-08 14:09:20 3883
原创 JVM监控功能工具jstat的使用
JVM监控功能工具jstat的使用 格式jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ] GeneralOption-help:显示帮助信息-version:显示版本-options:显示所有的statOption 如果指定了ge
2017-09-08 14:07:28 306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人