
java
文章平均质量分 78
码农小麦
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入解读Java SPI,还有谁不会?
SPI是Java提供的支持第三方实现或扩展接口的机制,全称Service Provider Loader。传统的API调用方无权选择接口的实现,只能按照接口提供方的实现进行调用,有了SPI提供方就可以将实现外放给调用方,大大增加了模块的扩展性,可插拔性。我们先来搞一套自己的SPI看看,按照上面的步骤,首先定义一个标准的接口}原创 2022-11-15 09:54:28 · 652 阅读 · 0 评论 -
分布式应用:从CAP理论到PACELC理论
CAP是分布式应用的基础理论,讨论的是分布式如何满足一致性、可用性、网络分区的问题。C(Consistency):一致性,要求所有节点同一时刻保持数据一致。A(Availability):可用性,要求应用在某些节点发生异常时,应用本身是可用的。P(Partition Tolerance):网络分区容错,分布式应用会有多个节点,节点之间需要进行网络通信,有可能发生网络中断或超时。原创 2022-11-15 09:47:52 · 513 阅读 · 0 评论 -
使用ByteBuf自定义序列化
通常离开内存的东西,如果需要存储或传输是需要序列化的,在java中要序列化是要实现Serializable的(或其子类),那不实现Serializable,如何实现一个自定义的序列化呢,我首先想到的是字节流化。只要可以把一个对象的内容流化到一个字节数组中,那么就可以完成序列化操作,为了能够实现反序列化,还要记录下对象内容(类变量)在序列化字节数组中的大小和位置,我想到的是ByteBuffer,就靠它了。public class Bird { private String name; privat原创 2020-06-07 01:08:17 · 1103 阅读 · 0 评论 -
如何跟踪邮件已读状态(Java)
图片的展示形式:html中图片元素表示:<img src="url" alt="some_text">其中src部分是比较好玩的,我们可以用图片服务器链接地址,例如:<img src="https://ss1.bdstatic.com/lvoZeXSm1A5BphGlnYG/icon/95541.png"/&g原创 2019-03-14 09:34:54 · 8170 阅读 · 8 评论 -
【java】使用jwt进行认证授权
传统的web应用使用session来维护用户与服务器之间的状态,用户提交用户名密码到服务器,服务器生成会话id,并将验证通过的用户信息存到session中(内存or数据库),会话id会写出到cookie。用户登录之后的操作,都会附带包含sessionId的cookie,服务器根据用户端传来的sessionId获取用户信息,会话的有效期,包括用户登出等操作都依赖对session的操作,如下图:基于session的认证用户信息存在了服务端内存中,在分布式环境中session是需要同步的。出现了基于toke原创 2020-05-16 14:22:21 · 2925 阅读 · 1 评论 -
【正则】驼峰命名转下划线
前段时间有小同事出去面试,微信发了我一个笔试题,需要给出结果,大概如下:test = "userInfo";reg = "([a-z])([A-Z])";System.out.println(test.replaceAll(reg, "$1_$2").toLowerCase());小同事大概觉得是应该输出user_info,但是又不确定,我回复他输出结果确实是这个。我问了两个身边的...原创 2019-05-14 10:47:47 · 1316 阅读 · 1 评论 -
【Java】说说关于跨域问题的那点P事
跨域问题是在浏览器端在当下域名(源)试图访问其他域名(非同源)的资源产生的,同源策略(协议、域名、端口相同)是浏览器的安全机制。跨域问题可以说是一个很常见的问题,如今很多服务都微化了,很容易遇到跨域的问题。常见的解决方案就是jsonp(后端包装js回调)和CORS(后端跨域共享)。先来看下jsonp,利用src属性加载静态资源不受跨域限制,比如使用script标签引入js文件,使用img加载图片。原理就是通过src来请求非同源资源并指定callback函数,后端收到请求后包装callback函数和响应结原创 2020-05-16 12:08:55 · 2267 阅读 · 1 评论 -
【java】说说有关jdk动态代理的那些事
首先说下为什么要有动态代理呢?设计模式中,有一种模式叫代理模式,为什么要使用动态代理其实和为什么要使用设计模式一样,请读者自行思考。代理通常有静态代理,动态代理,其中静态代理是通过持有目标对象引用,然后对目标对象的方法进行增强,可以说是一种硬编码。jdk动态代理也需要持有目标对象的引用,在目标对象的方法的调用处进行增强,但这部分被封在处理器InvocationHandler中,通过反射机制生成Proxy实例,并传入处理器。先来看下使用jdk动态代理实现方式:import java.lang.refle原创 2020-05-16 11:51:15 · 2462 阅读 · 2 评论