关于jvm基本数据类型以及引用类型内存存储问题

1,所有的基本数据类型和引用类型都存放在栈中吗?不需要考虑是在哪个位置定义的
吗(方法内还是作为成员变量定义)
2,方法内的final修饰的常量应该存放在哪里?
3,对于基本数据类型的赋值如int a = 1,这里1应该是数值型的字面量,那么1难道是
存放在运行时常量池中?如果这条语句是在方法体内呢?同样的还有方法体内的符号引用
会存放在运行时常量池中嘛

1、基本数据类型和引用类型都存在栈中。如果这些类型共用就定义成成员变量,如果只在方法内有用肯定是在方法内定义。(原则:使变量的作用域尽可能的小)。
3、这里的1是直接存放在栈中的

1栈的使用主要是实现方法调用的,javap -c反编译看下生成的字节码信息,就可以了解java方法的执行过程了。本质上就是机器指令,只有在执行方法调用的字节码指令中才涉及到入栈和出栈。
类型信息(你说的类的成员变量),是存储在.class文件中被加载到方法区的。
2 final修饰的常量是存储在常量池中的
3 基本类型int a=1本质上对应的是iconst_1,含义是将常量1入栈
这些都是JVM的知识,如果要进阶的话,这些知识有必要了解下。
参考一位同仁的博客,他对JVM的技术的博文清晰明了,值得一读:http://blog.csdn.net/luanlouis?viewmode=contents

建议看看JVM虚拟机原理