1. java static变量存储在什么地方呢,别说什么静态存储池的,我需要实际和具体的回答,是内存还是缓存
java运行时所有对象都只在JVM包装的内存中,JVM不是跨平台的,它由系统软件加载到内存中,很显然,java的对象全都在内存中。
不管是静态的不静态的都一样,只不过JVM自己做了内存管理,将静态的数据存放的地区更加共用一点,非静态的对象只在一个地方存一个壳子(类,如果类已经加载了的,没有加载的类连壳子都木有),需要创建对象的时候才继续向操作系统申请内存资源。
java的缓存机制,通常是指‘应用性缓存’,就是在实际应用的时候,用程序实现类似cache的功能的模式,如:文件流读写就是在直接跟硬盘交互的内存区域加一个限制让数据按照一定的规律进行读写这样可以实时检查通道是否异常,根据状况调节通道大小,这样做在大文件的持久化过程中是很有用的,但是小文件非缓存读写更有优势,因为它发生通道阻塞的可能性相当小了。
2. java中 static变量和方法到底是存在内存什么区域
JVM内存总体抄一共分袭为了
4个部分(stack segment、heap segment、code segment、data segment)
当我们在程序中,申明一个局部变量的时候,此变量就存放在了 stack segment(栈)当中;
当new 一个对象的时候,此对象放在了heap segment(堆)当中;
而static 的变量或者字符串常量 则存在在 data segment(数据区)中;
那么类中方法的话,是存在在 code segment(代码区)中了。
3. java中static final变量存储内存哪个区
这是一个对常量的定义,放在常量池 注意你写的不是static int MAX=9;