【每日进步一点点系列】十道精选Java习题

⭐️引言⭐️

        大家好,我是执梗。Java的学习非一朝一夕可以成功,需要我们水滴穿石般的坚持。每日进步一点点系列,旨在可以每天只花几分钟就能学到Java中我们可能忽略的知识,同时也可以检验自己的Java能力无论你是坐着躺着还是蹲着,花上几分钟时间就可以检验和巩固到自身的Java知识点,希望能和大家每天都能进步一点点。

查看答案方法:

对下面块引用中的进行长拉(手机端可在文末)即可查看答案:

正确答案:A<-答案请长拉左侧

如图所示:

在文章末尾我也会贴上答案。


1.关于字符流和字节流的说法的是?(多选)

        A.每次读入的字节数不同

        B.前者带有缓冲,后者没有

        C.前者是字符读入,后者是字节读入

        D.二者没有区别,可以互换

正确答案:ABD

字符流和字节流每次读入数据的字节数是无法确定的,有可能相同也有可能不同的。字节流和字符流都是有缓冲流,比如BufferedInoutStream就是一个字节缓冲流。两者的区别其实类似byte[]和String

2.Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,以下过程属于初始化阶段是()。

                A.加载Servlet类及.class对应的数据

                B.创建servletRequest和servletResponse对象

                C.创建ServletConfig对象

                D.创建Servlet对象

正确答案:ACD

Servlet的生命周期一般可以用三个方法来表示:

     1.init():仅执行一次,负责在装载Servlet时初始化Servlet对象

     2.service() :核心方法,一般HttpServlet中会有get,post两种处理方式。在调用doGet和doPost方法时会构造servletRequest和servletResponse请求和响应对象作为参数。

     3.destory():在停止并且卸载Servlet时执行,负责释放资源

        初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法。servletRequest和servletResponse对象是调用service()时才构造的         

3.下面关于静态方法说明正确的是?

        A.在静态方法里可用this来调用本类的类方法

        B.在静态方法中调用本类的静态方法时可直接调用

        C.在静态方法中只能调用本类中的静态方法

        D.在静态方法中不可调用实例方法

正确答案:B

A.静态方法加载时都还未创建对象,this当然是不可使用的

B.在本类中调用本类的类方法可以直接通过方法名调用

C.在静态方法中也可以调用其他类的静态方法

D.虽然我们无法直接调动实例方法,我们可以实例化出当前类的对象,然后通过对象.方法名调用实例方法

4.关于继承和实现说法正确的是 ()?

        A.类可以实现多个接口,接口可以继承(或扩展)多个接口

        B.类可以实现多个接口,接口不能继承(或扩展)多个接口

        C.类和接口都可以实现多个接口

        D.类和接口都不可以实现多个接口

正确答案:A

虽然Java一直强调单继承,但其实那只是限定与类。接口是也是可以继承接口的,同样使用extends关键字继承,但是它可以继承多个父类子接口,父接口之间用逗号隔开。

5.下面代码的运行结果正确的是()?

public class Arraytest{
    int a[] = new int[6];
    public static void main ( String arg[] ) {
        System.out.println ( a[0] );
    }
}

       A.null

       B.0

       C.编译出错

       D.运行出错

正确答案:C

在静态方法中不可以调用非静态的资源,这个数组是一个成员变量但不是静态的,所以在main方法中调用会编译报错,如果在数组前加一个static则编译通过,则会输出默认值0。

6.下面代码输出的结构是?

class A{
	public A(String str){
		
	}
}
public class Test{
	public static void main(String[] args) {
		A classa=new A("he");
		A classb=new A("he");
		System.out.println(classa==classb);
	}
}

                A.false

                B.true

                C.报错

                D.以上选项都不正确

正确选项:A

==表示的是两个对象是否指向的是同一个内存,这是两个new出来在堆上的对象,当然不可能在同一个地址上。即使使用equals也是false,因为没有重写equals和hashcode方法,默认也是才用==进行比较。

7.下面关于Java的垃圾回收机制,正确的是()

        A.当调用“System.gc()”来强制回收时,系统会立即回收垃圾

        B.垃圾回收不能确定具体的回收时间

        C.程序可明确地标识某个局部变量的引用不再被使用

        D.程序可以显式地立即释放对象占有的内存

正确答案:B

A.System.gc()只会建议垃圾回收器回收该内存,但只是建议,并不会立马就回收

B.GC回收并没有明确的时间固定

C.局部变量一般都是随着方法的执行结束而被释放

D.GC是完全自动的,不能强制执行它,我们最多使用System.gc()去建议它释放某块内存

8.下面代码输出的结果是?

String str = "abcde";
System.out.print(str.split(",").length);

        A.0

        B.1

        C.5

        D.出现异常

正确答案:B

String的split方法默认的返回值是一个字符串数组。它根据分隔符去分割原字符串,如果没有找到分隔符,则会把整个原字符串放入到返回值字符串数组的第一个位置,则这个返回的字符串数组长度为1。

9.下面代码输出的结果是?

public class Test {
    public static void main(String args[]) {
        int i = -5;
        i =  ++(i++);
        System.out.println(i);
    }
}

                A.-7

                B.-3

                C.编译错误

                D.-5

正确答案:C

对于++()这个操作,空号内必须是一个变量,而不能是一个字面量。什么是字面量呢?就比如3,"ASD"这样一个int类型和String类型的量一眼就能看出来值的就是字面量,而变量就不用多说,int a和String b,那a和b就是变量。为什么++()不能放字面量呢?你见过++3的吗

10.下面关于volatile的功能说法正确的是?

        A.原子性

        B.有序性

        C.可见性

        D.持久性

正确答案:BC

synchronized保证三大性,原子性,有序性,可见性,volatile保证有序性,可见性,不能保证原子性        


答案汇总:
1、正确答案:ABD
2、正确答案:ACD
3、正确答案:B
4、正确答案:A
5、正确答案:C
6、正确答案:A
7、正确答案:B
8、正确答案:B
9、正确答案:C
10、正确答案:BC

学习如同逆水行舟,不进则退!

每日进步一点点,水滴石穿!

可以订阅我的每日进步一点点专栏一起加油!!

看完如果让你进步了一点点,球球感谢给一个三连支持!!!

你可能感兴趣的:(每日进步一点点,java,蓝桥杯,后端,开发语言,javase)