java刷题笔记3

1.顺序执行下列程序语句后,则b的值是()

String a="Hello";

String b=a.substring(0,2);

正确答案: C  

A.Hello
B.Hel
C.He
D.null

分析:substring    方法将返回一个包含从    start    到最后(不包含    end    )的子字符串的字符串。

2.下列有关Servlet的生命周期,说法不正确的是?

正确答案: A  

A.在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例
B.在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法
C.在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源
D.destroy()方法仅执行一次,即在服务器停止且卸载Servlet时执行该方法

分析:

Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。

(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet

(2)创建:通过调用servlet构造函数创建一个servlet对象

(3)初始化:调用init方法初始化

(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求

(5)卸载:调用destroy方法让servlet自己释放其占用的资源

3.

1

2

3

4

 public void test() {

        int a = 10;

        System.out.println(a++ + a--);

    }

最后输出什么?

正确答案: C 

A.19
B.20
C.21
D.22

4.在java中重写方法应遵循规则的包括()

正确答案: B C  

A.访问修饰符的限制一定要大于被重写方法的访问修饰符
B.可以有不同的访问修饰符
C.参数列表必须完全与被重写的方法相同
D.必须具有不同的参数列表

分析:在子类中创建了一个与父类中名称相同、返回值类型相同、参数列表的方法相同,只是方法体中的实现不同,以实现不同于父类的功能,这种方式被称为方法重写(override)

总结来说为:

方法名相同,参数类型相同

子类返回类型等于父类方法返回类型,

子类抛出异常小于等于父类方法抛出异常,

子类访问权限大于等于父类方法访问权限。

5关于访问权限,说法正确的是? ( )

正确答案: A   

A.类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testB
B.类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testB
C.访问权限大小范围:public > 包权限 > protected > private
D.访问权限大小范围:public > 包权限 > private > protected

分析:public>protected>default>private

6.以下代码执行后输出结果为( )

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public class Test

{

    public static Test t1 = new Test();

    {

         System.out.println("blockA");

    }

    static

    {

        System.out.println("blockB");

    }

    public static void main(String[] args)

    {

        Test t2 = new Test();

    }

 }

正确答案: A  

A.blockAblockBblockA
B.blockAblockAblockB
C.blockBblockBblockA
D.blockBblockAblockB

分析:在执行(1)时创建了一个Test对象,在这个过程中会执行非静态代码块和缺省的无参构造函数,在执行非静态代码块时就输出了blockA;然后执行(2)输出blockB;执行(3)的过程同样会执行非静态代码块和缺省的无参构造函数,在执行非静态代码块时输出blockA。

7.有以下一个对象:

1

2

3

4

5

6

7

8

9

10

public class DataObject implements Serializable{

    private static int i=0;

    private String word=" ";

    public void setWord(String word){

        this.word=word;

    }

    public void setI(int i){

        Data0bject.i=i;

     }

}

创建一个如下方式的DataObject:

1

2

3

DataObject object=new Data0bject ( );

object.setWord("123");

object.setI(2);

将此对象序列化为文件,并在另外一个JVM中读取文件,进行反序列化,请问此时读出的Data0bject对象中的word和i的值分别为:
 

正确答案: D  

A."", 0
B."", 2
C."123", 2
D."123", 0

分析:序列化保存的是对象的状态,静态变量属于类的状态,因此,序列化并不保存静态变量。所以i是没有改变的

8.Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 (  ).

正确答案: C 

A.11 ,-11
B.11 ,-12
C.12 ,-11
D.12 ,-12

分析:floor : 意为地板,指向下取整,返回不大于它的最大整数 ceil : 意为天花板,指向上取整,返回不小于它的最小整数 round : 意为大约,表示“四舍五入”,而四舍五入是往大数方向入。Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11而不是-12。

9.对于子类的构造函数说明,下列叙述中错误的是( )。

正确答案: D  

A子类不能继承父类的无参构造函数。
B.子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。
C.在创建子类的对象时,若不含带参构造函数,将先执行父类的无参构造函数,然后再执行自己的无参构造函数。
D.子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。

分析:构造函数不能被继承,构造方法只能被显式或隐式的调用。

10.下列说法正确的是

正确答案: B  

A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法可直接调用
C.在类方法中只能调用本类的类方法
D.在类方法中绝对不能调用实例方法

分析:A this指当前对象只能在实际方法和构造函数中调用。C 可以调用其他类的非私有类方法。D 不能直接调用,到先生成对象。通过对象即可调用实例方法。

11.下面哪种流可以用于字符输入:

正确答案: C   

A.java.io.inputStream
B.java.io.outputStream
C.java.io.inputStreamReader
D.java.io.outputStreamReader

分析:

首先B和D排除,题目是要求输入。

A和C之间,inputStream是字节流输入流;而inputStreamReader是对字符流的处理,inputStreamReader将字符流处理成字节流,题目要求是用于处理字符输入,所以选C。

12.运行代码,输出的结果是()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public class P {

    public static int abc = 123;

    static{

        System.out.println("P is init");

    }

}

public class S extends P {

    static{

        System.out.println("S is init");

    }

}

public class Test {

    public static void main(String[] args) {

        System.out.println(S.abc);

    }

}


正确答案: A  

A.P is init<br />123
B.S is init<br />P is init<br />123
C.P is init<br />S is init<br />123
D.S is init<br />123

分析:

不会初始化子类的几种

1. 调用的是父类的static方法或者字段

2.调用的是父类的final方法或者字段

3. 通过数组来引用

13.JAVA反射机制主要提供了以下哪些功能?

正确答案: A B C D  

A.在运行时判断一个对象所属的类
B.在运行时构造一个类的对象
C.在运行时判断一个类所具有的成员变量和方法
D.在运行时调用一个对象的方法

14.关于Float,下列说法错误的是()

正确答案: C 

A.Float是一个类
B.Float在java.lang包中
C.Float a=1.0是正确的赋值方法
D.Float a= new Float(1.0)是正确的赋值方法

分析:

  1. Float是类,float不是类.
  2. 查看JDK源码就可以发现Byte,Character,Short,Integer,Long,Float,Double,Boolean都在java.lang包中.
  3. Float正确复制方式是Float f=1.0f,若不加f会被识别成double型,double无法向float隐式转换.
  4. Float a= new Float(1.0)是正确的赋值方法,但是在1.5及以上版本引入自动装箱拆箱后,会提示这是不必要的装箱的警告,通常直接使用Float f=1.0f.

15.下面代码输出结果是?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

class C {

    C() {

        System.out.print("C");

    }

}

class A {

    C c = new C();

    A() {

        this("A");

        System.out.print("A");

    }

    A(String s) {

        System.out.print(s);

    }

}

class Test extends A {

    Test() {

        super("B");

        System.out.print("B");

    }

    public static void main(String[] args) {

        new Test();

    }

}

正确答案: B  

A.BB
B.CBB
C.BAB
D.None of the above

分析:

1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化; 

2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化; 

3.其次,初始化父类的普通成员变量和代码块,在执行父类的构造方法;

4.最后,初始化子类的普通成员变量和代码块,在执行子类的构造方法; 

16.关于抽象类与最终类,下列说法错误的是?

正确答案: D 

A.抽象类能被继承,最终类只能被实例化。
B.抽象类和最终类都可以被声明使用
C.抽象类中可以没有抽象方法,最终类中可以没有最终方法
D.抽象类和最终类被继承时,方法可以被子类覆盖

分析:这里只是说“声明”,并没有说“实例化”;如果只是声明是可以的,最常见的使用方式就是:
1、父类类型的引用指向子类的对象;
2、 接口类型的引用指向该接口的实现类的对象;
以上两种使用方式也就是所谓的“向上转型”

最终类就是被final修饰的类,最终方法就是被final修饰的方法。最终类不能被继承,最终方法不能被重写。

17.以下JS程序段的运行结果为:

var a = 1;

console.log(a)

let a = 6;

  • A、

    undefined

  • B、

    1

  • C、

    运行错误

  • D、

    6

正确答案: C 

18.判断以下程序的运行结果

console.log(null == undefined)

  • A、

    运行错误

  • B、

    true

  • C、

    false

  • D、

    undefined

正确答案: B 

分析:null == undefined输出true,null === undefined输出false

19.运行以下JavaScript程序段的结果为:

var a = 1;

console.log(a)

var a = 6;

  • A、

    运行错误

  • B、

    1

  • C、

    6

  • D、

    undefind

正确答案: B 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值