
Java
星河arnold
还有很多事要做,怎能就此停滞不前。 全平台同名
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
源码分析Jedis配置的TestOnBorrow实现原理及对应的lettuce配置
概述Jedis的设置项中有一个testOnBorrow的配置项,这个配置项其实来自于Apache CommonPools,意思是从连接池中取出是检查连接是否失活。最近需要把项目中的Redis客户端从Jedis切换成Lettuce,发现Lettuce中没有testOnBorrow的这个配置项,倒是有一个pingBeforeActivateConnection配置项(官方说法是在使用连接前,先进行PING检查连接),本着迁移时不对项目现有配置做改动的原则,研究下Jedis的testOnBorrow配置项的底原创 2020-06-18 19:36:14 · 3269 阅读 · 0 评论 -
一文搞懂Java8中表示当前的时间类Date、Instant、LocalDateTime、ZonedDateTime
1. 概述Java8中的时间类主要有:Date、Instant、LocalDateTime(LocalDate、LocalTime)、ZonedDateTime,除去Date,java.time包下的那些时间类都是不可变类,也就是说:其是线程安全的,对其设置只会产生一个新对象。在这里,我们要分清楚包含时区信息的类、以及不包含时区信息的类。不包含时区信息的类实际上就类似于一个yyyy-MM-dd HH:mm:ss字符串,需要额外的时区信息才能表达一个时刻,即LocalDateTime、LocalDate、原创 2020-05-20 23:47:10 · 2497 阅读 · 0 评论 -
解决JRebel进行代码热加载时FastJson的JsonField的缓存无法刷新问题
问题原因FastJson为了快速解析对象,会将已经解析过的对象的元信息缓存起来,所以关键就是清除其缓存,在没有缓存的情况下其会再次生成。相关Issue:jrebel修改后调用toString方法报错问题问题:修改属性的类型后无法解析。解决方案@RestController@RequestMapping("/api")public class SystemController {...原创 2020-04-18 22:09:00 · 994 阅读 · 3 评论 -
记录下自己编译Spring5源码的过程(一)之处理依赖问题
缘起这段时间一直接触Spring,我这人就喜欢没事看看源码,捣鼓捣鼓写东西,于是就想着研究下Spring的源码,于是到Github下载了Spring5的源码,尝试着编译,不过总是碰到些问题。比如:Gradle同步是老师报PKIX异常(ssl证书问题),或是某些东西无法下载,花了好久、躺了许多坑,最终在我给老爸打电话时点击同步等了许久它突然就好了,神奇。踩坑一开始我下了源码直接就Gradle同...原创 2020-04-06 23:34:47 · 441 阅读 · 0 评论 -
openjdk11源码从编译到clion调试
1. 概述先声明环境:Ubuntu18安装并配置好JDK11(openjdk version “11.0.1” 2018-10-16)Clion2019.2可以在docker里面编译,利用ubuntu的镜像,然后安装相关依赖也不会影响到宿主机。2. 下载OpenJDK11其实我们搜索openjdk进入到jdk11特性列表页面时,左边有个Mercurial链接,从那就可以进入源码列...原创 2019-08-30 14:56:59 · 6457 阅读 · 6 评论 -
Java通过注解实现一个接口--利用反射与代理
概述传统实现接口的方式需要implement才行,通过注解实现一个接口可以减轻每次都要implement的繁琐。本文实现一个Demo来展示如何通过注解实现一个接口。Codeimport java.lang.annotation.Annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Re...原创 2019-07-21 16:43:32 · 1345 阅读 · 0 评论 -
JDK11版HashMap源码全部解析(详细)-一文覆盖各方面
本文很长,详细描述了HashMap源码级别的实现原理,并讨论了包括扩容,hash计算,新建HashMap的开销等问题,同时还提供了一些外部资料。由于内容太多,建议阅读时结合目录快速跳转查看。原创 2019-05-11 16:18:32 · 3048 阅读 · 0 评论 -
深入解析Java泛型通配符类型
概述在Java中,通配符类型List<?>等价于List<? extends Object>,List<? extends Animal>则代表其可以被赋值为List或List等其子类,List<? super Cat>代表其可以被List赋值。对于采用extends形式的,主要用于读取(get),写入(set)就只能写入null对于采用sup...原创 2019-04-24 12:49:39 · 345 阅读 · 0 评论 -
java11使用VisualVm配置远程Jstatd与JMX连接
1.Jstatd:1.1配置jstatd.policy在java11中由于没有tools.jar,所以原有的配置jstatd.policy方式行不通jstatd.policy改成如下即可grant codebase &quot;jrt:/jdk.jstatd&quot; { permission java.security.AllPermission; };grant codebas...原创 2019-02-13 19:41:25 · 3591 阅读 · 2 评论 -
java项目模板-Netty
gradle implementation 'io.netty:netty-all:4.1.31.Final'常用服务端辅助代码:import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelFuture;import io...原创 2018-12-10 11:16:56 · 1201 阅读 · 0 评论 -
java项目模板-log4j
log4j.xml&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&amp;lt;!DOCTYPE log4j:configuration PUBLIC &quot;-//APACHE//DTD LOG4J 1.2//EN&quot; &quot;原创 2018-12-10 10:19:21 · 306 阅读 · 0 评论 -
java项目模板-Mybatis
mybatis-config.xml&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt;&amp;amp;lt;!DOCTYPE configuration PUBLIC &amp;quot;-//mybatis.org原创 2018-12-10 10:17:32 · 597 阅读 · 1 评论 -
JDBC数据库驱动注册与Connection获取源码分析
源码分析:这是Mysql 8.x版的java驱动部分源码package com.mysql.cj.jdbc;import java.sql.SQLException;public class Driver extends NonRegisteringDriver implements java.sql.Driver { // // Register ourselves ...原创 2018-12-14 09:08:37 · 623 阅读 · 0 评论 -
Java正确实现单例模式
当不用考虑线程安全时,使用传统方法可以很容易解决,这里我们在考虑线程安全性的情况下实现单例模式双检锁这是一种懒加载方式public class Singleton { private static volatile Singleton INSTANCE; private Singleton(){} public static Singleton ge...原创 2018-12-12 16:47:02 · 462 阅读 · 0 评论 -
Java微基准测试框架JMH的使用
**查了下JMH的使用,很多博客都要搞得好复杂,我这个步骤挺简单的 使用Intellij IDEA2018.2 作为集成开发环境,JMH版本为1.21 注意建项目时一定要建立一个maven项目,直接导入jmh-core,jmh-generator-annprocess这两个jar没用,完整的依赖如下:** &amp;amp;lt;dependencies&amp;amp;gt; &amp;amp;lt;depende...原创 2018-08-21 17:51:14 · 1054 阅读 · 0 评论 -
Gradle使用Junit5进行test
1.如果是Gradle 4.6及以上版本,则Gradle原生支持Junit5,使用时只需在build.gradle里配置: test { useJUnitPlatform() }dependency按正常来即可: dependencies { testCompile group: ‘org.junit.platform’, name: ‘...原创 2018-08-28 17:46:50 · 13662 阅读 · 0 评论