java static变量存储在什么地方呢,别说什么静态存储池的,我需要实际和具体的回答,是内存还是缓存?
发布网友
发布时间:2022-03-24 22:56
我来回答
共2个回答
热心网友
时间:2022-03-25 00:25
java运行时所有对象都只在JVM包装的内存中,JVM不是跨平台的,它由系统软件加载到内存中,很显然,java的对象全都在内存中。
不管是静态的不静态的都一样,只不过JVM自己做了内存管理,将静态的数据存放的地区更加共用一点,非静态的对象只在一个地方存一个壳子(类,如果类已经加载了的,没有加载的类连壳子都木有),需要创建对象的时候才继续向操作系统申请内存资源。
java的缓存机制,通常是指‘应用性缓存’,就是在实际应用的时候,用程序实现类似cache的功能的模式,如:文件流读写就是在直接跟硬盘交互的内存区域加一个*让数据按照一定的规律进行读写这样可以实时检查通道是否异常,根据状况调节通道大小,这样做在大文件的持久化过程中是很有用的,但是小文件非缓存读写更有优势,因为它发生通道阻塞的可能性相当小了。追问我先提出点疑问咯,首先我认为您说的对象全部存储在内存中不是完全正确的,因为在程序运行的过程中,内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这是由于cpu的访问速度比内存是要快的多的,我想知道的是,cpu将数据复制进缓存是遵循什么规律的还是?
热心网友
时间:2022-03-25 01:43
cpu将数据复制进缓存是遵循什么规律?
这里你得先把操作系统学一下!
操作系统有作业调度机制:
有时间片轮转、先进先出优先算法,最长时间使用算法。 总之算法很多。 我学习这也已经很久了,不太记得了!
Java虚拟机就相当于一个软操作系统!
希望对你有帮助!