
java虚拟机
hjjk888
这个作者很懒,什么都没留下…
展开
-
java栈、堆、常量池
Java内存分配: 1. 寄存器:我们在程序中无法控制 2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 3. 堆:存放用new产生的数据 4. 静态域:存放在对象中用static定义的静态成员 5. 常量池:存放常量 6. 非RAM(随机存取存储器)存储:硬盘等永久存储空间 ------------------------------------...2010-04-14 22:35:54 · 94 阅读 · 0 评论 -
装载和初始化
[code="java"] Class c = Class.forName(args[0],true,off.getClass();.getClassLoader(););; [/code]可查看API............... Class.for(str,true...) 是在装载的时候也进行连接和初始化!! 这时装载的类,其实也进行了初始化! 而Static静态初始化...2010-04-15 14:53:22 · 112 阅读 · 0 评论 -
jvm的常量池
在class文件中,“常量池”是最复杂也最值得关注的内容。 Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String及数组)的常量值还,还包含一些以文本形式出现的符号引用,比如: 类和接口的全限定名; 字段的名称和描述符; 方法和名称和描述符。 在C语言中,如果一个程序要调用其它库...2010-04-20 22:22:15 · 175 阅读 · 0 评论 -
字符串的==你真理解了??
[code="java"] String reg="\\b"; String str2="ddd ssss"; String[]strs=str2.split(reg);//[ddd sss]3个字符串 System.out.println(strs[1]==" ");//false String str3=" "; String str=st...2010-04-22 14:32:48 · 134 阅读 · 0 评论 -
JAVA内存溢出解析
原因有很多种,比如: 1.数据量过于庞大;死循环 ;静态变量和静态方法过多;递归;无法确定是否被引用的对象; 2.虚拟机不回收内存(内存泄漏); 说白了就是程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。 内存溢出的问题要看业务和系统大小而定,对于某些系统可能内存溢出不常见,但某些系统还是很常见的解决的方法, 一个是优化程序代码,如果业务庞大,逻辑复...2010-04-29 15:54:41 · 84 阅读 · 0 评论 -
类的初始化顺序
其实java对象初始化顺序算是一个比较基础的java知识点。但是网上的文章多半描述不清,使用上一不小心就容易出问题。 所以在本文中,我想结合JLS和自己的理解,举例剖析问题的所在。 OK,我们先来看个模仿Dzone作者原意的简单例子: [code="java"] package com.kenwublog.tmp; public class A extends ...原创 2010-08-26 21:09:21 · 130 阅读 · 0 评论