
java
kangzye
这个作者很懒,什么都没留下…
展开
-
java spi ,servlet3.0 spring web启动
问题: spring web,在没有web.xml的情况下是如何被tomcat拉起来启动的呢?首先是,tomcat 会通过 java 的spi 机制(其实tomcat 没java提供的spi方式,只是参照了其规范而已,下面详述),去找 javax.servlet.ServletContainerInitializer (since servlet 3.0)的实现类sping-web jar里有对 ServletContainerInitializer 的实现 SpringServletContainerI原创 2021-04-25 09:56:01 · 216 阅读 · 0 评论 -
java Double.doubleToLongBits 方法作用
看了官方注释,没看懂,测试了下,是下面所说的作用:这个方法的作用其实就是:将已浮点格式存储在内存中的小数,直接当做Long 读取出来。比如 0.2 在内存中是: 0011111111001001100110011001100110011001100110011001100110011010然后该方法直接把他当做Long 读取出来,得到的数值是 4596373779694328218 ,我们再...原创 2019-09-12 11:28:03 · 3362 阅读 · 0 评论 -
socket通信例子
NIO 同步非阻塞方式,socket 的通信例子。服务器端:package com.kangzye.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.net.SocketAddress;import java.nio.ByteBuffer;import ja...原创 2018-10-08 17:45:56 · 311 阅读 · 0 评论 -
java通配符匹配文件路径
java.nio.file.PathMatcher 接口的 matches 方法,可以测试一个地址是否和通配符地址匹配:PathMatcher matcher = FileSystems.getDefault().getPathMatcher( "glob:**/*.xml");boolean matches = matcher.matches(Paths.get("D:/tmp/...原创 2018-06-26 18:24:32 · 6482 阅读 · 0 评论 -
jhat工具的 OQL 查询语法
jmap -dump:format=b,file=./abc.dump之后,会产生 abc.dump 文件,然后如果服务及其性能相当不错的话,可以再服务器上直接运行命令:jhat -J-Xmx2000M abc.dump 运行之后,会打开默认的7000 端口对外提供http的服务,用浏览器即可进行查看。 From:http://blog.youkuaiyun.com/wanglh...原创 2018-01-24 20:39:17 · 864 阅读 · 0 评论 -
分布式系统中日志的串联
分布式系统中,一个业务任务请求会被多个系统串联或者并行的去执行,最后返回结果,这已经很常见。 为了在日志中能很快的在各个系统中对应的属于同一业务任务的日志,我们可以在最初时,产生一个 SN 唯一编码,然后在各个系统之间的调用参数中,必须统一规范的传递这个SN 。于是每个系统都能知道SN. 系统知道了SN 之后,怎么方便的应用起来?不能每次log的时候都...原创 2017-02-23 15:29:25 · 590 阅读 · 0 评论 -
InheritableThreadLocal 的一些用途
InheritableThreadLocal 是 ThreadLocal 的近亲,和 后者基本用法一直,但是前者非线程安全,后者线程安全,InheritableThreadLocal 的用途是,创建的子线程会继承父线程的这些上下文,于是可以取到放在InheritableThreadLocal里的东西,这样可以用在比如:分布式系统中,多个系统串联起来工作,为了将这些系统中的请求的日志能串联起来,可以...原创 2017-02-22 10:13:32 · 598 阅读 · 0 评论 -
类属性和构造函数 在继承关系中的执行顺序
类属性和构造函数 在继承关系中的执行顺序:class A { public String ss="a"; public A() { System.out.println("Con-A:"+ss); fun(); } public void fun() { System.out.println("fun-a:"+ss); }}public c...原创 2017-02-16 17:11:59 · 264 阅读 · 0 评论 -
Mockito备忘
@spy 和 @mock 区别spy的情况是会创建一个真实实例,方法都是真实的,而mock 创建的实例,方法都是虚的,否返回null之类的默认值。如果@spy再加上 @InjectMocks 那么,那么表示 对象中的属性对象(一些用@resource标记的对象)需要从@spy时上下文中,给出这些属性的对象,否则会是null的。 @spy的对象上,要改动某个方法不能这样when(...原创 2017-07-03 15:40:46 · 94 阅读 · 0 评论 -
jstat 查看内存情况
D:\Users\yftan>jmap -heap 7872Attaching to process ID 7872, please wait...Debugger attached successfully.Server compiler detected.JVM version is 24.45-b08 using thread-local object all...原创 2017-06-15 15:24:49 · 350 阅读 · 0 评论 -
String.intern() 的意义
都知道string常量表最开始是存储编译时就可以确定的string常量。据说,jdk1.6以后这个常量表放到了堆中。什么是编译时可以确定 的string常量,而什么不是?看代码public static void main(String[] args){ String s1 = "abcdefg"; String s2 = randString(7...原创 2017-01-09 11:39:13 · 280 阅读 · 0 评论 -
java System.getProperties 可获取内容列表
Java.versionJava 运行时环境版本java.vendorJava 运行时环境供应商java.vendor.urlJava 供应商的 URLjava.homeJava 安装目录java.vm.specification.versionJava 虚拟...原创 2017-01-04 13:30:08 · 106 阅读 · 0 评论 -
java volatile解释
术语定义 术语英文单词 描述共享变量 在多个线程之间能够被共享的变量被称为共享变量。共享变量包括所有的实例变量,静态变量和数组元素。他们都被存放在堆内存中,Volatile只作用于共享变量。内存屏障Memory Barriers是一组处理器指令,用于实现对内存操作的顺序限制。...原创 2016-07-23 23:36:01 · 65 阅读 · 0 评论