您好、欢迎来到现金彩票网!
当前位置:21点 > 字符串资源 >

java常量池的资源是如何维护的?我想问的是java常量池中的对象合

发布时间:2019-08-09 23:22 来源:未知 编辑:admin

  java常量池的资源是如何维护的?我想问的是java常量池中的对象合适会被注销并释放资源。

  java常量池的资源是如何维护的?我想问的是java常量池中的对象合适会被注销并释放资源。

  举个例子:Stringa=aaaa;a=null;第一条语句我在String池中创建了一个“aaaa”实例,然后我将变量a指向了空,那么“aaaa”这个实例是会一直存放在内存中呢还是会被回收,被回收的话又...

  第一条语句我在String池中创建了一个“aaaa”实例,然后我将变量a指向了空,那么“aaaa”这个实例是会一直存放在内存中呢还是会被回收,被回收的话又是以一种什么样的形式回收咧?展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部aaaa这个实例会一直存放在内存中,不会被回收,所以当你的一个String 实例反复变化的情况下,不推荐用String ,而采用stringbuffer 或者Stringbuilder追问我也是这么认为的,但是这样的话String池里面的变量也太多了吧,那这样的话一个项目运行连续运行一两个月的话池里面岂不是有很多不需要的实例?追答当String a =“aaaa”

  所以a如果需要被改变的次数很多,需要用StringBuffer a = new StringBuffer();这样就不会使常量池中,多出很多没有用的数据

  展开全部字符串常量和普通常量在不是同一个地方 有一个专门的字符串池 专门放字符串的

  就算失去所有引用也不会被垃圾回收的...也就是说只要程序不结束 就不会被回收

  所以运行程序的时候 要尽可以少创建没有意义的字符串 字符串连接最好用stringbuilder.

  如果没有别的引用指向aaaa,那么它会被JVM定期回收。常量池由JVM定期维护。什么样的形式回收?那是JVM内存管理。

  当然。类(方法)、常量、字符串常量、静态变量,只有一份。位于方法区。类似于C语言的全局区。局部变量位于栈,C的malloc区域和java的对象位于堆。

http://magaltouba.com/zifuchuanziyuan/403.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有