课程
/后端开发
/Java
/Java入门第三季
请问String s1="imooc";
与String s2=new String("imooc");有什么区别?
2015-09-21
源自:Java入门第三季 2-2
正在回答
汗 上面说的有点问题 回复不能删除
String s1 ="imooc"; 是讲s1指向堆内存中的字符串常量"imooc";
而String s2=new String("imooc") 是在堆内存中开辟一个对象,对象中有一个变量记录的字符串是"imooc",s2指向这个对象
可以这么理解上面一个是将s1指向堆内存中的"imooc"变量,如果堆内存中已经有这个字符串了,s1就会直接指向这个字符串,没有则会新建一个
下面这行通过new关键字 在堆内存中新开辟一个空间,空间中有个字符串为"imooc"
每当你new 一次,堆内存中就会开辟一个新空间,
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
2 回答关于==判断内存地址一只的问题
1 回答关于堆内存对象存储
2 回答关于Java的内存方面不是很清楚
2 回答关于catch括号内代码的问题
1 回答关于parse()内文本格式问题