今天看了一下ITEYE中的jvm优化:http://hllvm.group.iteye.com/group/wiki/2860-JVM
1.首先我来看看Java中的基本类型
Object ob = new Object(); // 一个空object中8byte(堆)+4byte(栈)
所以一个空Object至少占用12byte,如果一个类中只有一个基础类型,就会需要16byte。(这是一件非常恐怖的事情)
byte属于java里的基本类型,占用1个字节。
所以作为一名致力于了解Java特性的程序员,自然应该少用类概念,比如Integer少用,多用int等基本数据类型。
2.然后我们来看看java中的函数参数传递问题。
由于java语言中没有指针这个概念,所以,他的函数调用也是使用的是传值引用。当传入参数是引用变量的时候他会被解释器解释到堆中的某个实例化对象。
3.关于堆栈的看法
引用一句大师的话,堆栈的作用在于,堆存放数据,栈存放逻辑(也就是一些基本类型变量和引用变量以及return address之类的)。在Java中每一个线程都会有自己的一个私有线程栈。而堆是所有参数共享的。
4.java种的基本类型包括:int,Boolean,double,float,return address,long,char,byte,short