随笔分类 - java随笔
各种java相关小知识技能
摘要:小数与浮点数 很多人都会认为,小数就是浮点数。但其实非也。 小数只是一种实数的一种特殊表现形式,所有分数都可以用小数来表示。 而浮点数,是计算机领域的一个术语,浮点数代表着目前计算机表示小数的一方式。 浮点数的由来 我们都知道计算机表示特定的数据类型长度是固定的。 比如在java语言里,小数的表示,
阅读全文
摘要:总述 Spring Bean的生命周期是一个老生常谈的问题,笔者之前因为面试也看过不少相关的文章。发现每个文章写得都不太一样,有的多有的少。最近在重翻Spring源码的时候,发现`org.springframework.beans.factory.BeanFactory`中对整个过程在注释中写得非常
阅读全文
摘要:总述 https简单来说就是在http协议的基础上增加了一层安全协议。通常为TLS或者SSL(一般现在都采用TLS,更加安全)。这一层安全协议的最主要的作用有两个: 1. 验证服务端或客户端的合法性 2. 商量出最终用来http通信的对称加密秘钥 本次仅仅讲第1点 单向认证与双向认证 所谓的认证既确
阅读全文
摘要:姿势一 使用expiredAferWriter 优点 简单 粗暴 缺点 同步阻塞问题:如果多个线程同时请求同一个过期的key,只有一个线程能够获得去加载缓存的锁,但是其他未获取加载缓存锁的线程也会阻塞。 show me the code 姿势二 使用expiredAfterWrite + refre
阅读全文
摘要:经过 最近新做了一个需求,需要通过https远程调用第三方接口。之前也对接过一些接口,只不过之前对接的接口的报文编码格式基本上都是UTF-8,而这次对接的是GBK。 一顿操作之后和对端的接口终于通了,不过却发现对方返回的报文出现一堆问号乱码。开始以为底层的实现没有做URLDecoder(实际上即使没
阅读全文
摘要:例子 从上面的例子总结类初始化的时候代码的执行顺序如下: 父类和子类的 属性初始化 》 父类的 属性初始化 》父类的 代码块 》 子类的 属性初始化 》子类的 代码块 》父类的非静态属性 》父类的非静态代码块 》父类的构造函数 》 子类的非静态属性 》 子类的非静态代码块 》子类的构造含 不管父
阅读全文
摘要:说明: jdk1.8反射包增加了 类,通过该类的 方法能在运行时得到参数的名称 如果没有通过 指定编译器在编译的时候将参数名编译进去,那么得到的参数名称将会是arg1、arg2、arg3这种默认的参数名
阅读全文
摘要:总述 jdk1.8引入了 相关的API,通过该API。可以实现流式编程,使你写代码的时候行云流水 使得集合的转换变得更加简单,原来可能需要写多个for循环或者多个if判断的,直接一个stream 操作就可以实现 细说 说明: 的用法遵循三个步骤: 创建 》转换 》聚合 的API支持对列表的多种操作,
阅读全文
摘要:获取同一类型多个注解 jdk1.8的 类新增了方法 方法,该方法可以获取某一个类型的注解列表,具体代码示例如下: 更好的类型推断 上面可以看出 第二个参数的类型可以通过第一个参数来推断,如果在jdk1.8之前,需要写成如下形式: 注解的进一步扩展 jdk1.8扩展了注解的上下文,现在注解
阅读全文
摘要:总述 & 160;& 160;& 160;& 160;最近做了一个日志调用链路跟踪的项目,涉及到操作标识在线程和子线程,线程池以及远程调用之间的传递问题。最终采用了阿里开源的 插件()完美解决。在分析源码以及中途修复bug的过程中,被 搞得晕头转向。好在静下心来细细啃了一下午,终于能理解各种 相关问
阅读全文
摘要:
阅读全文
摘要:总述 & 160;& 160;& 160;& 160;JDK都要出12了,而我们项目使用的jdk却仍然还停留在JDK1.6。为了追寻技术的发展的脚步,我这边准备将项目升级到JDK1.8。而作为一个web项目,我们的容器使用的是Tomcat。看了下Tomcat版本与JDK版本之间的兼容关系以及网上所传
阅读全文
摘要:最近在搞一个定时任务的相关东西,为了方便记忆,这里将知识点总结成一个思维导图。后续也会通过思维导图的方式发布博客。
阅读全文
摘要:前言 最近做的一个项目因为安全审计需要,需要做安全改造。其中自然就包括XSS和CSRF漏洞安全整改。关于这两个网络安全漏洞的详细说明,可以参照我本篇博客最后的参考链接。当然,我这里并不是想写一篇安全方面的专题。我要讲的是在做了XSS漏洞修复之后引发的一系列事件。 超时 本地测试的时候随便点了
阅读全文
摘要:顺序、广播、定时任务 前插 在进行常用的三种消息类型例子展示的时候,我们先来说一说RocketMQ的几个重要概念: PullConsumer与PushConsumer :主要区别在于Pull与Push的区别。对于PullConsumer,消费者会主动从broker中拉取消息进行消费。而对于Pus
阅读全文
摘要:RocketMQ入门 源码和应用下载 这里以RocketMQ的4.3.0版本为例,本地环境为windows10,jdk1.8, maven3.2.1. 源码下载地址 : 应用下载地址 : 启动 Windows下需要配置环境变量,ROCKETMQ_HOME, 我这里配置为: 配置完环境变量
阅读全文
摘要:AMQ的持久化问题 前言 前面一篇AMQ专题中,我们发现对于Topic这种类型的消息,即使将deliveryMode设置为持久化,只要生产者在消费者之前启动。消息生产者发布的消息还是会丢失。这是符合JMS规范的。 当然,作为一个如此活跃的开源消息中间件,在实现JMS基本规范之后,必然会通过扩展的
阅读全文
摘要:序 好久没有写博客了,最近真的是可以说是忙成狗了。项目的事和自己的终身大事忙得焦头烂额,好在是一切都是越来越好了...... 趁着项目今天唯一的一点喘息时间,加上项目开始接触到的mq,开始写一篇amq的入门专题 AMQ入门实例 下载导入源码: 下载地址 : http://activemq.apach
阅读全文
摘要:第三集:分布式Ehcache缓存改造 前言 好久没有写博客了,大有半途而废的趋势。忙不是借口,这个好习惯还是要继续坚持。前面我承诺的第一期的DIY分布式,是时候上终篇了 DIY分布式缓存。 探索之路 在前面的文章中,我给大家大致说过项目背景:项目中的缓存使用的是Ehcache。因为前面使用E
阅读全文
摘要:For update or not 起源 之所以想写这个专题,是因为最近在做一个抢占任务的实现。假设数据库很多个任务,在抢占发生之前任务的状态都是FREE。现在假设同时有一堆抢占线程开始工作,抢占线程会查找数据库中状态为FREE的任务,并且将其状态置为BUSY,然后开始执行对应任务。执行完成之后
阅读全文