叨叨两句
- 扭转自我评价,即可让行为发生巨大变化
牛客网——java专项练习015
1
使用静态属性必须以类名做前缀。
正确答案: B 你的答案: B (正确)
A 正确
B 错误
1 如果是本类使用,可以直接就用静态变量名。
2 如果是其他类使用,可以使用类名来调用,也可以创建一个实例对象来调用。
3 如果静态变量所在的类是静态类,那么不管在本类里或者在其他外部类,都可以直接使用静态变量名。
2
如下的Java程序
public class Test {
public static void main(String[] args) {
System.out.println(args[0]);
}
}
若采用命令行“java Test one two three”调用,则程序输出的结果为:
正确答案: B 你的答案: A (错误)
A Test
B one
C two
D java
Test是类名,one two three才是main方法的参数。
3
下面有关java的一些细节问题,描述错误的是?
正确答案: B 你的答案: A (错误)
A 构造方法不需要同步化
B 一个子类不可以覆盖掉父类的同步方法
C 定义在接口中的方法默认是public的
D 容器保存的是对象的引用
构造方法每次都是构造出新的对象,不存在多个线程同时读写同一对象中的属性的问题,所以不需要同步 。
如果父类中的某个方法使用了 synchronized关键字,而子类中也覆盖了这个方法,默认情况下子类中的这个方法并不是同步的,必须显示的在子类的这个方法中加上 synchronized关键字才可。当然,也可以在子类中调用父类中相应的方法,这样虽然子类中的方法并不是同步的,但子类调用了父类中的同步方法,也就相当子类方法也同步了。
接口里面的变量为常量,其实际是 public static final ;接口里面的方法为抽象方法,其实际是public abstract
4
What is displayed when the following is executed;
正确答案: A 你的答案: 空 (错误)
double d1=-0.5;
System.out.println("Ceil d1="+Math.ceil(d1));
System.out.println("floor d1="+Math.floor(d1));
A
Ceil d1=-0.0
floor d1=-1.0
B
Ceil d1=0.0
floor d1=-1.0
C
Ceil d1=-0.0
floor d1=-0.0
D
Ceil d1=0.0
floor d1=0.0
E
Ceil d1=0
floor d1=-1
ceil:大于等于 x,并且与它最接近的整数。
floor:小于等于 x,且与 x 最接近的整数。
这里主要是有一点:
Math.ceil(d1)
ceil 方法上有这么一段注释:If the argument value is less than zero but greater than -1.0, then the result is negative zero
如果参数小于0且大于-1.0,结果为 -0
Math.floor(d1)
ceil 和 floor 方法 上都有一句话:If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument,意思为:如果参数是 NaN、无穷、正 0、负 0,那么结果与参数相同,
如果是 -0.0,那么其结果是 -0.0
5
变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为多少?()
正确答案: C 你的答案: 空 (错误)
A 1
B -(2^62+2^61+2^60+1)
C 2^62+2^61+2^60+1
D 2^59+(2^55+2^54+…+2^2+2^1+2^0)
0Xf000000000000000补码为1111000000000000000000000000000000000000000000000000000000000000
0x7FFFFFFFFFFFFFFF补码为0111111111111111111111111111111111111111111111111111111111111111
a-b=a+(-b)=
1111000000000000000000000000000000000000000000000000000000000000+
1000000000000000000000000000000000000000000000000000000000000001=
10111000000000000000000000000000000000000000000000000000000000001(高位溢出舍去)
则结果为
0111000000000000000000000000000000000000000000000000000000000001=
2^62+2^61+2^60+1
答案为C
0x7FFFFFFFFFFFFFFF+1=0X8000000000000000,那么
a-b=0Xf000000000000000-0X8000000000000000+1
=0X7000000000000001
=16^15*7+16^0*1
=2^60*7+1
=2^60*(2^2+2^1+2^0)+1
=2^62+2^61+2^60+1
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。