1.
解析:首先乘法的优先级高于加法,所以先进行y*z,然后在这里“+”是连接符 因为头一个是字符串所以系统就认为是连接符,就成==" 10202.0"==,输出这个字符串,但如果第一个不是字符串类型的,就像 10+20+” a",这个会输出 “30 a".
2.
解析:首先我们会犯一个常见错误,看见if语句中的单=号就会下意识的认为它是错误的,但这题它是even的再次赋值,if(里面是要boolean类型的,在c中常数也可以,java中不行)而even的类型就是boolean类型,就是说在这里是可以的。
3.
解析:这里是由于没有break;语句它不会跳出会继续执行下去,但关于default很多人可能知道的是如果switch语句中没有合适匹配的的会执行default语句,而有了就不会执行,但那是建立有break的基础上,没有的话还是会一直进行下去。
4.
解析:很多人很少用switch语句,而switch()括号里能放的类型 java7之前:byte,short,char,int和其对应的包装类,Enum枚举类。 java7后:加String类型。 而这题就是考switch()中放的类型,它放的是double类型。
5.
解析:本题对于A a=new A()中的()就是构造方法,而对于A类中的构造方法就只有A(String s){}这个,并没有A(){}这个方法,虽然你不写构造方法jvm虚拟机会私下给你构造无参构造方法,但当你构造了构造方法,它就不会帮你了。这道题就是构造方法的参数不匹配,编译错误。
6.
解析:这是一个数组,里面装的是java.util.Date类型的变量,而这条语句只是创立数组而并未赋值,所以datas[0]中是没有值的固为null,而datas是否有值呢? 有,datas是引用变量,引用变量中装的是地址,所以datas就不会是null。
7.
解析:对于这道题我真的无法可说,在我们平时也不会这样写吧,我们常见的是this.radius=radius;这样,但是这里没有,首先this是用来区分radius,加了this系统就会认为这个radius是Circle类中的那个由private,但这题就是构造方法里的形参radius自己赋值给自己,没有编译错误。但private radius是Circle类中永远无法到达名为赋值的真实,只有默认值0.
8.
解析:这里是考类型转换,但是类型转换可不是随便,要大变小,而Double和Integer是同一级别的同为Numbers的子类 这里就涉及向上转型和向下转型,由于向上转型是自动的,而向下转型是要强制类型转化的,例如:Number类要变成Integer类型,Number numbers=new Number(); Integer in=(Integer)numbers;对于number来说它是父类--->子类,也就是大变小需要强制类型转换,但是对于本题numberRef是由Integer向上转型来的,也只能向下转型成Integer类型的。另一种就是Number看成生物,Integer看成人,Double看成狗,你莫非还能强制类型变成狗。
9.
解析: 首先String argv[]这个写法没问题,这里只要是个数组就行了,数组可以这样写String[] args,也可以String args[]写,而这个数组是有关 命令行 一般情况下你不对它赋值就默认如图:
10.
解析:对于Program 1来说这题是想考多态型,如果父类与子类有同名方法重写,编译看左,运行看右,对于A类重写了equal方法,在调用时是去看Object类中是否有这个方法,如果有就看它是否被重写,如果被重写了就会调用子类的,没被重写就调用自己本类中的呗,如果是子类特有的,是访问不到的,所以Program1就是调用A类中的eqaul方法,返回的当然为true.而对于Program2中的equal方法,这是重载,重载是在本类中的有效,而对于Object类它无法访问到,就调用Object类中的equal方法,比较地址是否一样,这两个地址当然是不一样的,就为false.