志在指尖
用双手敲打未来

程序员这十个java题你都会吗?

不论你是职场新人仍是步入职场N年的职场新人大哥大~当然这个N<3~,我能担保你答不对这十个题~不要问我为什么这么自信~,这些个题仍是“有水平”的javase的根底题,风闻小白指定鸭蛋分,一测一个准,哈哈。
作为将来要成为架构师的男人,对,你没看错,便是在说你~皮一下很开森~,what?你是小白?我顶你个肺,我叫声杠精,你敢应吗,那个代号9527的杠精,说你呢快快来答题,看你能答对几道题。
题一
publicstaticvoidmain(String[]args){
shorts=1;
s=s+1;
System.out.println(s);
}
剖析:s=s+1计算成果被提升为int类型,再向short类型赋值时发作过错,由于不能将取值规模大的类型赋值到取值规模小的类型,所以这个程序会报错编译失利。
题二
publicstaticvoidmain(String[]args){
shorts=1;
s+=1;
System.out.println(s);
}
剖析:s+=1逻辑上看作是s=s+1计算成果被提升为int类型,再向short类型赋值时发作过错,由于不能将取值规模大的类型赋值到取值规模小的类型。但是,s=s+1进行两次运算,+=是一个运算符,只运算一次,并带有强制转化的特点,也便是说s+=1便是s=(short)(s+1),因而程序没有问题编译通过,运转成果是2.Java
到这儿,两个都错了的自觉点给楼主文章右上角点个赞,鸭!恭喜取得第N+1个精确无疑的单纯小白荣誉勋章,千万别厌弃,就像侠岚风语咒里说的:只要心怀正义,侠岚无处不在!所以我只想表达的是,单纯小白荣誉勋章也是勋章。hhhhhh,~哎哎哎,别打…别打…别打脸.~
题三
publicstaticvoidmain(String[]args){
byteb1=1;
byteb2=2;
byteb3=1+2;
byteb4=b2+b3;
System.out.println(b3);
System.out.println(b4);
}
剖析:b3=1+2,1和2是常量,为固定不变的数据,在编译的时分(编译器javac),现已确认了1+2的成果并没有超过byte类型的取值规模,能够赋值给变量b3,因而b3=1+2是正确的。反之,b4=b2+b3,b2和b3是变量,变量的值是或许改变的,在编译的时分,编译器javac不确认b2+b3的成果是什么,因而会将成果以int类型进行处理,所以int类型不能赋值给byte类型,因而编译失利。
题四
publicstaticvoidmain(String[]args){
shorts=32767;
s=(short)(s+10);
System.out.println(s);
}
剖析:定义s为short规模内最大值(2^15)-1=32767,运算后,强制转化(int换为short),砍掉2个字节后会出现不确认的成果,由于这个值以及超出了short类型数据的规模,从而变成负数成果-32759
到这儿,四个题都错了的自觉点给楼主文章右上角点个赞,还有小白同学千万别悲观,想当年楼主刚学java的时分,在腾讯讲堂听课直播的是时分,那个教师出的便是这些类型题,我一向答错,那个教师提了楼主我好几次:这位小白同学又是你,你又答错了…不提了,往事不堪回首。所以,小白同学千万别悲观哦~
题五
publicstaticvoidmain(String[]args){
inta=0;for(inti=0;i>=a&&i<100;i++){
a+=i;
}
System.out.println(a);
}
剖析:这个略微没有任何细节以及“套路”,仅仅单纯的掺杂着些逻辑,所以段个点debug吧,感受一下吧,成果是6
题六
publicstaticvoidmain(String[]args){
intx=4;
System.out.println(“valueis”+((x>4)?99.9:9));
}
剖析:这个题我估量99%的会错~包括我自己~,假如我没猜错的话你的成果是9,啥?你的成果是99.9,额这个,假如这位同学你不是杠精那我建议你回家种田吧,我和你一起,你锄地我耕田…呃呃呃那成果是什么呢,成果居然是9.0。。。至于原因我仍是不断定的哈哈没有仔细去专研过,假如必需要个成果我估量java把9这个整数默许当成浮点类型数据,我当然仅仅推论,那么知道的大佬就请评论出来吧。
题七
publicstaticvoidmain(String[]args){//关于下面两句代码是否编译犯错,很根底的哦doubled=3.10;
floatf=3.10;//关于下面两句代码是否编译犯错,以及打印成果是多少floata=12345678.90123456789f;
doubleb=0.12345678901234567890;
floatc=0.12345678901234567890f;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
ps:各位兄嘚都是大孩子了,各位都把自己的成果记在个小本本上再看下面的剖析答案~
剖析:3.10是浮点型,浮点型字面值默许当做double类型来处理,直接编译通过;假如是float类型则必须加F或者f,若没加,直接编译不通过,会报错“丢失精度”,至于解决方法也很简单,第一种方式:强制类型转化floatf1=(float)3.10;第二种方式:没有类型转化直接加F或者f,如folatf2=3.10f;关于abc的打印成果a=1.2345679E7、b=0.12345678901234568、c=0.12345679
假如还不明白java浮点类型float以及double,能够参阅这篇文章
什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?
题八
剖析下列程序代码,猜想下输出成果。
publicstaticvoidmain(String[]args){
inta=1;intb=2;
System.out.println(a);
System.out.println(b);
change(a,b);
System.out.println(a);
System.out.println(b);
}
publicstaticvoidchange(inta,intb){
a=a+b;b=b+a;
}
剖析下列程序代码,猜想下输出成果。
publicstaticvoidmain(String[]args){
int[]arr={1,3,5};
System.out.println(arr[0]);
change(arr);
System.out.println(arr[0]);
}
publicstaticvoidchange(int[]arr){
arr[0]=200;
}
这个题就不剖析了,首要是考察数组的,答错的童靴或许对数组了解的不是特别清析,能够参阅这篇文章java数组定义、运用、以及数组内存剖析详解
题九
运转成果是怎样的呢?
publicstaticvoidmain(String[]args){
inti=1,j=++i;
System.out.println(i);
System.out.println(j);
}
剖析:估量各位会觉得i=1,j=2,噗哈哈,你还太单纯了,啥?你的答案是i=1,j=1?回家种田吧兄嘚我陪你。那么成果是什么呢?i=2,j=2,原因也很简单,i其实是个变量,j也是个变量,之前i值是1,之后j阅历了++i,就这个阅历的一起,i现已自增++了,所以也是2.
到这儿,九个题错了一半以上的同学自觉点给楼主文章右上角点个赞,千万别悲观,就像侠岚风语咒里说的:只要心怀正义,侠岚无处不在!所以还要持续加油哇!向架构师道路冲鸭!!!
题十
这个题首要考察多态知识,涉及到向上转型和向下转型的概念,所以是比较偏难的!
packagePolymorphic;//爷爷类classYe{
publicStringshow(Sunobj){return(“YeandSun”);
}
publicStringshow(Yeobj){return(“YeandYe”);
}
}//爸爸类classFuextendsYe{
publicStringshow(Fuobj){return(“FuandFu”);
}
publicStringshow(Yeobj){return(“FuandYe”);
}
}//儿子类classZiextendsFu{
}//孙子类classSunextendsFu{
}
publicclassPolymorphicTest{
publicstaticvoidmain(String[]args){
Yey=newYe();
Yey2=newFu();//向上Fuf=newFu();
Ziz=newZi();
Suns=newSun();
System.out.println(“第一题”+y.show(f));
System.out.println(“第二题”+y.show(z));
System.out.println(“第三题”+y.show(s));
System.out.println(“第四题”+y2.show(f));//到这儿挂了???System.out.println(“第五题”+y2.show(z));
System.out.println(“第六题”+y2.show(s));
System.out.println(“第七题”+f.show(f));
System.out.println(“第八题”+f.show(z));
System.out.println(“第九题”+f.show(s));
}
}
运转成果
第一题YeandYe
第二题YeandYe
第三题YeandSun
第四题FuandYe
第五题FuandYe
第六题YeandSun
第七题FuandFu
第八题FuandFu
第九题YeandSun
剖析的话就涉及到太多知识点了,比如多态的金典向上向下转型,这都是必备的重点根底的根底,建议参阅这篇文章

未经允许不得转载:IT技术网站 » 程序员这十个java题你都会吗?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载