5 zero__007

尚未进行身份认证

暂无相关简介

等级
TA的排名 3k+

javaassist使用

之前使用到了Instrumentation来做字节码修改,用到了javaassist,顺便做个笔记,记录一下。对于动态扩展现有类或接口的二进制字节码,有比较成熟的开源项目提供支持,如CGLib、ASM、Javassist等。其中,CGLib的底层基于ASM实现,是一个高效高性能的生成库;而ASM是一个轻量级的类库,但需要涉及到JVM的操作和指令;相比而言,Javassist要简单的多,完全是基于...

2019-10-08 20:11:10

减少该死的 if else 嵌套

转载自:https://www.jianshu.com/p/57c065b124c4  写在前面  不知大家有没遇到过像“横放着的金字塔”一样的ifelse嵌套:if(true){if(true){if(true){if(true){if(true){...

2019-09-23 20:08:31

Log4j2笔记

文章目录PatternLayout格式异步日志打印%L%M等位置信息相关依赖各种日志相关jar包各类Bridgejar冲突log4j2依赖示例  PatternLayout格式%d{yyyy-MM-ddHH:mm:ss.SSS}表示输出到毫秒的时间,如果不加大括号默认是到毫秒级别%r程序启动时间毫秒数%t输出日志线程名称%-5p日志级别,-5表示左对齐并且固定输出5个字符,...

2019-09-17 00:03:26

tar与zip

tartar[-cxtzjvfpPN]文件与目录参数:-c:建立一个压缩文件-x:解开一个压缩文件-t:查看压缩文件里面的文件特别注意:c/x/t同时只能存在一个。-z:是否需要用gzip压缩-j:是否需要用bzip2压缩-v:压缩的过程中显示文件-f:使用档名。在f之后要立即接文件名,不要再加参数,例如使用[tar-zcvfPtfilesfile]就是...

2019-09-11 19:39:38

Arthas

文章目录安装使用基础命令jvm相关class/classloader相关monitor/watch/trace相关常用示例watchtrace安装使用arthas-boot(推荐)下载arthas-boot.jar,然后用java-jar的方式启动:wgethttps://alibaba.github.io/arthas/arthas-boot.jarjava-jararth...

2019-09-10 13:45:55

MySQL基础命令

文章目录库操作表操作表字段操作索引创建与删除实用操作showdatabases;usedb_name;showtables;  库操作dropdatabasedb_name;createdatabasedb_namedefaultcharactersetutf8mb4;  表操作deletefromtable_name;truncatetable...

2019-09-05 22:48:30

Java虚拟机启动、加载类过程分析

转载自:https://blog.csdn.net/luanlouis/article/details/50529868    首先定义一个非常简单的java程序并运行它,来逐步分析java虚拟机启动的过程。packageorg.luanlouis.jvm.load;importsun.security.pkcs11.P11Util;/***Createdbylouis...

2019-08-25 11:47:25

服务暴露

转载自:https://blog.csdn.net/u012410733/article/category/7159846    在服务提供者暴露的时候,首先从配置文件中获取到对外提供的实际类ref(如:HelloWorldImpl),然后通过ProxyFactory类(JavassistProxyFactory或JdkProxyFactory)把ref生成一个AbstractProxyInv...

2019-08-13 12:28:31

服务引用

转载自:https://blog.csdn.net/bolg_hero/article/details/79202567服务消费方发起请求  当服务的消费方引用了某远程服务,服务的应用方在spring的配置实例如下(参考dubbo项目中dubbo-demo/dubbo-demo-xml模块):<dubbo:referenceid="demoService"interface="or...

2019-08-09 17:26:32

@SPI和@Adaptive

转载自:https://blog.csdn.net/qq924862077/article/details/77510121  1、获取指定实现类  在ExtensionLoader中获取默认实现类或者通过实现类名称来获取实现类。Protocolrefprotocol=ExtensionLoader.getExtensionLoader(Protocol.class).getDefa...

2019-08-07 22:11:47

Kafka如何实现每秒上百万的高并发写入

Kafka是高吞吐低延迟的高并发、高性能的消息中间件,在大数据领域有极为广泛的运用。配置良好的Kafka集群甚至可以做到每秒几十万、上百万的超高并发写入。那么Kafka到底是如何做到这么高的吞吐量和性能的呢?一、页缓存技术+磁盘顺序写首先Kafka每次接收到数据都会往磁盘上去写,为了保证数据写入性能,Kafka是基于操作系统的页缓存来实现文件写入的。操作系统本身有一层缓存,叫做page...

2019-08-06 20:12:11

小内存为什么不建议使用CMS

转载自:http://hellojava.info/?p=142  之前曾经有讲过在heapsize<=3G的情况下完全不要考虑CMSGC,在heapsize>3G的情况下也优先选择ParallelOldGC,而不是CMSGC,只有在暂停时间无法接受的情况下才考虑CMSGC(不过当然,一般来说在heapsize>8G后基本上都得选择CMSGC,否则那暂停时间是相当...

2019-08-06 18:33:21

集群容错

转载自:https://blog.csdn.net/qq924862077/article/details/79711349    在集群调用失败时,Dubbo提供了多种容错方案,缺省为failover重试。接口如下:@SPI(FailoverCluster.NAME)//默认使用failOver模式publicinterfaceCluster{/**...

2019-07-24 16:28:21

LoadBalance负载均衡

转载自:https://blog.csdn.net/qq924862077/article/details/79676932    Dubbo提供了负载均衡,接口如下://默认负载均衡算法是random@SPI(RandomLoadBalance.NAME)publicinterfaceLoadBalance{/***selectoneinvoker...

2019-07-24 16:18:00

Dubbo注册中心

转载自:https://blog.csdn.net/qq924862077/article/details/79652558    目前Dubbo官方提供的注册中心有Multicast、Zookeeper、Redis和Simple注册中心,官方推荐使用Zookeeper作为生产环境的注册中心。  Dubbo官方也提供了扩展机制,开发人员可以根据自己的需要遵守一定的扩展规范开发自己的注册中心,...

2019-07-24 15:27:00

Redis命中率计算

转载自:https://blog.csdn.net/liuxiao723846/article/details/51445448Redis提供了INFO这个命令,能够随时监控服务器的状态,只用telnet到对应服务器的端口,执行命令即可:telnetlocalhost6379info在输出的信息里面有这几项和缓存的状态比较有关系:keyspace_hits:14414110key...

2019-07-22 14:07:55

面向对象设计的 SOLID 原则

转载自:https://blog.csdn.net/yongwan5637/article/details/80482743文章目录单一责任原则(SRP)开放封闭原则(OCP)里氏替换原则(LSP)接口隔离原则(ISP)依赖倒置原则(DIP)  编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计。SOLID是面向对象设计5大重要原则的首字母缩写:SRP...

2019-07-22 12:09:50

浅析AOP源码(四)

转载自:https://blog.csdn.net/luanlouis/article/details/51155821  1、Spring内部创建代理对象的过程  在Spring的底层,如果配置了AOP,Spring会为每一个Bean创建一个对应的ProxyFactoryBean的FactoryBean来创建某个对象的代理对象。  假定有一个接口TicketService及其实现类Rai...

2019-07-19 16:36:09

Redlock原理分析

转载自:https://blog.csdn.net/b644ROfP20z37485O35M/article/details/89369482    Redlock全名叫做RedisDistributedLock;即使用redis实现的分布式锁。使用场景:多个服务间保证同一时刻同一时间段内同一用户只能有一个请求(防止关键业务出现并发攻击);官网文档地址如下:https://redis.i...

2019-07-16 14:10:37

JavaBean对象属性copy

1.对象属性拷贝的常见方式及其性能  在日常编码中,经常会遇到DO、DTO对象之间的转换,如果对象本身的属性比较少的时候,那么采用HardCode工作量也不大,但如果对象的属性比较多的情况下,HardCode效率就比较低。这时候就要使用其它工具类来进行对象属性的拷贝。  常用的对象属性拷贝的方式和性能测试如下:拷贝方式copy次数1000copy次数100000copy次数...

2019-07-15 20:37:12

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。