NullPointerException的博客

路漫漫其修远兮 吾将上下而求索

java中的native修饰符

今天偶然看代码,发现别人有这样写的方法,并且jar里面有几个dll文件,比较奇怪,于是把代码打开,发现如下写法。 public native String GSMModemSMSReadAll(String s, int i); public native String GSMModemGetEr...

2019-05-15 20:53:16

阅读数 5

评论数 0

java反射机制详解

程序运行过程 在讲解反射机制之前先简单看一下java程序的运行过程,如下图所示: java编译期将.java文件编译为.class字节码文件; ClassLoader将.class的字节码文件加载到code segment中; 运行环境找到mian方法,并开始执行程序; 程序运行过程会有很多...

2019-05-15 20:25:44

阅读数 14

评论数 0

代理模式之Cglib动态代理

Cglib动态代理 前两篇博文静态代理和JDK动态代理,他们各有优缺点,JDK动态代理缺点: 目标类必须实现的某个接口,如果某个类没有实现接口则不能生成代理对象; 只能代理接口,要代理类需要使用第三方的CLIGB等类库; Cglib动态代理则没有对被代理对象必须实现接口的要求,cglib生成的...

2019-04-07 20:14:44

阅读数 83

评论数 0

代理模式之JDK动态代理

JDK动态代理 上一篇博文静态代理介绍了静态代理的简单实现,以及静态代理的缺点: 代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,势必要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任了。 如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方...

2019-04-07 18:00:59

阅读数 23

评论数 0

代理模式之静态代理

代理模式 代理模式为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 从图中可以看出,代理接口(Subject)、代理...

2019-04-07 14:57:19

阅读数 28

评论数 0

Spring AOP注解和切面表达式详解

AOP设计的初衷 DRY:Don’t Repeat Yourself,减少重复代码; SoC:Separation of Concerns,关注分离; 水平分离:展示层 --> 服务层 --> 持久层 垂直分离:模块之间分离; 切面分离:功能性需求与非功能性需求分离...

2019-04-05 23:34:28

阅读数 203

评论数 0

Spring Security权限控制源码分析

流程图 类和接口介绍 FilterSecurityInterceptor:是整个权限判断流程的入口,包含着请求的相关信息; AccessDecisionManager:是一个接口,有一个抽象实现(AbstractAccessDecisionManager)和三个具体实现(Affirmativ...

2019-03-30 22:47:53

阅读数 26

评论数 0

Spring Security OAuth核心源码分析

流程图 ※:绿色的方块代表实体类;蓝色的方块代表接口(下方括号中的名称表示实际调用的实现类); 流程介绍 step1:客户端发起获取令牌的请求:/oauth/token; step2:TokenEndpoint是整个流程的入口,可理解为一个controller,用来处理获取令牌的请求即:/oa...

2019-03-30 17:52:15

阅读数 35

评论数 0

Effective Java第三章: 对所有对象都通用的方法

一、覆盖equals方法时遵守通用约定 期望结果 类的每个实例本质上都是惟一的; 不关心类是否提供了“逻辑相等”的测试功能; 超类已经覆盖了equals方法,从超类继承过来的行为对于子类也是合适的; 类是私有的或者是包级私有的,可以确定它的equals方法永远不会被调用; 覆盖equals方法...

2019-01-27 16:52:11

阅读数 27

评论数 0

Effective Java 第2章: 创建和销毁对象

一、用静态工厂方法代替构造器 静态工厂方法与构造器相比有以下几个优点: 静态工厂方法有名称; 不必每次调用的时候都创建新的对象; 可以返回原返回类型的任何子类型的对象; 在创建参数化类型实例的时候没,静态工厂方法使得代码变得更加简洁; 缺点: 类如果不含有公有的或者受保护的构造器,就不能被子...

2019-01-20 19:01:49

阅读数 39

评论数 0

Hadoop介绍

Hadoop概念 Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架。 Hadoop是一套开源的软件平台,利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理。 Hadoop框架透明地为应用提供可靠性和数据移动,还提供了分布式...

2019-01-12 19:00:39

阅读数 44

评论数 0

Kubernets特性及概念介绍

Kubernets概述 Kubernets是什么 Kubernets是Google在2014年开源的一个容器集群管理系统,简称k8s; k8s用于容器化应用程序的部署,扩展和管理; k8s提供了容器编排、资源调度、弹性伸缩、部署管理和服务发现等一系列功能; k8s目标是让部署容器化应用简单高效...

2019-01-05 23:27:46

阅读数 107

评论数 0

@JsonProperty和@SerializedName对比

问题 在日常开发中经常需要将一个json格式的字符串转换成某个java对象,当json字符串中的字段跟java对象中定义的属性名不一致时,就会出现转换错误。 将一个java对象转换成json格式的字符串,并且要求转换后的字符串中字段名跟原java对象中的属性名不一致。 例子:1. 将json字...

2018-12-30 18:31:50

阅读数 255

评论数 0

HttpStatus状态码详解

1xx 消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应。[4]这些状态码代表的响应都是信息性的,标示客...

2018-12-28 20:50:23

阅读数 130

评论数 2

RabbitMQ学习笔记

RabbitMQ介绍        RabbitMQ是使用Erlang语言开发的开源消...

2018-12-19 23:24:18

阅读数 54

评论数 0

RabbitMQ:死信队列DLX介绍及演示

DLX: Dead Letter Exchange        利用DLX,当消息在一个队列中变成死信(dead message:消息在该队列中没有消费者去消费)之...

2018-12-17 22:23:15

阅读数 91

评论数 0

RabbitMQ:消费端限流

什么是消费端限流        当我们的RabbitMQ服务器上有大量未处理的消息时,消费端的客户端可能无法同时处理大量的消息...

2018-12-17 21:06:54

阅读数 157

评论数 0

RabbitMQ:Return消息机制

幂等性常见操作: 唯一ID+指纹码机制,利用数据库主键去重 好处:实现简单; 坏处:高并发下有数据库写入的性能瓶颈; 解决方案:利用ID进行分库分表进行算法路由; 利用Redis原子性去重 ...

2018-12-17 20:36:36

阅读数 74

评论数 0

RabbitMQ:生产端和消费端的可靠性投递解决方案

消息如何保证100%的投递成功? 什么是生产端的可靠性投递? 保障消息的成功发出; 保障MQ节点的成功接收; 发送端收到MQ节点(Broker)确认应答; 完善消息补偿机制; 生产端可靠性投递常见解决方案 消息落库,对消息状态进行打标; &nbsp...

2018-12-16 20:34:42

阅读数 145

评论数 0

RabbotMQ: Exchange四种模式介绍

Exchange是什么        Exchange就是交换机,用于接收消息,并将根...

2018-12-16 00:36:59

阅读数 1404

评论数 2

提示
确定要删除当前文章?
取消 删除
关闭
关闭