摘要: 之前看过左耳朵耗子的博客,我自己再把这个问题重新整理一遍1.HashMap表的数据结构HashMap用一个指针数组来存储Entry, 按照Entry的key通过一定的规则(得到哈希值)来分散存储这些元素,假设摸一个Entry(B)当按照这个规则计算出来的下标位置已有一个Entry(A),会将最新的E... 阅读全文
posted @ 2015-03-23 16:38 xuqiyu 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 基本的差别为: MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而 InnoDB提供事务支持已经外部键等高级数据库功能。 项目是读多写少的项目适合用MyISAM,MyISAM的读性能是比Innodb强不少的。 阅读全文
posted @ 2013-11-21 15:38 xuqiyu 阅读(265) 评论(0) 推荐(0) 编辑
摘要: java代码是在线程中被执行的。每个线程都有它自己的执行栈,这个栈由很多帧组成。每个帧代表了一个方法调用:每当一个方法被调用时,就会创建一个新的帧,然后将这个帧放到当前线程的执行栈的栈顶。当这个方法正常返回时,或者发生了异常,这个帧就会从执行栈顶弹出,然后虚拟机会接着执行下一个位于执行栈栈顶的帧。每个帧都包含两部分:一个局部变量区和一个操作数栈区。局部变量区包含了方法中定义的局部变量,可以通过索引值来随即访问。操作数栈区,如它的名字暗示,它是一个包含操作数的栈,这些数据被字节码指令所使用。这意味着这个栈中的数据只能以后进先出的顺序访问。局部变量区和操作数栈的大小是由方法中的代码决定的。它们的大 阅读全文
posted @ 2013-11-20 19:28 xuqiyu 阅读(843) 评论(1) 推荐(1) 编辑
摘要: 在D盘根目录下放一个class文件TestBytecode.class运行javap -classpath D:/ -c TestBytecode命令即可输出。javap -classpath D:/ -verboseTestBytecode输出的更为详细 阅读全文
posted @ 2013-10-03 20:23 xuqiyu 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 根搜索算法:这个算法的基本思路是通过一系列名为“GC roots”的对象作为起点,从这些节点开始向下搜索,搜索走过的路径称为引用连,当一个对象到GC roots没有任何引用链,则证明对象是不可用的。将被判定为可回收对象。不可达对象要被垃圾回收,至少要经历两次标记过程。第一次标记时执行finalize()方法,并做记号,第二次标记则不会再执行finalize()方法了。执行finalize()方法后,对象可能又变为可达对象,逃脱被垃圾回收的命运。示例代码--周志明著 Java虚拟机 1 public class FinalizeEscapeGC { 2 3 public static ... 阅读全文
posted @ 2013-10-02 21:13 xuqiyu 阅读(3350) 评论(0) 推荐(0) 编辑
摘要: ClassFile结构:每一个Class文件对应于一个如下所示的ClassFile结构体 1 ClassFile { 2 u4 magic;//魔数,值固定为0xCAFEBABE 3 u2 minor_version;//副版本号 4 u2 major_version;//主版本号 5 u2 constant_pool_count;//常量池计数器,值等于constant_pool表中的成员数加1 6 cp_info constant_pool[constant_pool_count-1];//常量池,包含Class文件结构及其子结构中引用的所有字符串常... 阅读全文
posted @ 2013-10-01 19:43 xuqiyu 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 1.数据类型: Java虚拟机可操作的数据类型分为原始类型和引用类型 原始类型包括数值类型(Numeric)、布尔类型(Boolean)和returnAddress类型: 表示一条字节码指令的操作码(Opcode)。在所有的虚拟机支持的原始类型之中,只有returnAddress类型是不能直接Java语言的数据类型对应起来的。 引用类型包括类类型、数组类型和接口类型,这些引用类型的值分别由类实例、数组实例和实现了某个接口的类实例或数组实例动态创建2.运行时数据区 Java虚拟机定义了很多种程序运行期间使用到的运行时数据区,其中一部分的生命周期与虚拟机一致,另外一部分则是与线程的生命周... 阅读全文
posted @ 2013-10-01 19:30 xuqiyu 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 示例:public class TestAssert { public static void main(String[] args) { assert false: "Exception Assert"; }}格式:assertexpression1: expression2expression1为布尔类型表达式expression2为抛出异常的信息eclipse运行时需带上参数输出结果为:Exception in thread "main" java.lang.AssertionError: Exception Assert at com.xqy.T 阅读全文
posted @ 2013-09-30 21:03 xuqiyu 阅读(182) 评论(0) 推荐(0) 编辑
摘要: Java中的transient,是用于声明序列化的时候不被存储的示例:博客原文:http://www.blogjava.net/liuganquan/archive/2007/04/22/112591.htmlpublic class Logon implements Serializable { private Date date = new Date(); private String username; private transient String password; Logon(String name, String pwd) { us... 阅读全文
posted @ 2013-09-30 11:22 xuqiyu 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 引用自 百度空间-林总的榕树洞http://hi.baidu.com/lyhero11/item/e620d2f670e22d48922af2e1(1)http://hi.baidu.com/lyhero11/item/2afd8938b47655ff97f88de4(2)http://hi.baidu.com/lyhero11/item/2241782a4768efc2ef10f1e1(3)http://hi.baidu.com/lyhero11/item/3607a9632b65ee90c4d249e4(4)http://hi.baidu.com/lyhero11/item/27fdc21 阅读全文
posted @ 2013-07-24 17:38 xuqiyu 阅读(441) 评论(0) 推荐(0) 编辑