
Java
胜佑
这个作者很懒,什么都没留下…
展开
-
ServiceLoader原理解析
最近在公司的项目里看到了ServiceLoader这个类,就好奇地去了解了一下。我们都知道,根据一个类去找它的父类或者接口那很简单。毕竟类加载的时候,相关信息都加载进去了。但反过来就不简单了,那就是根据接口去找所有实现类。这个类主要作用就是加载某个接口的实现类。类似的功能,我以前用注解的形式实现过。就是扫描包,然后根据注解信息判断是否是某个类的子类,然后进行加载。但这显然是个不大好的方法,...转载 2018-08-06 15:21:30 · 223 阅读 · 0 评论 -
ThreadLocal原理解析(1):数据存取
转载请注明出处:【huachao1001的专栏:http://blog.youkuaiyun.com/huachao1001】本文是源码解析是基于JDK 1.7注意:Android内使用的ThreadLocal跟JDK内部的ThreadLocal具体实现有区别。但是他们所做的功能是一致的,只是Android针对ThreadLocal做了优化。但这不影响我们学习ThreadLocal的实现思想。...转载 2018-08-14 11:32:44 · 176 阅读 · 0 评论 -
ThreadLocal原理解析(2):ThreadLocalMap源码解析
转载请注明出处:【huachao1001的专栏:http://blog.youkuaiyun.com/huachao1001】跟上一篇文章【ThreadLocal原理解析(1):数据存取】一样,本文是源码解析是基于JDK 1.7。在上一篇文章【ThreadLocal原理解析(1):数据存取】中,我们介绍了ThreadLocal读取数据的过程及原理。我们知道,ThreadLocal将变量的各个副本值保存...转载 2018-08-14 11:38:57 · 168 阅读 · 0 评论 -
RunTime.getRunTime().addShutdownHook 添加钩子
看源码看到, Runtime.getRuntime().addShutdownHook(shutdownHook);google了一下它的含义:在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。 在了解关闭钩子...转载 2018-08-07 16:45:57 · 660 阅读 · 0 评论 -
Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释
一、线程5种状态 新建状态(New) 新创建了一个线程对象。 就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 运行状态(Running) 就绪状态的线程获取了CPU,执行程序代码。 阻塞状态(Blocked) 阻塞状态是线程因为某种原因放弃CPU使用权,...转载 2018-08-08 15:11:27 · 1237 阅读 · 0 评论