编程语言
文章平均质量分 63
samyang1
这个作者很懒,什么都没留下…
展开
-
Java字节码框架ASM学习
一、什么是ASM ASM是一个java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM从类文件中读入信息后,能够改变...原创 2018-05-07 11:33:32 · 3981 阅读 · 1 评论 -
ActiveMQ : 基础篇
ActiveMQ 是什么?“这个简单,ActiveMQ 是一个 MOM,具体来说是一个实现了 JMS 规范的系统间远程通信的消息代理。它……”什么是 MOM?“好。MOM 就是面向消息中间件(Message-oriented middleware),是用于以分布式应用或系统中的异步、松耦合、可靠、可扩展和安全通信的一类软件。MOM 的总体思想是它作为消息发送器和消息接收器之间的消息中介,这种中介...原创 2018-06-06 10:41:05 · 195 阅读 · 0 评论 -
HashMap之原理及死锁
一、HashMap原理 1.HashMap的本质就是数组和链表。table是一个entry数组,每一个数组元素保存一个Entry节点,而Entry节点内部又连接着同样key的下一个Entry节点,就构成了链表。. 详情见 HashMap源码分析 2.HashMap死锁原因: HashMap会造成死锁,因为HashMap是线程非安全的,多并发的情况容易造成死锁,若要高...转载 2018-05-30 22:23:26 · 485 阅读 · 0 评论 -
java中向匿名内部类传递参数
目的:将innerString变量值传给匿名内部类解决方案:在匿名内部类里定义一个方法,在创建匿名内部类对象时调用自定义方法进行传参。具体见代码:jb.addActionListener(new ActionListener(){ private String innerStr; @Override public void a...原创 2018-06-01 11:53:09 · 13232 阅读 · 1 评论 -
java字节码指令集
字节码指令集 Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成。 对于大部分为与数据类型相关的字节码指令,他们的操作码助记符中都有特殊的字符来表明专门为哪种数据类型服务:i代表对int类型的数据操作,l代表long,s代表short,b代表byte,c代表char,f代表float,d...转载 2018-06-24 17:07:51 · 393 阅读 · 0 评论 -
《Spring Cloud Netflix官方文档》路由和过滤器: Zuul
原文链接路由是一个微服务架构体系中必须的一部分,比如说,“/” 映射你的web根应用,“/api/users” 映射到用户服务,“/api/shop” 映射到购物服务上. Zuul 是 Netflix 公司的一个基于JVM的服务器端带负载均衡功能的路由。Netflix在以下场景使用Zuul:AuthenticationInsightsStress TestingCanary TestingDyna...转载 2018-07-12 16:20:41 · 910 阅读 · 0 评论 -
深入理解RPC——RPC在企业服务中的核心价值
随着企业 IT 服务的不断发展,单台服务器逐渐无法承受用户日益增长的请求压力时,就需要多台服务器联合起来构成「服务集群」共同对外提供服务。同时业务服务会随着产品需求的增多越来越肿,架构上必须进行服务拆分,一个完整的大型服务会被打散成很多很多独立的小服务,每个小服务会由独立的进程去管理来对外提供服务,这就是「微服务」。当用户的请求到来时,我们需要将用户的请求分散到多个服务去各自处理,然后又需要将...转载 2018-08-06 11:24:19 · 267 阅读 · 0 评论 -
深入理解 RPC 交互流程
们讲解 RPC 的消息交互流程,目的是搞清楚一个简单的 RPC 方法调用背后究竟发生了怎样复杂曲折的故事,以看透 RPC 的本质。上图是信息系统交互模型宏观示意图,RPC 的消息交互则会深入到底层。RPC 是两个子系统之间进行的直接消息交互,它使用操作系统提供的套接字来作为消息的载体,以特定的消息格式来定义消息内容和边界。RPC 的客户端通过文件描述符的读写 API (read &...转载 2018-08-06 11:31:04 · 2095 阅读 · 0 评论 -
深入理解 RPC 消息协议设计
本节我们开始讲解 RPC 的消息协议设计背后的基本原理,了解 RPC 的协议开发背后有哪些需要考虑的基本点。在通晓原理之后,我们就可以自己设计一套协议来开发属于自己的 RPC 系统。本节主要涉及的知识点和它们之见的关系如下图: 对于一串消息流,我们必须能确定消息边界,提取出单条消息的字节流片段,然后对这个片段按照一定的规则进行反序列化来生成相应的消息对象。消息表示指的是序列化后...转载 2018-08-06 11:56:46 · 451 阅读 · 0 评论 -
Java 7 switch支持String类型的原理及注意事项
switchswitch中可以有null吗?在switch语句中,表达式的值不能是null,否则会在运行时抛出NullPointerException。在case子句中也不能使用null,否则会出现编译错误。switch支持的类型有?Java 7 中加入了对String类型的支持。所以支持的有:char、byte、short、int 和 Character、Byte、Short、In...原创 2018-08-02 15:59:21 · 495 阅读 · 0 评论 -
dva
DVA 简介 dva是基于现有应用架构(redux+react-router+redux-saga等)的一层轻量封装,没有引入任何新的概念。一 整个程序的入口文件是根目录下的index.js 文件import dva from 'dva';import { browserHistory } from 'dva/router';import './index.css';// 1. I...原创 2018-05-18 16:28:37 · 1578 阅读 · 0 评论 -
Java中&、&&、|、||区别
1、Java中&叫做按位与,&&叫做短路与,它们的区别是:& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:12&5 的值是多少?答:12转成二进制数是1100(前四位省略了...原创 2018-04-14 21:25:23 · 227 阅读 · 0 评论 -
Lombok简介
github上官方是这么描述lombok的: lombok项目通过增加处理程序使我们的java语言更加刺激(简洁和快速)。先看个简单示例: 我们做java开发的时候,最不少写的就是javabean了,bean字段都需要添加gettter/setter方法,往往我们只能一次又一次的使用ide生成gettter,setter 构造器等等。lombok是如何帮我们解决这种重复性劳动呢?[...转载 2018-03-28 20:19:26 · 479 阅读 · 0 评论 -
动态代理
代理介绍 代理(Proxy)是一种设计模式, 提供了对目标对象另外的访问方式;即通过代理访问目标对象。 这样好处: 可以在目标对象实现的基础上,增强额外的功能操作。(扩展目标对象的功能)。可以做到在不修改目标对象的功能前提下,对目标对象功能扩展。简单理解代理很简单举个例子:现在我是一个明星,拥有很多粉丝。粉丝希望我唱歌给他们听,但是如果都是我来接应他们,我岂不是很忙….于是乎,我就去找了个经纪人...转载 2018-04-20 22:03:26 · 99 阅读 · 0 评论 -
ReentrantLock源码分析
在Java5.0之前,协调对共享对象的访问可以使用的机制只有synchronized和volatile。我们知道synchronized关键字实现了内置锁,而volatile关键字保证了多线程的内存可见性。在大多数情况下,这些机制都能很好地完成工作,但却无法实现一些更高级的功能,例如,无法中断一个正在等待获取锁的线程,无法实现限定时间的获取锁机制,无法实现非阻塞结构的加锁规则等。而这些更灵活的加锁...转载 2018-05-04 00:05:48 · 91 阅读 · 0 评论 -
JDK:Reflection的getCallerClass
权限Reflection.getCallerClass()此方法的调用者必须有权限,需要什么样的权限呢? 由bootstrap class loader加载的类可以调用 由extension class loader加载的类可以调用 都知道用户路径的类加载都是由 application class loader进行加载的,换句话说就是用户自定义的一些类中无法调用此方法作用R...原创 2018-08-07 16:00:37 · 8259 阅读 · 0 评论