楼主问的是一个大问题啊
关于java的内存分配机制
属于一门课程
其实我们目前没有必要研究这个
只需要知道java把内存分为堆和栈就可以了
堆中存放的是:对象和数组 凡是用new建立的 都存在于堆中
栈中存放的是:基本类型变量和对象引用变量
其他还有神马 常量池 方法区 你知道有这么个东西就行了
常量池中主要是String类型的字符串
方法区中主要存放的是方法,非静态方法
其他像类啊,集合啊,静态方法啊,静态方法属于类本身,等等这些都是对象所以都是存在于堆中
关于加载:
首先是静态的包括方法啊变量啊代码块之类的,先于类存在
其次是类本身,集合啊,非静态变量,方法啊等等你都可以理解为随着类的加载而加载 |