大家好,我是向同学,从今天继续每日一题,旨在为提高大家的基础知识。
话说干了这么多年的开发,只知道会用,怎么用,用什么,隐约也知道了为什么用,但为啥JAVA总像一个犹抱琵琶半遮面的女子,总让人看不透,看不腻?应该就是基础不扎实了
。
点击下面链接查看每日一题20201014:
输出结果是:
str01与str02是否相等:false
问题出在于30和30.0这两个数字上,在str01中,三元操作符中的第一个数20和第二个数30都是int类型,返回的结果是20;在str02中第二个数是浮点数的30.0,两个操作数的类型不一致,但是三元操作数必须要返回类型确定的数据,不可能条件为真时返回int类型,条件为假时返回float类型,但这个编译器是做不到的,而是会进行类型转换,int型转换为浮点数的20.0,也就是str02的返回值 是20.0,这与str01返回的20肯定不一样,所以为false。
public class Ques1021 {
public static void main(String[] args) {
Ques1021 ques1021 = new Ques1021();
ques1021.method01("test", 0);
ques1021.method01("test", "tttt");
ques1021.method01("test");
ques1021.method01("test", null);
}
public void method01(String s, Integer... i){}
public void method01(String s, String... str){}
}
请问主程序是否有编译错误,为什么?(问题分析将在下一期每日一题公布)大家也可以在留言区留言!!!
作者:小五
地址:https://blog.csdn.net/u010651186
/article/details/52880242
- END -
往期推荐
java每日一题20201010
作者:BossXiang,可爱且懂得生活的研究生一枚(码农一枚)。
"一起学习、成长、温情的热爱生活。"
私人微信|
CSDN|知乎|github|掘金:五角钱的程序员
关注福利
关注公众号,后台回复【电子书】
送几百本常用技术类电子书籍
五角钱的程序员
希望这篇文章可以帮到你~
欢迎大家点个在看,分享至朋友圈
你我都成为光发热之人,在看在看在看~(疯狂暗示!)