几个一直没有高清楚的问题??(5分)

  • 主题发起人 主题发起人 kem
  • 开始时间 开始时间
K

kem

Unregistered / Unconfirmed
GUEST, unregistred user!
1:String str = new String("hello");与String str = "hello";的区别?????
2:为什么
for (int i =1;i<6;i++) {
String str = new String("hello");
}
可以运行,
但是:
String str = new String("hello");
String str = new String("hello");
连续两行,就编译通不过??
上面用for循环产生的5个str对象是属于同一个吗??
多谢!!!
 
問得好,
up
 
对象名重复了,
 
1
String str = new String("hello");与String str = "hello"
没什么区别,String str="hello",也是先分配空间,再传值。
2
listen
 
for (int i =1;i<6;i++) {
String str = new String("hello");
}
可以运行,
但是:
String str = new String("hello");
String str = new String("hello");
连续两行,就编译通不过??
解:
在For循环里的str是局部变量因此可以分配N次
但String str = new String("hello");
String str = new String("hello");这两名是在同一处定义因此就不能了,
因为str不能重复定义
 
1. 区别很大,看看下面这段代码吧。你知道结果是什么么?这是SCJP的一道题目。
public static void main(String[] args)
{
String s1 = "hello" ;
String s2 = "hello" ;
String s3 = new String("hello") ;
String s4 = new String("hello") ;

if (s1 == s2)
System.out.println(" s1 = s2") ;
if (s1.equals(s2))
System.out.println(" s1 equals s2") ;
if (s1 == s3)
System.out.println(" s1 == s3") ;
if (s1.equals(s3))
System.out.println(" s1 equals s3") ;
if (s4 == s3)
System.out.println(" s3 == s4") ;
if (s4.equals(s3))
System.out.println(" s3 equals s4") ;
System.exit(0) ;
}
2 循环体内部定义的变量,作用域是循环体执行完毕之前,就是在那个 "}" 之前。
 
后退
顶部