Java基础程序问题
不好意思很久没提问了不太会用了问题有两道都要解答!第一道:publicclassHelloWorld8{publicstaticvoidmain(Stringargs[]...
不好意思 很久没提问了 不太会用了
问题有两道 都要解答!
第一道:
public class HelloWorld8
{
public static void main(String args[])
{
//定义两个整型的变量
int i = 4;
int j = 4;
boolean b1 = i == j;
boolean b2 = i != j;
//创建两个对象
String s1 = new String ();
String s2 = new String ();
boolean b3 = (s1 == s2);
boolean b4 = (s1 != s2);
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
System.out.println(b4);
}
}
为什么b3结果是false 另外String s1中的string是什么意思
第二道:
int a=1;
int b=1;
System.out.println(+(a++));
System.out.println(+(++b));
为什么结果是1和2 展开
问题有两道 都要解答!
第一道:
public class HelloWorld8
{
public static void main(String args[])
{
//定义两个整型的变量
int i = 4;
int j = 4;
boolean b1 = i == j;
boolean b2 = i != j;
//创建两个对象
String s1 = new String ();
String s2 = new String ();
boolean b3 = (s1 == s2);
boolean b4 = (s1 != s2);
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
System.out.println(b4);
}
}
为什么b3结果是false 另外String s1中的string是什么意思
第二道:
int a=1;
int b=1;
System.out.println(+(a++));
System.out.println(+(++b));
为什么结果是1和2 展开
5个回答
展开全部
第一题:
==,当比较的两个参数为基础数据类型时,比较两个变量值是否相等(此时 b1==b2为true),
当比较的两个为引用类型时,则比较两个变量的引用是否相等(b3,b4是分别new出来的,所以引用不一样,故 b3==b4为false).
所以,如果要比较两个引用类型的变量值是否相等的话,用equals比较
if(null != b3 && b3.equals(b4)) {
Sysout.our.print("b3 equals b4");
} else {
Sysout.our.print("b3 don't equals b4");
}
第二题:我刚试了,结果是 1和3吧
这个就是 ++运算符的问题了,
a++这个也是一个表达式,这个表达式的返回值是先对a操作完之后再增加a的值,
及先输出a(此时a为1),再进行++自增
++b,这个表达式的返回值是,先对a进行++自增操作,故为3;
另外,为什么+(a++),左边的括号是干啥的呢?还请指教咯
==,当比较的两个参数为基础数据类型时,比较两个变量值是否相等(此时 b1==b2为true),
当比较的两个为引用类型时,则比较两个变量的引用是否相等(b3,b4是分别new出来的,所以引用不一样,故 b3==b4为false).
所以,如果要比较两个引用类型的变量值是否相等的话,用equals比较
if(null != b3 && b3.equals(b4)) {
Sysout.our.print("b3 equals b4");
} else {
Sysout.our.print("b3 don't equals b4");
}
第二题:我刚试了,结果是 1和3吧
这个就是 ++运算符的问题了,
a++这个也是一个表达式,这个表达式的返回值是先对a操作完之后再增加a的值,
及先输出a(此时a为1),再进行++自增
++b,这个表达式的返回值是,先对a进行++自增操作,故为3;
另外,为什么+(a++),左边的括号是干啥的呢?还请指教咯
展开全部
你想问什么??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
= =!LZ耍我呢。。。。啥都没有,你问啥?空白是怎样产生的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一,b3是false是因为==这个符号只是比较内存地址,而s1 和 s2都是使用new String()方式创建的,使用new关键字创建对象会划分单独的内存给这个对象,内存地址当然也就不一样。
第二,结果是1和3。
(+(a++))第一个加号完全没用,那么忽略掉之后就是a++,表示先执行选本句,再执行a=a+1,这时会先打印个1
(+(++b))第一个加号忽略掉之后就是++b,表示先执行b=b+1再执行本句,会打印出个3
第二,结果是1和3。
(+(a++))第一个加号完全没用,那么忽略掉之后就是a++,表示先执行选本句,再执行a=a+1,这时会先打印个1
(+(++b))第一个加号忽略掉之后就是++b,表示先执行b=b+1再执行本句,会打印出个3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.首先说什么是String,String是java中的字符串。 String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。
b3是false,因为String类用==判断时比对的是其内存地址而不是其值;
2.很明显结果是1和3....+(a++)=1 但a=2,a++是先取a的值运算后自加a,(+(++b)=3,b也等于3,表示取b++后的值进行运算,明白?
b3是false,因为String类用==判断时比对的是其内存地址而不是其值;
2.很明显结果是1和3....+(a++)=1 但a=2,a++是先取a的值运算后自加a,(+(++b)=3,b也等于3,表示取b++后的值进行运算,明白?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询