java数据主要存放在以下地方:
1.Registers: 这里是存储数据最快的地方,因为他就在cpu内部,近水楼台先得月嘛,cpu想用什么,就在身边,信手拈来,方便至极.不过这里不是程序员说的算的地方,而是cpu需要用到谁就会把谁放在这里的.
2.Stack:位于RAM中,是第二快的地方,Stack是由指针决定所需要的数据的,所以java编辑器有决定指针指向的功能,并且编辑器也能够决定对象数据的大小和存活时间.我觉得了解编辑器的工作原理能够很大程度上解决内存占用时间的问题 . "尽管我们能够将对象的reference存储在这里面,但却不能将一般的java对象也置于其上 ." 这句话我还不理解.
3.Heap:通用内存存储空间,位于RAM上,置放所有对象,所有用new产生的对象都可以存于这里面,编辑器不管这里的存活时间和生命周期,所以这里很自由的哦,不过是以提取速度慢来作为代价的.
4.Static storage:被程序分配的一块固定的存储空间(RAM中),被代码中声明的static都存在这里,成为类的变量或方法,不过这里是不会存放java对象的.
5:Constant storage:应该也在RAM中吧,常量存在这里,固定而且不能改变.据说也可以存在ROM中,Henry.Ford说:无论我在那里,穿什么样的衣服,住什么样的旅馆,我都是Henry.Ford.感觉常量就是这样啊.
6:Non-RAM:可以脱离程序存活的数据.比如:streamed objects和persistent objects.他们在程序用到的时候才会到RAM中.特点:"能够将对象转换为可存储于其他媒介的形式".比如:persistent objects可以存在于磁盘中.