JAVA中String s = "hello"和String s = new String("hello")有啥区别啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中String s = "hello"和String s = new String("hello")有啥区别啊?相关的知识,希望对你有一定的参考价值。
存放地方的区别:第一个s是一个字符串常量,它存放在内存的静态存储区。
第二个s是一个对象,它是存放在堆中的。
用法的区别:
第二个是个对象,所以可以用String类中的所有方法,而第一个不是对象,它不可以操作String类中的方法 参考技术A 晕倒,没什么大的区别
第一个s是一个字符串常量,它存放在内存的静态存储区。
第二个s是一个对象,它是存放在堆中的。
用法是一样的。 参考技术B String s = "hello"存放在内存中的字符串常量区,
String s = new String("hello")在堆区创建了一个对象 参考技术C String s = "hello" 创建了两个对象: s 和 hello
String s = new String("hello")三个 s String对象 和 hello 参考技术D 二楼的说的比较全面 就是这个样子
Java 中String s="你好" 跟 String s=new String("你好")有啥区别
在操作s上没区别。
区别在于
String s = "你好";这样"你好"这个字符串分配在栈中,随着所在函数的结束而被释放。
String s = new String("你好");这样"你好"这个字符串分配在堆中,不会因为所在函数的结束而被释放。只有等无人使用时,被Java虚拟机自带的垃圾回收机制释放。
参考技术A 没什么大区别。以上是关于JAVA中String s = "hello"和String s = new String("hello")有啥区别啊?的主要内容,如果未能解决你的问题,请参考以下文章
java中String s = new String("abc")创建了几个对象
在java 中,String cmd=scanner.nextLine();String help