String[] a={"a"};于String a="a";有什么区别

xuhaohotmail 2010-01-15 01:48:29
String[] a={"a"};于String a="a";有什么区别
...全文
327 21 打赏 收藏 转发到动态 举报
写回复
用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)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧