上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 41 下一页
摘要: 为什么要垃圾回收? 程序运行必然要申请内存资源,如果不再使用的对象一直占用内存资源必将导致内存溢出 什么样的对象需要被GC? 判断算法:计数器法,可达性分析算法 引用计数算法 它的做法是为每个对象添加一个引用计数器,用来统计指向该对象的引用个数。一旦某个对象的引用计数器为 0,则说明该对象已经死亡, 阅读全文
posted @ 2018-04-20 17:18 Emyin 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 在运行过程中,每当调用进入一个 Java 方法,Java 虚拟机会在当前线程的 Java 方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数。这个栈帧的大小是提前计算好的,而且 Java 虚拟机不要求栈帧在内存空间里连续分布。当退出当前执行的方法时,不管是正常返回还是异常返回,Java 虚拟机 阅读全文
posted @ 2018-04-20 13:21 Emyin 阅读(688) 评论(0) 推荐(1) 编辑
摘要: 创建对象的多种方法:new语句,反射,clone, 反序列化 等 其中,Object.clone 方法和反序列化通过直接复制已有的数据,来初始化新建对象的实例字段。,而 new 语句和反射机制,则是通过调用构造器来初始化实例字段。 构造器 1. 如果一个类没有定义任何构造器的话, Java 编译器会 阅读全文
posted @ 2018-04-20 12:25 Emyin 阅读(2087) 评论(0) 推荐(0) 编辑
摘要: 当声明 synchronized 代码块时,编译而成的字节码将包含 monitorenter 和 monitorexit 指令。上面的字节码中包含一个 monitorenter 指令以及多个 monitorexit 指令。这是因为 Java 虚拟机需要确保所获得的锁在正常执行路径,以及异常执行路径上 阅读全文
posted @ 2018-04-20 12:01 Emyin 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 前不久,“虚拟机”赛马俱乐部来了个年轻人,标榜自己是动态语言,是先进分子。 这一天,先进分子牵着一头鹿进来,说要参加赛马。咱部里的老学究 Java 就不同意了呀,鹿又不是马,哪能参加赛马。 当然了,这种墨守成规的调用方式,自然是先进分子所不齿的。现在年轻人里流行的是鸭子类型(duck typing) 阅读全文
posted @ 2018-04-20 11:55 Emyin 阅读(2677) 评论(0) 推荐(0) 编辑
摘要: 反射是 Java 语言中一个相当重要的特性,它允许正在运行的 Java 程序观测,甚至是修改程序的动态行为。 在 Web 开发中,我们经常能够接触到各种可配置的通用框架。为了保证框架的可扩展性,它们往往借助 Java 的反射机制,根据配置文件来加载不同的类。举例来说,Spring 框架的依赖反转(I 阅读全文
posted @ 2018-04-12 13:30 Emyin 阅读(233) 评论(0) 推荐(0) 编辑
摘要: html的三种布局方式: 标准流(默认,顺序布局) 浮动 定位 两大元素 块级元素(div,table,h1~h6,ul,li,p...) 独占一行 内联元素(a,span,img,input) 和相邻内联元素在同一行,一行宽度不够会重起一行 position:relative:对宽高无影响 lef 阅读全文
posted @ 2018-04-08 22:04 Emyin 阅读(387) 评论(0) 推荐(0) 编辑
摘要: javap 是一个能够将 class 文件反汇编成人类可读格式的工具。 使用javap 这里面我用到了两个选项。第一个选项是 -p。默认情况下 javap 会打印所有非私有的字段和方法,当加了 -p 选项后,它还将打印私有的字段和方法。第二个选项是 -v。它尽可能地打印所有信息。如果你只需要查阅方法 阅读全文
posted @ 2018-04-03 22:57 Emyin 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 众所周知,异常处理的两大组成要素是抛出异常和捕获异常。这两大要素共同实现程序控制流的非正常转移。 抛出异常可分为显式和隐式两种。 显式抛异常的主体是应用程序,它指的是在程序中使用“throw”关键字,手动将异常实例抛出。 隐式抛异常的主体则是 Java 虚拟机,它指的是 Java 虚拟机在执行过程中 阅读全文
posted @ 2018-02-03 16:53 Emyin 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 1. 虚方法调用 Java 里所有非私有实例方法调用都会被编译成 invokevirtual 指令,而接口方法调用都会被编译成 invokeinterface 指令。这两种指令,均属于 Java 虚拟机中的虚方法调用。 在绝大多数情况下,Java 虚拟机需要根据调用者的动态类型,来确定虚方法调用的目 阅读全文
posted @ 2018-01-06 11:23 Emyin 阅读(235) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 41 下一页