怎样判断 String string=new String("关羽"); 创建了几个对象?

答:两个。

解析:

1.我们知道字符串的比较方法是用.equals()来比较的,那么我们可以创建一个测试类

public class Test2 {
public static void main(String[] args) {

2.创建String对象

String s1 = "关羽";
String s2 = "关羽";
String s3 = new String("关羽");

3.通过字符串的比较方法.equals()分别比较s1和s2、s1和s3

System.out.println(s1.equals(s2));  //(1)
System.out.println(s1.equals(s3));  //(2)
}
}

4.通过控制台显示的结果我们可以看出

注释(1)为true

注释(2)为false

结论:String string=new String("关羽"); 创建了两个对象。

时间: 2024-10-21 00:47:05

怎样判断 String string=new String("关羽"); 创建了几个对象?的相关文章

【Java 重难点知识】String s=new String("abc") 与 String="abc"; 区别

首先, String s=new String("abc");这句话创建了2个对象: 一个为new出来的一个实例对象,另一个则为"abc"; s不为对象,s只是一个引用(C++中的指针). 查询Java中String类的构造器,有一个这样的构造器,api如下: public ( original) 初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列:换句话说,新创建的字符串是该参数字符串的副本.由于 String 是不可变的,所以无需使用此构造

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

String str=new String("abc");   紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢? 相信大家对这道题并不陌生,答案也是众所周知的,2个. 接下来我们就从这道题展开,一起回顾一下与创建String对象相关的一些JAVA知识. 我们可以把上面这行代码分成String str.=."abc"和new String()四部分来看待.String str只是定义了一个名为str的String类型的变量,因此它并

Java基础知识强化33:String类之String类的判断功能

1. String类的判断功能: boolean equals (Object obj ) boolean equalsIgnoreCase (String str ) boolean contains (String str ) boolean startsWith (String str ) boolean endsWith (String str ) boolean isEmpty() 2. 案例: 1 package cn.itcast_03; 2 3 /* 4 * String类的判断

String s=new String("xyz");创建几个String对象的问题

首先让我们了解几个概念: 栈 :由JVM分配区域,用于保存线程执行的动作和数据引用. 堆 :由JVM分配的,用于存储对象等数据的区域. 常量池constant pool :在堆中分配出来的一块存储区域,用于存储显式 的String,float或者integer.这是一个特殊的共享区域,可以在内存中共享的不经常改变的东西,都可以放在这里. 进入正题: String a = "abc";①String b = "abc";② 使用String a = "abc

String变量的两种创建方式

在java中,有两种创建String类型变量的方式: String str01="abc";//第一种方式 String str02=new String("abc")://第二种方式 第一种方式创建String变量时,首先查找JVM方法区的字符串常量池是否存在存放"abc"的地址,如果存在,则将该变量指向这个地址,不存在,则在方法区创建一个存放字面值"abc"的地址. 第二种方式创建String变量时,在堆中创建一个存放&q

String str=new String("abc")到底创建了几个对象

这句代码到底创建了几个对象?研究了好一阵,现在才能说清楚. package com.sun.test; public class Test<T> { T a; /** * @param args */ public static void main(String[] args) { String str=new String("abc"); } } 我们来看下这段简单代码的字节码: <pre name="code" class="java

判断字符串是否为空--string.Empty、string=&quot;&quot;、s.length==0

Console.WriteLine("".Equals(string.Empty));//结果:true String.Empty和string=””是一样的,同样都是需要占用内存空间<空字符串>:但优先推荐使用string.Empty 还一种高效判断方法(s.length==0)来判断字符串是否为空字符串: [注意]:null string str=null则是表示str未指向任何对象.

String,你到底创建了几个对象????

Java代码   String str=new String("aaa"); 这行代码究竟创建了几个String对象呢?答案是2个,而不是3个.由于 new String("aaa")相当于"aaa"与一个就是创建出来的放在堆时原实例对象,而另一个就是放在常量池中的 "aaa" 对象,当然这里的str本身只是一个引用,放在栈里,用来指向堆中创建出来的对象. 常量池(constant pool)指的是在编译期被确定,并被保存在已

字符串中判断存在的几种模式和效率(string.contains、string.IndexOf、Regex.Match)

通常情况下,我们判断一个字符串中是否存在某值常常会用string.contains,其实判断一个字符串中存在某值的方法有很多种,最常用的就是前述所说的string.contains,相对来说比较常用的还有string.IndexOf和Regex.Match.直接上代码,后面在说些什么吧,通常情况下功能的实现最重要,作者的话,只对有心者有效. using System; using System.Collections.Generic; using System.Linq; using Syste