java中字符串可以直接看做string对象来操作吗? 5
在java编程思想一书中有这样一段代码,for(charc:"abc".toCharArray()){...}其中字符串"abc"直接调用了string类的一个方法toC...
在java编程思想一书中有这样一段代码,
for(char c : "abc".toCharArray()){...}
其中字符串"abc"直接调用了string类的一个方法toCharArray,而不是用new string("abc").toCharArray(),这样操作可以吗?"abc"可以直接当做对象操作吗 展开
for(char c : "abc".toCharArray()){...}
其中字符串"abc"直接调用了string类的一个方法toCharArray,而不是用new string("abc").toCharArray(),这样操作可以吗?"abc"可以直接当做对象操作吗 展开
1个回答
展开全部
字符串声明2种形式
一种 String str= new String("test");
和 String str="test";
从虚拟机角度来看,这两种方法均生成字符串对象,在内存中的存取机制不同。
后者等同于创建了一个String对象不过是在方法区(永久代)字符串常量池中调用intern()方法存放(如果已经有就直接返回) 效率高。
不过貌似jdk8的虚拟机移除了永久代,合并到native堆中,不过区别不大 原理一样。
一种 String str= new String("test");
和 String str="test";
从虚拟机角度来看,这两种方法均生成字符串对象,在内存中的存取机制不同。
后者等同于创建了一个String对象不过是在方法区(永久代)字符串常量池中调用intern()方法存放(如果已经有就直接返回) 效率高。
不过貌似jdk8的虚拟机移除了永久代,合并到native堆中,不过区别不大 原理一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询