前言
不论你是职场新人还是步入职场N年的职场新人大哥大当然这个N<3,我能担保你答不对9个题不要问我为什么这么自信,这些个题还是“有水平”的javase
的基础题,传闻小白指定鸭蛋分,一测一个准,哈哈。
作为将来要成为架构师的男人,对,你没看错,就是在说你 皮一下很开森 ,what?你是小白?我顶你个肺,我叫声杠精,你敢应吗,那个代号9527的杠精,说你呢快快来答题,看你能答对几道题。
题一
下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果
public static void main(String[] args){
short s = 1;
s=s+1;
System.out.println(s);
}
ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~
分析: s = s + 1
计算结果被提升为int
类型,再向short
类型赋值时发生错误,因为不能将取值范围 大的类型赋值到取值范围小的类型。
题二
下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果
public static void main(String[] args){
short s = 1;
s+=1;
System.out.println(s);
}
ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~
分析: s += 1
逻辑上看作是 s = s + 1
计算结果被提升为int类型,再向short
类型赋值时发生错误,因为不能将取值范围 大的类型赋值到取值范围小的类型。但是, s=s+1
进行两次运算 , +=
是一个运算符,只运算一次,并带有强制转换的特点, 也就是说 s += 1
就是 s = (short)(s + 1)
,因此程序没有问题编译通过,运行结果是2
.
到这里,两个都错了的自觉点给楼主文章右上角点个赞,鸭!恭喜获得第
N+1
个准确无疑的天真小白荣誉勋章,千万别嫌弃,就像侠岚风语咒里说的:只要心怀正义,侠岚无处不在!所以我只想表达的是,天真小白荣誉勋章也是勋章。hhhhhh, 哎哎哎,别打…别打…别打脸.
题三
下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果
public static void main(String[] args){
byte b1=1;
byte b2=2;
byte b3=1 + 2;
byte b4=b2 + b3;
System.out.println(b3);
System.out.println(b4);
}
ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~
分析: b3 = 1 + 2
, 1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac
),已经确定了 1+2
的结果并没 有超过byte
类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2
是正确的。 反之, b4 = b2 + b3
, b2 和 b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac
不确定b2+b3
的结果是什 么,因此会将结果以int
类型进行处理,所以int
类型不能赋值给byte
类型,因此编译失败。
题四
下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果
public static void main(String[] args){
short s = 32767;
s = (short)(s + 10);
System.out.println(s);
}
ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~
分析:定义s为short
范围内最大值 (2^15) - 1 = 32767
,运算后,强制转换(int
换为short
),砍掉2个字节后会出现不确定的结果,因为这个值以及超出了short
类型数据的范围,从而变成负数结果-32759
到这里,三个都错了的自觉点给楼主文章右上角点个赞,还有小白同学千万别灰心,想当年楼主刚学java的时候,在腾讯课堂听课直播的是时候,那个老师出的就是这些类型题,我一直答错,那个老师提了楼主我好几次:这位小白同学又是你,你又答错了…不提了,往事不堪回首。所以,小白同学千万别灰心哦~
题五
下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果
public static void main(String[] args) {
int a=0;
for (int i = 0; i >= a && i<100 ; i++){
a+=i;
}
System.out.println(a);
}
ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~
分析:这个稍微没有任何细节以及“套路”,只是单纯的掺杂着些逻辑,所以段个点debug
吧,感受一下吧,结果是6
题六
下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果
public static void main(String[] args) {
int x=4;
System.out.println("value is " + ((x>4) ? 99.9 : 9));
}
分析:这个题我估计99%
的会错 包括我自己 ,如果我没猜错的话你的结果是9
,啥?你的结果是99.9
,额这个,如果这位同学你不是杠精那我建议你回家种田吧,我和你一起,你锄地我耕田…呃呃呃那结果是什么呢,结果居然是9.0
。。。至于原因我还是不断定的哈哈没有仔细去专研过,如果必须要个结果我估计java把9这个整数默认当成浮点类型数据,我当然只是推论,那么知道的大佬就请评论出来吧。
题七
下面的程序有问题吗?如果有问题说明一下, 如果没有问题猜测一下运行结果
public static void main(String[] args) {
//对于下面两句代码是否编译出错,很基础的哦
double d=3.10;
float f=3.10;
//对于下面两句代码是否编译出错,以及打印结果是多少
float a = 12345678.90123456789f;
double b=0.12345678901234567890;
float c=0.12345678901234567890f;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
ps : 各位兄嘚都是大孩子了,各位都把自己的结果记在个小本本上再看下面的分析答案~
分析:3.10
是浮点型,浮点型字面值默认当做double
类型来处理,直接编译通过;如果是float
类型则必须加 F
或者f
,若没加,直接编译不通过,会报错“损失精度”,至于解决方法也很简单, 第一种方式:强制类型转换float f1=(float)3.10
; 第二种方式:没有类型转换直接加F
或者f
,如 folat f2=3.10f
;对于abc的打印结果a = 1.2345679E7
、b = 0.12345678901234568
、c = 0.12345679
如果还不懂java浮点类型float
以及double
,可以参考这篇文章
什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?
题八
分析下列程序代码,猜想下输出结果。
public static void main(String[] args) {
int a = 1; int b = 2;
System.out.println(a);
System.out.println(b);
change(a, b);
System.out.println(a);
System.out.println(b);
}
public static void change(int a, int b) {
a = a + b; b = b + a;
}
分析下列程序代码,猜想下输出结果。
public static void main(String[] args) {
int[] arr = {1,3,5};
System.out.println(arr[0]);
change(arr);
System.out.println(arr[0]);
}
public static void change(int[] arr) {
arr[0] = 200;
}
这个题就不分析了,主要是考察数组的,答错的童靴可能对数组了解的不是特别清析,可以参考这篇文章 java数组定义、使用、以及数组内存分析详解
题九
运行结果是怎样的呢?
public static void main(String[] args) {
int i = 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.
到这里,六个全错了的自觉点给楼主文章右上角点个赞,千万别灰心,就像侠岚风语咒里说的:只要心怀正义,侠岚无处不在!所以还要继续加油哇!向架构师道路冲鸭!!!
有木有全部正确的大哥大捏,如果有,我代表全体鸭蛋分的小白膜拜下大佬~
最后,已每题一分计算,你得多少分?勇敢说出来,尽管笑死楼主
转载:https://blog.csdn.net/qq_44543508/article/details/102074350