随笔分类 -  JVM

Java虚拟机相关知识
摘要:在Java编程语言和环境中,即时编译器(JITcompiler,just-in-time compiler)是一个把Java的字节码(包括需要被解释的指令的程序)转换成可以直接发送给处理器的指令的程序。当你写好一个Java程序后,源语言的语句将由Java编译器编译成字节码,而不是编译成与某个特定的处... 阅读全文
posted @ 2014-04-15 10:30 曹守鑫 阅读(1637) 评论(0) 推荐(1)
摘要:类中声明的静态变量在递归调用中的值不会发生变化,但是对于非静态变量递归过程中会发生变化,初始化为0static声明的为类变量,而非static声明的为实例变量(byte,short,char)-int-long-float-double:低级到高级自动类型转换,高级到低级需要强制转换,包装类型过滤类型能够转换;对于java的变量,我们知道有成员变量和局部变量。关于他们的初始化,基本上所有书上都会写。成员变量,java会帮助你初始化,局部变量,则需要程序员自己初始化。对于类的成员变量。不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值。规则为:1、整数类型(byte、sho 阅读全文
posted @ 2013-12-24 15:59 曹守鑫 阅读(499) 评论(0) 推荐(0)
摘要:基本概念:序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。1. 什么是Java对象序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。 使用Java对象序列化,在保存对象时,会把其状态保存为一组字节,在未来,再将这些字节组装成对象。必须注意 阅读全文
posted @ 2013-12-18 17:05 曹守鑫 阅读(208) 评论(0) 推荐(0)
摘要:PermGen space的全称是Permanent Generation space,是指内存的永久保存区域这一部分用于存放Class和Meta的信息,Class在被Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。(方法区)Young generation , Tenured generation:老年代--------------》java堆 阅读全文
posted @ 2013-10-25 10:16 曹守鑫 阅读(152) 评论(0) 推荐(0)
摘要:静态编译就是在编译的时候把你所有的模块都编译进exe里去,当你启动这个exe的时候所有模块都加载进来了。你写小程序没问题,但程序一大,加载的过程(就是当你运行程序时初始化的过程)就比较费力了。。大多数ppc的硬件配置还是很一般的。。。。。。动态编译就不一样了,你编译的时候那些模块都没有编译进去,一般情况下你可以把那些模块都编译成dll,这样你启动程序(初始化)的时候这些模块不会被加载,而是在运行的时候,用到那个模块就调用哪个模块。。。。。简单的打个比方,我写个阅读器,支持txt,pdf,udm三种格式,暂时把读txt,读pdf,读udm定义为三个功能模块。使用静态编译:我想看个txt,点击应用 阅读全文
posted @ 2013-10-25 10:04 曹守鑫 阅读(4230) 评论(2) 推荐(0)