1.java中,用( )关键字定义常量?
A.final
B.#define
C.float
D.const
2.在Java中,以下关于方法重载和方法重写描述正确的是?
A.方法重载和方法的重写实现的功能相同
B.方法重载出现在父子关系中,方法重写是在同一类中
C.方法重载的返回值类型必须一致,参数项必须不同
D.方法重写的返回值类型必须相同或相容。(或是其子类)
3.以下程序的运行结果是?
4.有时为了避免某些未识别的异常抛给更高的上层应用,在某些接口实现中我们通常需要捕获编译运行期所有的异常, catch 下述哪个类的实例才能达到目的:
A.Error
B.Exception
C.RuntimeException
D.Throwable
5.下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换:
byte[] src,dst;
A.dst=String.fromBytes(src,“GBK”).getBytes(“UTF-8”)
B.dst=new String(src,“GBK”).getBytes(“UTF-8”)
C.dst=new String(“GBK”,src).getBytes()
D.dst=String.encode(String.decode(src,“GBK”)),“UTF-8” )
6.关于java编译和运行命令叙述不正确的是? ( )
A.运行“java Scut.class”
B.运行“java Scut”
C.编译 Scut.java文件,使用“javac Scut.java”命令的输出文件是Scut.class
D.java这个命令的运行对象是Scut.class
7.在Java中,以下数据类型中,需要内存最多的是()
A.byte
B.long
C.Object
D.int
8下面哪些选项是正确的()
A.>>是算术右移操作符
B.>>是逻辑右移操作符
C.>>>是算术右移操作符
D.>>>是逻辑右移操作符
9.java中下面哪些是Object类的方法()
A.notify()
B.notifyAll()
C.sleep()
D.wait()
10.Consider the following code:
Integer s=new Integer(9);
Integer t=new Integer(9);
Long u=new Long(9);
Which test would return true?
A.( s == u)
B.(s == t)
C.(s.equals(t))
D.(s.equals(9))
E.(s.equals(new Integer(9))
(1)A
final关键字可用于修饰类、变量和方法。final修饰变量时,表示该变量一旦获得了初始值就不可被改变,final既可以修饰成员变量也可以修饰局部变量、形参
(2)D
方法重载的返回值的类型可以不同,因为判断方法重载的方法主要是根据方法的参数不同来判定;方法重写的返回值类型需要相同,重写就是子类继承了父类的方法,并在此方法上重写属于自己的特征,既然是继承过来的,那么它的返回值类型就必须要相同
(3)foobar
调用start()后,线程会被放到等待队列,等待CPU调度,并不一定要马上开始执行,只是将这个线程置于可动行状态。然后通过JVM,线程Thread会调用run()方法,执行本线程的线程体。
1.start()方法来启动线程,真正实现了多线程运行。这时无需等待run方法体代码执行完毕,可以直接继续执行下面的代码;
2.run()方法当作普通方法的方式调用。程序还是要顺序执行,要等待run方法体执行完毕后,才可继续执行下面的代码, 这样就没有达到写线程的目的。
(4)
正确答案是B,因为error是系统出错,catch是无法处理的,难以修复的,RuntimeException不需要程序员进行捕获处理,error和exception都是throwable的子类,我们只需要对exception的实例进行捕获即可
补充
既然是要捕获在 编译期 和 运行期
首先编译期在有些方法是必须要进行 try catch
而运行期可以手动添加 try catch
运行期间出现的异常都可以使用RuntimeException这个是运行期间所有异常的 “组长”
但是编译期就多了,他们没有这个所谓的 “组长”,但是它们上面还有个 “班长”(Exception)也就时 “组长” 的 “头儿”
所以可以使用这个 “班长”(Exception)解决这两个组的异常
(5)
答案:B
操作步骤就是先解码再编码
用new String(src,“GBK”)解码得到字符串
用getBytes(“UTF-8”)得到UTF8编码字节数组
(6)
A 错误 运行命令是 java + 你的 Java 程序的名字但是不加后缀 所以这道题错在多了 .class这个后缀
B 正确
C javac 是编译命令,后跟 你的 Java 程序名字加后缀,也就是 YourClassName.java 所以答案正确
D JVM (Java 虚拟机)运行的是编译后的字节码文件(以.class为后缀的文件),也就是 YourClassName.class 所以答案正确
(7)JAVA语言中定义了8种基本的数据类型,来保存变量。JAVA要求程序中的每一个变量都规定自己的类型。正因为如此,JAVA属于强类型语言,从而不同于JavaScript这样的弱类型脚本语言。
下面我们来看看这8种类型:
byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
boolean:只有true和false两个取值。
char:16位,存储Unicode码,用单引号赋值。
注:一个字节=8位。
所以,整型数据类型中,需要内存空间最多的是long。
(8)AD
运算符“>>”执行算术右移,它使用最高位填充移位后左侧的空位。
右移的结果为:每移一位,第一个操作数被2除一次,移动的次数由第二个操作数确定。
逻辑右移或叫无符号右移运算符“>>>“只对位进行操作,没有算术含义,它用0填充左侧的空位。
算术右移不改变原数的符号,而逻辑右移不能保证这点。
移位运算符约简其右侧的操作数,当左侧操作数是int类型时,右侧以32取模;当左侧是long类型时,右侧以64取模。
(9)
ABD
Object类中方法:
protected Object clone()创建并返回此对象的一个副本。
boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。
protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
class getClass()返回此 Object 的运行时类。
int hashCode()返回该对象的哈希码值。
void notify()唤醒在此对象监视器上等待的单个线程。
void notifyAll()唤醒在此对象监视器上等待的所有线程。
String toString()返回该对象的字符串表示。
void wait()在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。
void wait(long timeout)在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。
void wait(long timeout, int nanos)在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
(10) C D E
(s==u) ,因为, s 是 Integer 类型, u 是 Long 类型,两个不同类型的引用不能进行 == 比较。
(s==t) , s 是指向一个 9 的引用,而 t 也是一个指向 9 的引用,虽然都是指向 9 ,但却是指向不同的 9 ,即是两个不同的引用。因此 == 比较返回的是假。
(s.equals(t)) , Integer 的 equals 方法如下:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false ;
}
是 Integer 的实例且 value 值也相等的情况下返回真,其他返回假。
在这里, s 和 t 都是 Integer 类型且值都为 9 ,因此结果为真。
(s.equals(9)) , 在进行 equals 比较之前,会对 9 调用 Integer.valueOf 方法,进行自动装箱 , 由于 IntegerCache 中已经存在 9 ,所以,直接返回其引用,引用相同, equals 就自然相同了。所以结果为真。
(s.equals( new Integer(9)) ,直接创建了一个新的 Integer 实例,但且值也为 9 ,所以,满足条件,返回真。