java分班考试训练

大熙哥 2021年09月02日 170次浏览

用来编译编译java文件的命令是

Javac

Java中的关键字有哪些?

1)48个关键字

关键字意思备注
public公有的跨包可用
protected受保护的包可用
private私有的类可用
class
interface接口
abstract抽象
implements实现
extends继承
new创建新对象
import引入
package包关键字

数据类型:

关键字意思备注
byte字节
char字符
boolean真假
short短整
float浮动
long长整数
double双精度
void返回空
null
true
false

条件循环:

关键字意思备注
if如果
else否则
for循环
switch开关
case
default
do
break
return
instanceof是否是实例
false

修饰方法类等:

关键字意思备注
static
final最终的,不可改变方法和类都可以用final来修饰final修饰的类是不能被继承的 final修饰的方法是不能被子类重写。常量的定义:final修饰的属性就是常量。
super调用父类
this当前对象

错误处理:

关键字意思备注
catch 处理异常
try捕获异常
throw抛出异常
throws声明一个异常可能被抛出用于方法抛出

2)2个保留字(现在没用以后可能用到作为关键字):goto、const。

3)3个特殊直接量:true、false、null。

运算符优先级别由高向低排序正确的是?

A.()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符;

正确答案:A

知识补充

下列代码运行情况:

public class Main
{
	public static void main (String[] args)
	{
        int a = 3, b = 4, c = 5;
        
        boolean d = a > b && c++ > 4;
        
        System.out.println(c + ","+ d);
	}
}

输出 5 ,false
a>b = false,短路后面不再执行
打印的时候会自动类型转换

注意1:“&”和“&&”的区别:

&时,左边无论真假,右边都进行运算;
&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算 。

注意2:“|”和“||”的区别:

|时,左边无论真假,右边都进行运算;
||时,如果左边为假,右边参与运算,如果左边为真,那么右边不参与运算 。

下列代码运行情况:

public class Main
{
	public static void main (String[] args)
	{
        int i = 5;
        int j = 2*i+++3*++i;
        System.out.println(j);
	}
}

31
第一次2 * 5 = 10 之后 i++ i=6
第二次 因为++i所以先算i i= 7
3*7 = 21
21+10 =31

下列代码运行情况:

public class Main
{
	public static void main (String[] args)
	{
        int i = 3;
        
        if(i < 3);
        System.out.println("haha");
        System.out.println("hehe");
	}
}

haha hehe,因为使用了分号。

下列代码运行情况:

public class Super233 {
    public static void ma(){
        System.out.println("Super ma");
    }

    public void mb(){
        System.out.println("Super mb");
    }

    public static void main(String[] args){
        Super s = new Sub();
        s.ma();
        s.mb();
    }
}

class Sub extends Super233 {
public static void ma(){
    System.out.println("Sub ma");
}

public void mb(){
    System.out.println("Sub mb");
}

结果是Super ma Sub mb
静态方法不可以被重写,不能实现多态

下列代码运行情况:

public class Test {
    public static void main(String [] args){
        MyClass mc = new MyClass();
        change(mc);
        System.out.println(mc.i);
    }

    public static void change(MyClass mc){
        mc.i = 5;
        mc = new MyClass();
        mc.i = 8;
    }
}
class MyClass{
    int i = 3;
}

5
形参传递对象地址,改变对象值改变原对象
形参重新赋值不会改变原对象

下列代码运行情况:

public class Main
{

    public static void main(String[] args){
        int i = 5;
        final int j = 10;
        add(i);
        plus(j);
    }

    public static void add(final int i){
        System.out.println(2 * i);
    }

    public static void plus(int i){
        i *= 2;
        System.out.println(i);
    }

}

10 20
迷雾题,final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值。
add函数并没有程序赋值i
plus函数传入后值传递之后i是变量可改变其值

下列代码运行情况:

public class Main
{
    public static void main(String [] args){
        System.out.println(add(3,5));
    }
    static int add(int i,int j){
        return i + j;
    }
    static double add(int i,double j){
        return i + j;
    }

    static double add(double i, int j){
        return i + j;
    }

    static double add(double i ,double j){
        return i + j;
    }

    static double add(float i ,int j){
        return i + j;
    }
}

8

下列关于匿名对象的说法正确的是:

A.匿名对象在栈内存中有该对象的引用(匿名对象只在堆内存中开辟空间,而不存在栈内存的引用)

B.匿名对象可以当做参数来进行传递(√)

C.匿名对象在声明之后可以重复调用(必须用变量接受)

D.匿名对象在使用完之后会立即移除栈内存(等待垃圾回收期在空闲的时候回收)

E.匿名对象不能调用方法(可以)

正确答案:B

Java的核心包中,提供编程应用的基本类的是:

A.java.lang

B.java.util

C.java. io

D.java.awt

E.java.applet

正确答案:A

下列说法中正确的是:

A.java中的注释格式一共有两种:单行注释、多行注释

B.单行注释之间可以嵌套

C.多行注释之间不能嵌套

D.文档注释可以嵌套多行注释

E.文档注释中的注释文字可以利用javadoc命令提取成文档

正确答案:BCE

下列各项可以正确赋值的是:

A.int i = ‘a’;

B.float f = -2;

C.byte b = 128;

D.double d = 100d;

E.char c = 97;

正确答案:ABDE
byte的范围 [-128,127]
byte 类型可以自动转为int类型 int类型不能自动转为byte类型。
超过byte的范围,就会变成int类型了
byte b=1:正确,
b=b+1:报错,
b+=1:正确。

下列各项可能会出现空指针异常的是:

A.s != null & !s.equals(“”);

B.s != null && !s.equals(“”);

C.s != null | !s.equals(“”);

D.s != null || !s.equals(“”);

E.s == null || s.equals(“”);

正确答案:ACD

考 短路。

下列关于this的说法正确的是:

A.this代表当前对象的引用

B.可以通过this语句来实现构造函数的调用

C.可以通过this调用私有方法或者私有属性

D.可以在主函数中使用this来调用其他的方法

E.可以使用this关键字来调用静态属性

正确答案:ABCE

对于字符串String s = “2016-11-11 00:11:11”,下列能够将其正确转化为日期对象2016年11月11日0时11分11秒的选项是:

A.Date d = new Date(s);

B.Date date = new SimpleDateFormat(“yyyy/mm/dd hh:MM:ss”).parse();

C.Date date = new SimpleDateFormat(“yyyy-mm-dd hh:MM:ss”).parse();

D.Date date = new SimpleDateFormat(“YYYY-mm-dd hh:MM:ss”).parse();

E.Date date = new SimpleDateFormat(“yyyy-mm-dd HH:MM:ss”).parse();

正确答案:CE

下列方法声明正确的是:

A.final public void m()

B.protected static void m()

C.final abstract void m()

D.private abstract void m()

E.public static abstract void m()

正确答案:AB

abstract 一定不能和 private, static, final 同时使用.

1、抽象方法:只有方法头,没有方法体定义,也就是说抽象方法无需实现,抽象方法的意义在于子类实现,private意义在于其他类直接调用它已实现的方法。这两者搭配毫无意义(private修饰后为私有,子类不能继承,自然不能使用)

2、final用于类名前,表示类不可被继承;final用于变量前,表示它是只能一次赋值的变量,如果初始化了那就是常量,也不可被改变。和abstract 搭配无意义(final不能被重写,根本就不可能被abstract的实现类重写)

3、static修饰的是静态方法,可以直接被类调用;而abstract修饰的类中只有方法名,无方法体,不能被直接调用,故不能同时修饰一个类或方法。

下列各项挣够正确编译运行的是:

A.Integer i = new Integer(“3”);

B.Float f = 3.5;(在java里面,没小数点的默认是int,有小数点的默认是 double)

C.Integet i = new Integer(“0x45”);

D.Boolean b = new Boolean(null);

E.Boolean b = new Boolean(“aaa”);

正确答案:ADE

在下列代码的//insert code here 处,下列哪些选型能够使类Two成功编译?

class One {
	void foo() {
		/*more code here*/
	} 
}
public class Two extends class One {
	//insert code here
}

A.int foo() {}

B.void foo() {}

C.public void foo() {}

D.protected void foo() {}

E.private void foo() {}

正确答案:BCD

下列关于抽象类的说法中,正确的是:

A.抽象类可以被实例化

B.抽象类可以有构造方法

C.抽象类可以有非抽象方法

D.子类继承了抽象类必须实现其全部的抽象方法

E.抽象类可以继承非抽象的类

正确答案:BCDE