java中String对象和其他对象有什么区别呢? String a="abc",那么a是一个对象吗?

如题所述

第1个回答  2020-03-30
a是String类的一个对象
只不过String类已经是系统写好的

JAVA 在main方法中定义string S= "abc";那么S 是一个对象吗?
是一个对象。这里如果只定义String S;的话就不是一个对象了,只能说是定义了一个名为S的String类型的变量。而你所写的这个是先创建了一个"abc"对象,而S又指向该对象,因此S也是一个对象。这种创建对象的方式是String特有的,这种创建方式与new有很大的区别,好像与JAVA中JVM中的字符串池有关,要...

java新手请教java大师: string A=a;string B=a; A=B吗?
String str="abc"; * 这种情况是引用数据类型,引用数据类型肯定存放在堆中 栈中放置的是参数变量而不能放对象 对象只能放在堆中 它只创建一个对象 在堆中创建一个对String类的对象引用变量str(引用变量肯定是存放在堆里的),然后查找栈中是否有"abc",若没有则将"abc"存放进栈,并令str指向...

java 判断字符串是否相等
这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象;再比如:String a=new String("abc"); String b=new String("abc");那么a==b将返回false,因为a和b指向不同的对象。2、用equals方法,该方法比较的是字符串的内容是否相同,比如:Str...

在java中,说String是不可变的,可是为什么
1. 首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;3. String str=”kvill”;String str=new Stri...

java class <?>
第一个 是泛型,比如List<String> list;就是指这个集合只能装String类型的对象,其它类型的对象一旦装进去,编译都不能通过。第二个,基本不懂你的意思,你是想把";"分号去掉?String a = "abc"; 这里面a的值就是abc,本来就不包含分号,分号是Java语言中常见的结束一句代码、命令的符号。 因为...

java中String, StringBuffere,StringBuilder, StringTokenizer的区别是什...
1、String类是final的,不可被继承。public final class String。2、String类的本质是字符数组char[],并且其值不可改变。private final char value[];3、String类对象有个特殊的创建方式,如String x="abc"; "abc"就表示一个字符串对象,而x是"abc"对象的地址,叫做"abc"引用。4、Java运行时会...

Java里为什么string不用new呢?又不是基本数据类型。
创建String对象,有两种方式,一是new型:String s = new String("abc");另一种是双引号型:String s = "abc";那么这两种方式有什么区别呢?答:这两种方法生成的字符串对象,在内存中的存取机制不同。Java为String类型提供了缓冲池机制,当使用双引号定义对象时,Java环境首先去字符串缓冲池寻找...

关于java中String类的问题
1、str1和st2分别指向不同的地址。创建一个String时,直接new对象(如new String("abc")),jvm会马上在内存堆中创建这个String对象,然后将该引用返回给变量。这与其他类一样。但是String还有一个特殊的创建方式(如String test = "abc"),此时,jvm首先会在内部维护的strings pool中通过String的 ...

String s = new String("abc");在内存中有几个对象?
String("abc"),就只新加了一个对象,如果之前没有abc字符串,那就要先存在常量池区,然后才生成s对象 所以要创建两个对象 按你的问题, 内存中肯定会有两个对象, 三块内存分配: 分别是 s 这个变量在栈中的内存空间 abc 常量池区内存 new String("abc") 这个 s变量指向的对象内存 ...

Java 基础,String 产生了几个对象。怎么判断。
输出true 此时,a 和 b都指向 串池中的 "abc"而 String a = new ("abc"); String b = "abc"; System.out.print(a == b) 输出false 此时,a指向堆中的"abc"对象,b指向串池中的"abc"对象 "=="比较的是两个引用变量所指向的是否是同一个对象,是的话则返回true,否则false ...

相似回答