社区
Java EE
帖子详情
java中String变动的内存问题
纵马饮白虹
2016-09-08 04:08:51
都说String变动后会新建一个位置,如:
String sql=“xxxxx”;sql=“yyyyyyyyyyyy”;
在这个过程中"xxxxx"被释放了吗?
典型的对象释放是将对象置为null,
如果我在sql=“yyyyyyyyyyyy”;之后加上sql=null,“xxxxx”被释放了吗?还是说只释放了“yyyyyyyyyyyy”。
...全文
218
4
打赏
收藏
java中String变动的内存问题
都说String变动后会新建一个位置,如: String sql=“xxxxx”;sql=“yyyyyyyyyyyy”; 在这个过程中"xxxxx"被释放了吗? 典型的对象释放是将对象置为null, 如果我在sql=“yyyyyyyyyyyy”;之后加上sql=null,“xxxxx”被释放了吗?还是说只释放了“yyyyyyyyyyyy”。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Kainnnn
2016-09-12
打赏
举报
回复
不会马上被释放 会被标记
tifacxbc
2016-09-11
打赏
举报
回复
"xxxxx"应该是被释放了吧。。去找本关于java虚拟机的书看吧
小七和十一的爸爸
2016-09-11
打赏
举报
回复
l楼说的很明白,
bree06
2016-09-08
打赏
举报
回复
String sql=“xxxxx”;理论上xxxxx应该是在常量池中(常量池中有xxxx则直接将引用记数+1,常量池中没有时会创建字符串并放入常量池), sql = null; 或者sql = "yyyy"; 之后如果仍然有变量引用该空间则不会被标记, 如果此时没有被引用且一段时间内也没有被引用的话会被标记, 之后才会被GC扫描回收.
Java
中
的
String
主要讲解
String
类型的不可变性,里面的方法,==等
java
之
String
对象深入理解
对象在
内存
中
是一块
内存
地址,str则是一个指向该
内存
地址的引用,所以在这个例子
中
,第一次赋值的时候,创建了一个“hello”对象,str引用指向“hello”地址;所以针对上面的例子
中
,在一开始创建a变量时,会在堆...
对
Java
String
不可变的理解
1、不可变对象,顾名思义就是创建后的对象不可以改变,典型的例子有
java
中
的
String
类型。注意,是对象不可变,并非引用不可变。 例如:定义并初始化一个
String
变量s ,s是引用类型变量,“hello”是
String
对象; ...
java
中
String
类为什么要设计成final
String
是JVM
中
使用频率非常高的数据类型,涉及很多底层操作,因此SUN公司的工程师在设计
String
时,很小心的把整个
String
设置成final禁止继承,避免被其他人继承后破坏。另外一方面
String
作为高频使用数据类型,SUN对...
Java
字符串的
内存
结构
问题
提出 若是问到
String
s = new
String
...首先
Java
中
String
的存储是通过一个char[]类型的成员变量value进行存储的,所以
String
s = “abc”;这个过程
中
JVM也应该创建了两个对象,不过一个是s指向的
String
对象,另一个
Java EE
67,512
社区成员
225,885
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章