
JAVA
文章平均质量分 87
我想说的csdn
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SPI机制
SPI是什么SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件SPI是扩展点,所谓扩展点就是已有功能不满足使用,要进行自定义实现,我们可以推测其key是确定的,value可以添加我们的自定义实现原创 2017-03-02 10:45:48 · 549 阅读 · 0 评论 -
OAuth协议
OAuth协议:OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用OAuth 2.0 是一个行业的标准授权协议。OAuth 2.0 专注于简化客户端开发人员,同时为 Web 应用程序,桌面应用程序,手机和客厅设备提供特定的授权流程它的最终目的是为第三方应用颁发一个有时效性的令牌 token。使得第三方应用能够通过该令牌获取相关的资源。常见的场景就是:第三方登录原创 2017-02-09 14:20:00 · 377 阅读 · 0 评论 -
spring测试
模拟测试数据:Mock测试技术能够避免你为了测试一个方法,却需要自行构建整个依赖关系的工作,并且能够让你专注于当前被测试对象的逻辑,而不是其依赖的其他对象的逻辑举例来说,比如你需要测试Foo.methodA,而这个方法依赖了Bar.methodB,又传递依赖到了Zoo.methodC,于是它们的依赖关系就是Foo->Bar->Zoo,所以在测试代码里你必须自行new Bar和Zoo原创 2017-01-05 11:55:27 · 2042 阅读 · 0 评论 -
spring开发介绍
spring简化开发的四个基本策略1.基于POJO的轻量级和最小侵入性编码2.通过依赖注入和面向接口松耦合3.基于切面和惯性进行声明式编程4.通过切面和模板减少样板式代码原创 2016-11-29 15:56:28 · 826 阅读 · 2 评论 -
MVC 和Spring MVC
MVC 和Spring MVC我们都知道常说的MVC指的是 Model + View + Controller(数据模型 + 视图+ 控制器)三层架构指的是:(展现层 + 应用层 + 数据访问层)原创 2016-11-29 11:46:32 · 4116 阅读 · 1 评论 -
深入netty之BootStrap源码分析
BootstrapBootstrap 是 Netty 提供的一个便利的工厂类, 我们可以通过它来完成 Netty 的客户端或服务器端的 Netty 初始化。 下面我先来看一个例子, 从客户端和服务器端分别分析一下 Netty 的程序是如何启动的。首先,让我们从客户端的代码 片段开始原创 2019-12-14 22:40:36 · 526 阅读 · 0 评论 -
深入探究synchronize锁机制
思考锁是如何存储的我们以对象在 jvm 内存中是如何存储作为切入点,去看看对象里面有什么特性能够实现锁锁的状态标识就是存放在对象的存储空间中,虚拟机中对对象的存储分为三部分:对象头、实例数据、对齐填充原创 2019-05-13 20:15:01 · 947 阅读 · 0 评论 -
java设计模式分析之桥接模式、适配器模式
一个优秀的android开源框架中往往会体现出很多Java设计模式的影子,了解设计模式有助于理解开源框架中的程序设计之美接下来我会将自己整理的对一些设计模式的理解记录在这里若您对我的分享感兴趣可以访问:java设计模式专栏1、适配器模式(retrofit)适配器模式的应用非常广泛,因为适配器是作为两个不兼容的接口之间的桥梁,什么意思呢?例如:读卡器就是内存卡和笔记本之间的适配器,我们将内存卡插入读...原创 2018-03-08 14:16:25 · 2105 阅读 · 2 评论 -
Dubbo 服务导出过程
Dubbo 服务导出过程dubbo采用 URL 作为配置信息的统一格式,所有扩展点都通过传递 URL 携带配置信息,通过上一篇文章:dubbo源码实现之SPI 和自适应扩展点中我们可以了解到dubbo是如何确保扩展点一定可以获取到url的URL 是 Dubbo 配置的载体,通过 URL 可让 Dubbo 的各种配置在各个模块之间传递如下是一个使用dubbo协议发布服务的url:原创 2018-03-03 20:02:15 · 1035 阅读 · 0 评论 -
java设计模式分析之工厂、享元、建造者、原型模式
一个优秀的开源框架中往往会体现出很多Java设计模式的影子,了解设计模式有助于理解开源框架中的程序设计之美接下来我会将自己整理的对一些设计模式的理解记录在这里这个系列我会尽量将设计模式中比较容易混淆的概念统一起来进行分析和比较,而一些比较简单的模式例如单例模式,会直接忽略文章中设计一些个人的理解如有偏差,敬请指正若您对我的分享感兴趣可以访问:java设计模式专栏本篇记录:工厂模式、 ...原创 2018-03-01 19:07:28 · 585 阅读 · 1 评论 -
java设计模式之责任链模式、状态模式、策略模式
若您对我的分享感兴趣可以访问:java设计模式专栏在常用的23中设计模式中,有三种模式容易混淆,这三种模式分别是:责任链模式、状态模式以及策略模式因此接下来我们把这三种模式放在一起讨论1、责任链模式(okHttp)职责链的本质是:不同的类对同一个问题的反应 责任链模式下处理者所处的位置决定了其功能,在这里,最后一个 Interceptor 一定是负责和服务器实际通讯的,重定向、缓存等一定是在...原创 2018-03-08 14:20:29 · 3510 阅读 · 0 评论 -
JAVA总结系列之异常机制
java检查异常与非检查异常Java的可检测异常和非检测异常泾渭分明。可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强制执行处理或声明规则。非检测异常不遵循处理或声明规则。在产生此类异常时,不一定非要采取任何适当操作,编译器不会检查是否已解决了这样一个异常。有两个主要类定义非检测异常:RuntimeException和Error。为什么Error子类属于非检测异常?这是因为无原创 2016-09-13 17:20:49 · 351 阅读 · 0 评论 -
java总结系列之反射机制
何为匿名内部类:匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口实例1:不使用匿名内部类来实现抽象方法1234567891011原创 2016-08-04 10:13:33 · 551 阅读 · 0 评论 -
一致性协议 Zab协议
Zab协议Zab协议 的全称是Zookeeper Atomic Broadcast(Zookeeper原子广播)。Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性zab 协议介绍(单主模式--顺序一致性协议)ZAB 协议包含两种基本模式,分别是1. 崩溃恢复选举leader数据同步2. 原子广播(消息广播--也就是主节点和从节点数据同步)原创 2018-03-18 17:01:59 · 700 阅读 · 0 评论 -
CAP与一致性协议算法
长轮训的概念客户端发起一个请求到服务端,服务端收到客户端的请求后,并不会立刻响应给客户端,而是先把这个请求hold住,然后服务端会在hold住的这段时间检查数据是否有更新,如果有,则响应给客户端,如果一直没有数据变更,则达到一定的时间(长轮训时间间隔)才返回,如下图所示:原创 2018-04-09 19:20:28 · 493 阅读 · 1 评论 -
zookeeper服务的实现原理
1.ZooKeeper是什么ZooKeeper是分布式应用程序协调服务,是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作2.ZooKeeper提供了什么1)文件系统2)通知机制原创 2018-03-13 19:32:25 · 7084 阅读 · 0 评论 -
dubbo服务引用源码分析
dubbo服务引用流程大致如下:(1)首先在dubbo容器启动的时候,会扫描所有的reference配置(也就是dubbo客户端配置的远程引用),生成对应ReferenceBean,例如:客户端的DemoClient类依赖了远程服务DemoService,那么dubbo就会生成一个ReferenceBean<DemoService>(2)spring容器在初始化本地的bean的时候,发现DemoClient类依赖了DemoService类,于是spring会寻找DemoService的工厂类,结果就原创 2018-03-06 10:57:45 · 419 阅读 · 0 评论 -
java设计模式分析之过滤器模式 、组合模式、外观模式
一个优秀的android开源框架中往往会体现出很多Java设计模式的影子,了解设计模式有助于理解开源框架中的程序设计之美接下来我会将自己整理的对一些设计模式的理解记录在这里若您对我的分享感兴趣可以访问:java设计模式专栏本篇记录:过滤器模式 、组合模式、外观模式传送门: java设计模式分析及在android中的应用一参考:java设计模式之组合模式从真实项目中抠出来的设计模式:过滤器模式1、...原创 2018-03-05 20:08:19 · 1410 阅读 · 0 评论 -
递归思想实现大数问题(打印1到n位最大整数)(JAVA代码)
public static void main(String[] args){ demo()} private void demo() { final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); new Thread(new Runnable()原创 2017-03-01 15:40:09 · 759 阅读 · 0 评论