`
hpgary
  • 浏览: 78888 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
模仿Mybatis,只有接口创建代理实现,根据方法名调用调用实现:参考MyBatis源码类: MapperProxyFactory, MapperProxy  创建接口类: public interface MethodInterface { String helloWorld(); }   动态代理类:   import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class Method ...

Netty Reactor模型

    博客分类:
  • Java
1、单线程 时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一。 在Java领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行 ...

netty 之Hello Word

    博客分类:
  • Java
如果你还不知道Netty是做什么的能做什么。那可以先简单的搜索了解一下。我Netty是一个NIO的框架,可以用于开发分布式的Java程序。具体能做什么,各位可以尽量发挥想象。技术,是服务于人而不是局限住人的。   如果你已经万事具备,那么我们先从一段代码开始。程序员们习惯的上手第一步,自然是"Hello world",不过Netty官网的例子却偏偏抛弃了"Hello world"。那我们就自己写一个最简单的"Hello world"的例子,作为上手。   1、首先创建 DiscardServerHandler 服务器端处理消 ...

netty ByteBuf

    博客分类:
  • Java
原理简介: 1、从存储方式上,ByteBuf分为:HeapByteBuf和DirectByteBuf HeapByteBuf是用byte数组格式来存储数据,在JVM内部开辟缓冲区,在数据操作前先把数据复制到byte数组再进行处理。因为中间增加了一层数据复制操作,会有一定的性能损耗。DirectByteBuf是使用java.nio.ByteBuffer来存储数据。利用java.nio.ByteBuffer是借助于JVM调用操作系统的底层通信函数,直接操作直接缓冲区可以减少中间缓冲区的复制操作,进而提供程序性能。   2、从空间初始化方式上来分,ByteBuf分为:缓存方式分配和非缓存方 ...
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.sql.DataSource; import org.apache.commons.dbcp2.BasicDataSource; import org.springframework.jdbc.datasource.DataSourceUtils; public class Main { public static void update(String sql ...
1、安装zookeeper  下载zk http://archive.cloudera.com/cdh5/cdh/5/   配置文件 tickTime=2000 initLimit=10 syncLimit=5 # zk数据保存目录 dataDir=/usr/local/zookeeper/data clientPort=2181  启动: bin/zkServer.sh start  客户端命令行链接: bin/zkCli.sh 2 ...
  将一个jar包动态加载到java虚拟机中   import java.io.File; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; import org.apache.commons.lang3.reflect.FieldUtils; public class JarTools { protected static Method addURL = null ; ...
引入 google snappy 包    github 上snappy地址 http://github.com/google/snappy <dependency> <groupId>org.xerial.snappy</groupId> <artifactId>snappy-java</artifactId> <version>1.1.2.6</version> </dependency>  使用snappy压缩文件 import java.io.ByteArrayOut ...
1、安装redis 集群,1主1从 也可以是多主多从   redis 详细今后会在以后的文章中写出 配置redis-master 的配置文件 redis.conf port 6379 daemonize yes #protected-mode no dbfilename "1.db" bind 0.0.0.0  配置 redis-slave 的配置文件 redis.conf port 6380 daemonize yes dbfilename "2.db" bind 0.0.0.0 #这里的IP必需通过程序可以访问到的IP地址 ...
 RMI 远程方法调用(Remote Method Invoke)    远程和本地都有的接口类: package com.rmi.service; public interface HelloService { public String say(String name) ; }   远程接口实现类: package com.rmi.service.impl; import org.springframework.stereotype.Service; import com.rmi.service.HelloService; @Service( ...
package io.mycat; import java.util.stream.IntStream; /** * 小写字母的 'a'=97 大写字母 A=65 更好相差32利用这个差进行大小写转换 * @author : Hpgary * @date : 2017年5月3日 10:26:26 * @mail: hpgary@qq.com * */ public class StringUtils { protected final static byte[] CHAR_TYPE = new byte[512]; protected final ...

Spring注解大全

    博客分类:
  • Java
1、@Configuration 完全替换spring xml文件功能,可自动装配bean,根据@Bean注解创建bean,实例如下   @Configuration public class App01 { @Bean public Person bean1() { Person p2 = new Person(); p2.setName("001"); return p2; } }    2、@Pr ...
1、简介 ActiveMQ 自己看百科 2、下载安装  去 apache 官网下载,http://archive.apache.org/dist/activemq/  3、安装 a、解压 tar -xvf apache-activemq-5.14.4-bin.tar.gz  b、拷贝到/usr/local下 mv apache-activemq-5.14.4 /usr/local/activemq  c、启动 bin/activemq start  d、启动后可以通过8161端口访问 http://10.0.0.12:8161  e、设置访问账号密码: 在 con ...
1、什么是大端和小端 1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。 举例说明:例如数字0x12345678在内存中表现形式为: 1)大端模式: 低地址 -----------------> 高地址0x12  |  0x34  |  0x56  |  0x78 2)小端模式: 低地址 ------------------> 高地址0x78  |  0x56  |  0x34  |  0x1 2、Java 大端互转代码 publ ...

Mysql 事务

    博客分类:
  • Java
        SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 一、Read Uncommitted(读取未提交内容 ...
Global site tag (gtag.js) - Google Analytics