首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

java面试题:new String(abc)创建几个对象;String a=abc,String b=new String(abc)区别

String str2=new String(“abc”)区别有两种方式创建String对象:字面量赋值、new关键字使用字符串字面值创建String对象,如String str = "abc":java...=new String(“ab”) + new String(“cd”) 会创建几个对象在Java中从".java"文件编译成".class"文件,会有一个优化器去优化我们的代码。...分别为 new StringBuilder()、new String(“ab”)、常量池中的"ab"、StringBuilder 的 toString() 调用 new String("abcd")、常量池中的..."abcd"String str =new String(“ab”) + new String(“cd”):至多7个。...分别为 new StringBuilder()、new String(“ab”)、常量池中的"ab"、new String(“cd”)、常量池中的"cd"、StringBuilder 的 toString

9400

String s=new String(abc)创建了几个对象?

String str=new String("abc");   紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢?...接下来我们就从这道题展开,一起回顾一下与创建String对象相关的一些JAVA知识。   我们可以把上面这行代码分成String str、=、"abc"和new String()四部分来看待。...String str只是定义了一个名为str的String类型的变量,因此它并没有创建对象;=是对变量str进行初始化,将某个对象的引用(或者叫句柄)赋值给它,显然也没有创建对象;现在只剩下new String...那么,new String("abc")为什么又能被看成"abc"和new String()呢?...由此我们又要引入另外一种创建String对象的方式的讨论——引号内包含文本。 这种方式是String特有的,并且它与new的方式存在很大区别。

86010

String str=i与 String str=new String(“i”)一样吗?

在大多数情况下,String str = "i" 和 String str = new String("i") 是等效的,它们都创建了一个包含字符 "i" 的字符串对象。...而使用 String str = new String("i") 时,它将始终创建一个新的字符串对象,无论池中是否存在相同的字符串。2.对象引用:在第一种情况下,str 变量直接指向字符串池中的对象。...下面是一个示例,演示了上述差异:String str1 = "i";String str2 = "i";String str3 = new String("i");String str4 = new String...而 str3 和 str4 引用的是不同的字符串对象,因为它们是通过 new 关键字创建的。...总结起来,尽管 String str = "i" 和 String str = new String("i") 在大多数情况下会产生相同的结果,但它们在内部的处理方式上有所不同,这可能会对一些特定的使用场景产生影响

11200

面试题之String str = new String(“abc”); 创建了几个对象

今天去面试的时候碰到了这个问题:String str = new String(“abc”); 创建了几个对象,回来自己研究并查阅资料才发现答错了。。...网上的争论不少,有的说是两个,答案应该是:两个或一个 理由解释如下: 都了解java 的字符串常量缓冲区(字符串池,字符串常量池), 如果代码是这样的: String str2 = new String...("abc"); 并且 abc 字符串之前没有用过,这毫无疑问创建了两个对象,一个是new String 创建的一个新的对象,一个是常量“abc”对象的内容创建出的一个新的String对象, 但是如果代码是这样子的...: String str1 = "abc"; String str2 = new String("abc"); 嗯,创建几个就不好说了,我们还是测试一下吧,首先我们打开cmd.exe, 通过javac...str2 = new String(“abc”); 此时就创建一个对象,而abc 则是从字符串常量缓冲区中取出来的。

31510

写出 String s = “hello“; 和 String s2 = new String(“world“);创建字符 串的区别

** 写出 String s = “hello”; 和 String s2 = new String(“world”);创建字符 串的区别。 ** 1....String s = “hello”; 这种获取字符串的方式,只会在串池查看是否存在hello对象,存 在则直接使用,如果不存在,则在串池种创建一个hello字符串对 象,串池中的字符串对象可以供其他其他字符串共享...String s2 = new String(“world”); 这种获取字符串方式首先在堆空间中产生一个String类型的对 象,然后查看在串池中是否存在该字符串,存在-不会在串池创建对 象,但是如果不存在...扩充:String s2 = new String(“world”); 默认指向堆空 间中的字符串,如果使用 s2.intern(); 方法,指向串池中的字 符串对象。

6510
领券