`
dsxwjhf
  • 浏览: 70710 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论
文章列表
我们知道,动态代理主要基于 java.lang.reflect 包下的两个类,一个是 InvocationHandler ,一个是 Proxy 。一个简单的 Dynamic Proxy 的构造过程如下: ================================================== public class MyInvocationHandler implements InvocationHandler { ...
以下内容部分来自网络,如有侵权,请站内联系。 Tomcat 下的工程,使用 WebappClassLoader 进行类的加载。查看 WebappClassLoader 源码,可以总结出 Tomcat 的类加载过程如下: 1. 先在自己(即当前 WebappClassLoader)的缓存中查找,有则返 ...
以下内容摘抄自周志明的《深入理解 Java 虚拟机》,自己也似懂非懂,仅仅是做个总结。 1. 加载。     1). 通过一个类的全限定名获取该类的二进制字节流;     2). 将这个字节流所代表的静态存储结构转化为方法区的运行时 ...
语法上的区别大家都知道,什么接口的方法全都得是抽象的,而抽象类允许实体方法;一个实体类只能继承一个抽象类,但可以实现多个接口;什么接口的方法必须是 public 的,抽象方法还可以用 protected 修饰,等等。 如果你只回答了这么多,那肯定不是个好消息。更窝火的是,你明明觉得肚里有货,却很难找到一个角度表达出来。下面参考了网上一些同学的回复,和我自己的理解,总结一下供大家参考。 从实际工作角度来说: 大多数情况下,接口是设计的产品,抽象类是重构的产品。 从发明它们的用意来说: 抽象类是为了把相同的东西提取出来,是为了重用;而接口的作用是制定模块之间的契约,是为了降低耦合。
我们知道,目前主流的虚拟机实现都采用了分代收集的思想,把整个堆区划分为新生代和老年代;新生代又被划分成 Eden 空间、 From Survivor 和 To Survivor 三块区域。 看书的时候有个疑问,为什么非得是两个 Survivor 空间呢?要回答这个问题,其实等价于:为什么不是0个或1个 Survivor 空间?为什么2个 Survivor 空间可以达到要求? 为什么不是0个 Survivor 空间? 这个问题等价于:为什么需要 Survivor 空间。我们看看如果没有 Survivor 空间的话,垃圾收集将会怎样进行:一遍新生代 gc 过后,不管三七二十一,活着的对象全部进 ...
前几天看周志明的《深入 Java 虚拟机》,感觉对 OopMap 和 RememberedSet 的介绍,看起来不太容易理解清楚。今天查了一些资料,并结合自己的一些猜想,把对这两种数据结构的理解写出来。目的只是为了简单易懂,而且多有推测,可能会有一些理解上的偏差,请选择性阅读。 总体而言: OopMap 用于枚举 GC Roots ; RememberedSet 用于可达性分析。 OopMap OopMap 记录了栈上本地变量到堆上对象的引用关系。其作用是:垃圾收集时,收集线程会对栈上的内存进行扫描,看看哪些位置存储了 Reference 类型。如果发现某个位置确实存的是 Referenc ...

Hello iteye !

由于百度空间将于近期关闭,现挪窝到 iteye 。 打算每天手工搬一点儿,顺便看看自己以前写的东西。 Hello iteye !
Global site tag (gtag.js) - Google Analytics