2013年3月2日

Android四大组件之Service

摘要: 转自http://developer.android.com/guide/components/services.html自己胡乱翻译了一部分有时间再补上吧,不当之处,请指正。A Service is an application component that can perform long-running operations in the background and does not provide a user interface. Another application component can start a service and it will continue to ru 阅读全文

posted @ 2013-03-02 15:55 夜月升 阅读(463) 评论(0) 推荐(0) 编辑

2013年2月4日

JVM垃圾回收策略(转载/整理)

摘要: 垃圾回收提供了内存管理的机制,使得应用程序不需要在关注内存如何释放,内存用完后,垃圾收集会进行收集,这样就减轻了因为人为的管理内存而造成的错误,比如在C++语言里,出现内存泄露时很常见的。Java语言是目前使用最多的依赖于垃圾收集器的语言,但是垃圾收集器策略从20世纪60年代就已经流行起来了,比如Smalltalk,Eiffel等编程语言也集成了垃圾收集器的机制。 GC就是负责在对象“不可达”的时候将对象回收,常见的语句例如:Object o = null; 而GC本身是如何工作的呢?当系统在创建对象的时候,即当我们使用new关键字创建一个对象的时候,GC就开始监控对象的地址、大小以及... 阅读全文

posted @ 2013-02-04 13:53 夜月升 阅读(1062) 评论(0) 推荐(0) 编辑

2013年2月3日

JVM中堆和栈(转载/整理)

摘要: JVM的内存有很重要的两部分就是堆heap和栈stack(这句是废话)。 Stack(栈)是JVM的内存指令区。Stack管理很简单,push一定长度字节的数据或者指令,Stack指针压栈相应的字节位移;pop一定字节长度数据或者指令,Stack指针出栈。Stack的速度快,管理简单,并且每次操作的数据或者指令字节长度和生存期是已知的。所以Java 基本数据类型,Java 指令代码,常量都保存在Stack中。 Heap(堆)是JVM的内存数据区。Heap 的管理复杂,每次分配不定长的内存空间,专门用来保存对象的实例。在Heap 中分配一定的内存来保存对象实例,实际上也只是保存对象实例的属... 阅读全文

posted @ 2013-02-03 16:20 夜月升 阅读(639) 评论(0) 推荐(0) 编辑

JVM中的方法区(Method Area)(转载/整理)

摘要: Java在内存中专门划分出一块静态存储区域(即在固定位置上存放应用程序运行时一直存在的数据,由于位置固定,下次调用时便省去了查找的麻烦),称为方法区。 类型信息(这里的类型指类或接口)是由类加载器在类加载时从类文件中提取出来的,被存储在方法区。另外,类(静态)变量也存储在方法区中。JVM在运行应用时要大量使用存储在方法区中的类型信息。在类型信息的表示上,设计者除了要尽可能提高应用的运行效率外,还要考虑空间问题。根据不同的需求,JVM的实现者可以在时间和空间上追求一种平衡。 对每个加载的类型,jvm必须在方法区中存储以下类型信息: 1)这个类型的完整有效名(全限定名) 2)这个类... 阅读全文

posted @ 2013-02-03 15:00 夜月升 阅读(677) 评论(0) 推荐(0) 编辑

2013年2月1日

JVM(Java虚拟机)内存模型(转载/整理)

摘要: Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM是为Java字节码定义的一种独立于具体平台的规格描述,是Java平台独立性的基础。对于字节码指令集不感兴趣,直接看寄存器。JVM设置了4个最为常用的寄存器。它们是: pc程序计数器 optop操作数栈顶指针 frame当前执行环境指针 vars指向当前执行环境中第一个局部变量的指针 所有寄存器均为32位。pc用于记录程序的执行。optop,frame和vars用于记录指向Java栈区的指针。至于为什么只设置4个寄存器,是出于这样的考量:如果虚拟机定义较多的寄存器,便可以从中得到更多的信息而不... 阅读全文

posted @ 2013-02-01 20:35 夜月升 阅读(401) 评论(0) 推荐(0) 编辑

2013年1月30日

JRE(Java运行时环境)和windows装载JVM(转载/整理)

摘要: 上次简单说明了JDK,JRE和JVM的概念,这次说一下java程序从源码到可执行机器码的过程 先看一个简单的流程图(来自http://baike.baidu.com/picview/160708/160708/0/ac75478285acf3b90cf4d213.html#albumindex=0&picindex=5) 其中从java源代码到java字节码的详细编译过程看下图(来自http://baike.baidu.com/picview/160708/160708/0/ac75478285acf3b90cf4d213.html#albumindex=0&picindex= 阅读全文

posted @ 2013-01-30 20:20 夜月升 阅读(507) 评论(0) 推荐(0) 编辑

导航