- 博客(9)
- 收藏
- 关注
原创 Java的SPI机制简述
前言在翻看一些框架代码的时候,能看到一些框架处理时对于类的实例化并没有直接new一个对象,而是采用了SPI机制,为了便于看源码,也为了以后对自己写代码进行优化,因此需要学习一下 SPISPI全称Service Provider Interface,翻译过来是服务提供接口。它是jdk内置的一种服务发现机制,它可以让服务定义与实现分离、解耦,能够提高程序的扩展性Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制,提供了通过interface寻找imp
2020-09-06 00:38:48 207
原创 Kryo序列化简述
前言在之前的文章中,有针对JDK序列化方式的描述以及代码示例由于其序列化后的数据较大,且序列化的性能不高,于是市面上出现了很多既可以缩小序列化后数据大小并且又能提高序列化性能的序列化框架,例如Google出品的Potobuf以及Kryo等序列化框架性能以下两张图是引用网上关于几款序列化框架的性能及大小测试的对比图时间占用对比图:空间占用对比图:由此可见,JDK原生的序列化方式耗时最长,并且占用空间最大。在对比之下,各方面表现较好的是Google的Potobuf,Potobuf需要通过静
2020-09-04 19:22:54 296
原创 Curl语句输出时间变量信息
一次线上超时问题回顾前一段时间上线了一个新功能,需要和其他公司的业务进行对接,对方服务部署在阿里云上。后来发现一些接口经常会出现超时的情况。但是经对方开发人员排查,他们的接口没有任何问题,可以正常返回数据后续我们针对日志进行详细排查,发现从请求开始,到发现超时报错,时间大概在15s左右,或15s的倍数我使用Curl语句直接访问对方公网域名,加上...
2020-09-03 23:55:52 946
原创 敏捷开发在项目开发过程中的实践总结
敏捷开发敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。已上介绍来源于百度百科,就我个人理解,敏捷开发的作用,是将以前瀑布式开发一次性需要上线的东西,拆分成为多个可以在不同阶段分开独立上线的功能,采取迭代更新的方式,可以让需要交付的最终结果中的一部分提前
2020-08-31 17:58:26 929
原创 JAVA序列化方式简述
序列化JAVA程序运行过程中,我们可以在JVM堆内存区域中创建可复用的JAVA对象,程序运行过程中可以反复使用。但是在一些场景下:写入磁盘文件或在网络上进行数据传输等,存储或传输的是二进制数据,估因此无法保留数据在JVM中对象的形态,因此序列化和反序列化就是解决此类问题的序列化:将对象信息转化为二进制数据流的过程称为序列化反序列化:将二进制数据流恢复成对象的过程,称为反序列化java序列化机制java原生的序列化方式有两种(1)使用Serializable接口(2)使用Externali
2020-08-29 21:10:52 128
原创 设计模式之代理模式简述
代理模式代理模式的定义为:为某一个对象提供一个代理对象,由代理对象代替该对象方法的调用代理类本身不实现服务,而是通过调用被代理类中的方法来提供服务抽象模式由三种角色组成,分别为抽象角色、代理角色、真实角色抽象角色:通过接口或抽象类声明真实角色实现的业务方法代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用静态代理定义一个接口,作为抽象角色public inter
2020-08-29 14:01:23 109
原创 java中的枚举类型
枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值 枚举类更加直观,类型安全。使用常量会有以下几个缺陷: 1. 类型不安全。若一个方法中要求传入季节这个参数,用常量的话,形参就是int类型,开发者传入任意的int类型值就行,但是如果是枚举类型的话,就只能传入枚举类中包含 的对象。 2. 没有命名空间。开发者要在命名的时候以
2017-03-21 12:10:40 204
原创 java自定义注解
元注解: 在日常編程中,我們遇到的註解有@Override、@SuppressWarnings等等,@Override表示重寫父類的方法,@SuppressWarnings表示忽略警告信息。 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:
2017-03-21 11:23:50 164
原创 java中“==”和euqals的区别
java中的“==”: 基本数据类型之间用==比的是值 引用数据类型之间用==比较的是内存存放的地址java中的equals方法: 它是一个可以重写可以重写的方法,如果不重写equals方法,那它和“==”号作用相同,比较的是对象存放的地址。重写后,可以比较对象的值。举个例子: 用String来作为例子,当定义了两个字符串之后,
2017-03-20 17:46:57 773
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人