Java练习题(三)

发布于:2024-05-16 ⋅ 阅读:(54) ⋅ 点赞:(0)

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类型。