11、设int x=1,float y=2,则表达式x/y的值是:(D)
A.0
B.1
C.2
D.以上都不是
0.5
12、命令javac-d参数的用途是?(A)
A.指定编译后类层次的根目录
B.指定编译时需要依赖类的路径
C.指定编译时的编码
D.没有这一个参数
13.关于Float,下列说法错误的是(C)
A.Float是一个类
B.Float在java.lang包中
C.Float a=1.0是正确的赋值方法
D.Float a= new Float(1.0)是正确的赋值方法
Float是一个类,是float类型对应的包装类,Float直接继承Number,间接继承Object,同时实现Serializable和Comparable两个接口,包装类都在lang包中,所以在使用的时候不需要import导包,因为Float是引用数据类型,所以可以通过new调用构造方法创建对象,float类型有三个构造方法,都是带参数的,一个float类型,一个是double类型,还有一个是String类型。在JDK5版本之后出现了自动拆箱的特性,所以float a = 1.0 这种自动装箱的写发其实是可以的,但是由于1.0是常量,在常量区中默认存储以double类型(64bit)来进行存储,想要直接转化成float进而自动装箱是不可以的,需要在1.0后面添加F才行
14、下面为true的是?(G )
Integer i = 42;
Long l = 42l;
Double d = 42.0;
A.(i == l)
B.(i == d)
C.(l == d)
D.i.equals(d)
E.d.equals(l)
F.i.equals(l)
G.l.equals(42L)
包装类的“==”运算在不遇到算术运算的情况下不会自动拆箱 包装类的equals()方法不处理数据转型
15、关于下面代码片段叙述正确的是(C)
byte b1=1,b2=2,b3,b6;
final byte b4=4,b5=6;
b6=b4+b5;
b3=(b1+b2);
System.out.println(b3+b6);
A.输出结果:13
B.语句:b6=b4+b5编译出错
C.语句:b3=b1+b2编译出错
D.运行期抛出异常
被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了 而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是 int类型, 赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要进行强制转换。 Java中的byte,short,char进行计算时都会提升为int类型。