社区
Java SE
帖子详情
String[] a={"a"};于String a="a";有什么区别
xuhaohotmail
2010-01-15 01:48:29
String[] a={"a"};于String a="a";有什么区别
...全文
327
21
打赏
收藏
String[] a={"a"};于String a="a";有什么区别
String[] a={"a"};于String a="a";有什么区别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xxpp688
2010-01-27
打赏
举报
回复
String a="a";//是个指向对象的引用名为 a(或 我们声明了一个String对象指向a)
String[] a={"a"};//字符串型数组,“a”是数组a中的一个元素(在内存中占一段连续的单元)
他(数组中元素String)也和类中String一样
一:
String a[]={"a"};
String b="a";
String c="a";
if(b.equals(a[0])) //
把a[0]换成c也一样输出true
{
System.out.println("true");
}else
{
System.out.println("flase");
}
输出:true;
二:
String a[]={"a"};
String b="a";
String a[]={"a"};
String c="a";
if(b==(a[0])) //
把a[0]换成c也一样输出true
{
System.out.println("true");
}else
{
System.out.println("flase");
}
输出:true
因为: 他们引用的对象相同
当引用对象不同时:
String a[]={"a"};
String b="a";
String c="a";
b=new String("a");
a[0]= new String ("a");
if(b==a[0]) //
把a[0]换成c也一样输出flase
{
System.out.println("true");
}else
{
System.out.println("flase");
}
输出:flase
所以其他都一样;
区别是:--String[] a={"a"};中的“a”(a[0])是数组的一个元素,而且他在内存中占一段连续的单元,可初始化;
--String a="a";是字符指针变量,
字符指针是指向字符的引用,所占内存单元存放的是所指字符的内存单元
--如果定义了一个字符数组,在编译时为它分配内存单元,它有确定的地址。而定义一个字符,给指字符串分配内存单元,在其中可以放一个字符串的地址
--字符串可以重新赋值,而数组名是常量
Sou2012
2010-01-27
打赏
举报
回复
前面是数组, 后面是一个String
24K純帥
2010-01-27
打赏
举报
回复
up
lianghua19
2010-01-23
打赏
举报
回复
...雷
lilang1234
2010-01-23
打赏
举报
回复
前面是字符数组,后面是字符串。
cobra009
2010-01-15
打赏
举报
回复
[Quote=引用 11 楼 yzeaho 的回复:]
问题升级一下,
String[] a = {"a"};
String b = "a";
请问a[0] == b的结果是什么及为什么?
[/Quote]
这个是把a数组的第一个元素和string对象b的值进行比较
这这段代码就知道了
String[] a = {"a"};
String b = "a";
if(a[0]==b){
System.out.println("true");
}
else{
System.out.println("false");
}
cobra009
2010-01-15
打赏
举报
回复
[Quote=引用 11 楼 yzeaho 的回复:]
问题升级一下,
String[] a = {"a"};
String b = "a";
请问a[0] == b的结果是什么及为什么?
[/Quote]
这个是把a数组的第一个元素和string对象b的值进行比较
这这段代码就知道了
String[] a = {"a"};
String b = "a";
if(a[0]==b){
System.out.println("true");
}
else{
System.out.println("false");
}
子龙奶爸
2010-01-15
打赏
举报
回复
[Quote=引用 13 楼 kevin_qust 的回复:]
引用 11 楼 yzeaho 的回复:
问题升级一下,
String[] a = {"a"};
String b = "a";
请问a[0] == b的结果是什么及为什么?
这个是比较值,当然是true了
[/Quote]
应该用equal方法吧?
kevin_qust
2010-01-15
打赏
举报
回复
[Quote=引用 11 楼 yzeaho 的回复:]
问题升级一下,
String[] a = {"a"};
String b = "a";
请问a[0] == b的结果是什么及为什么?
[/Quote]
这个是比较值,当然是true了
kevin_qust
2010-01-15
打赏
举报
回复
貌似你是新手嘛? 这都不明白。。。
yzeaho
2010-01-15
打赏
举报
回复
问题升级一下,
String[] a = {"a"};
String b = "a";
请问a[0] == b的结果是什么及为什么?
buqitianxie
2010-01-15
打赏
举报
回复
本质上的区别
不懂编程
2010-01-15
打赏
举报
回复
坚持就会成为高手
healer_kx
2010-01-15
打赏
举报
回复
。。。。。。 。。。。。。。
wangqiulei1
2010-01-15
打赏
举报
回复
貌似这样的问题,我建议还是好好看看书最好了,不要什么问题都得问别人!
waterborn
2010-01-15
打赏
举报
回复
一个数据, 一个变量;
poFate
2010-01-15
打赏
举报
回复
前面是一个 String数组对象 后面是一个String对象
蛋黄车
2010-01-15
打赏
举报
回复
[Quote=引用 1 楼 stamp80 的回复:]
前者是定义数组a,而a只有一个元素,即a【0】=“a”
后者是定义字符串变量a,a=“a”
[/Quote]
对头
buywilling
2010-01-15
打赏
举报
回复
前者a是指向一个数组,该数组有一个String元素即a[0]="a";
后者a是一个String, a本身="a"
gao512008
2010-01-15
打赏
举报
回复
前面是字符串数组 后面就是定义一个变量
你说有什么区别?
加载更多回复(1)
String
a;
String
a=null;
String
a=““的
区别
那么这三种有什么
区别
呢; 二、
String
a;
String
a 只是在栈中声明了一个a的内存地址,并没有给它赋初值,也就是在没有在堆内存中申请内存地址,更没有在堆内存指向引用地址; 三、
String
a=null 在栈中声明了...
JVM角度分析
string
a=""和
string
a =new
string
(“a”)
区别
String
a = “a”;
String
b = “a”;
String
c = “c”;
区别
: 1、’直接定义的
String
“a”'c’是储存在 常量存储区中的字符串常量池中;new
String
(“a”)是存储在堆中; 2、常量池中相同的字符串只会有一个,...
String
a=123
String
b=123
String
a = "123";
String
b = "123"; System.out.println(a == b); 答案:true Java栈的特点是存取速度快(比堆快),但是空间小,数据生命周期固定,只能生存到方法结束。我们定义的
String
a = “123”; ...
在java中
String
a=""和
String
a=null的差别
String
a ="",表示声明一个字符串类型的引用,其值为""空字符串,这个a引用指向的是空字符串的内存空间;
String
a=null,表示声明一个字符串对象的引用,没有指向任何的内存空间 由上面的图可知 ...
String
a = "abc" 与
String
b = new
String
("abc")的
区别
String
a = “abc”; “abc”存在字符串常量池中
String
b = “abc”;if(a == b){} //这里 == 判断的是a b 是否指向”abc”这个字符内存池,在堆区里面的一块相同地址!——-假如我们这样做——-
String
a = “abc...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章