
JVM
文章平均质量分 72
yakihappy
电信领域的计算机软件开发人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java程序运行过程
运行Java时,发生的第一件事情就是试图访问main()[一个Static方法],于是加载器开始启动并找出对应类的编译代码(即.class文件)。在装载过程中,装载程序注意它有一个基础类(即extends关键字要表达的意思),所以随之将其载入。无论是否准备生成那个基础类的一个对象,这个过程都会发生。若基础类含有另一个基础类,则另一个基础类随即也会载入,以此类推。接下来,会在根基础类执行s原创 2009-03-11 13:53:00 · 1622 阅读 · 2 评论 -
Java 1.5和1.6中新特性
JDK5新特性(与1.4相比)【转】1 循环 for (type variable : array){ body}for (type variable : arrayList){body} 而1.4必须是:for (int i = 0; i body} for (int i = 0; i 2 泛型以ArrayList为例,包括创建一个容器对象和取得容器原创 2009-03-11 13:53:00 · 4420 阅读 · 0 评论 -
Java体系结构
Java语言拥有三大特征:平台无关性、网络移动性和安全性,而Java体系结构对这三大特征提供了强大的支持和保证。Java体系结构 首先Java的源代码Java文件由编译器编译成Java的二进制字节码class文件,然后class文件由Java虚拟机中的类装载器进行加载,同时类装载器还会加载Java的原始 API Class文件,类加载器主要负责加载、连接和初始化这些class原创 2009-03-11 13:51:00 · 1023 阅读 · 0 评论 -
性能优化
1.不用new关键词创建类的实例 用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法。clone()方法不会调用任何类构造函数。如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单。2.不要重复初始化变量 默认情况下,调用类的构造函数时, Java原创 2009-03-11 13:50:00 · 745 阅读 · 0 评论 -
heap和stack有什么区别
heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 堆和栈最大的区别在于堆是由低地址向高地址分配内存,而栈是由高向低。一般来说栈在低地址,堆位于高地址。打个比方,堆就是一堆沙子,你要用的时候,随便从里面取一些,用后随便归还。而栈呢,是你增加和减少的一个叠在一起的一叠碗,你要原创 2009-03-11 13:50:00 · 1401 阅读 · 0 评论 -
内存分配
程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static原创 2009-03-11 13:49:00 · 823 阅读 · 0 评论 -
java如何进行内存自动释放,垃圾回收的?
垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。gc首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。 引用计数 每个对象都含有一个引用计数器,当有引用连接至对象时引用计数加一,当引用离开作用域或被置为null时引用计数器减一,虽然管理引用计数的开销不大,但是在整个生命期都会发生。垃圾回收器会在含有全部对象的列表上遍原创 2009-03-11 13:49:00 · 2240 阅读 · 0 评论 -
java中会存在内存泄漏吗,请简单描述。
会。java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的发生场景。 1.集合类,集合类仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。这一点其实也不明确,这个集合类如果仅仅是局部变量,根本不会造成内存泄露,在方法栈退出原创 2009-03-11 13:48:00 · 14213 阅读 · 10 评论 -
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。强制执行垃圾回收原创 2009-03-11 13:48:00 · 3596 阅读 · 5 评论 -
最常用的编程风格
(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。(2) 为了常规用途而创建一个类时,请采取“经典形式”,并包含对下述元素的定义:equals();hashCode();toString();clone()(implement Cloneable)implement Serializable原创 2009-03-11 13:56:00 · 846 阅读 · 0 评论