20220507JAVASE1阶段试

这是一份Java基础知识的测试题目,涵盖了异常处理、事务管理、字符编码、垃圾回收、访问修饰符、数据类型、集合框架、多线程、反射、数据库操作等多个方面。题目涉及选择题、填空题和简答题,全面考察了Java开发者的基础知识和理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、单选题


1. 在异常处理中,以下描述不正确的有
A、 try块不可以省略
B、 可以使用多重catch块
C、 finally块可以省略
D、 catch块和finally块可以同时省略
参考答案:D        try不能单独使用,必须加catch和finally其中一个
2. 事务隔离级别是由谁实现的?
A、 Java应用程序
B、 Hibernate
C、 数据库系统
D、 JDBC驱动程序
参考答案:C        

3. 语句:char foo='中',是否正确?(假设源文件以GB2312编码存储,并且以javac – encoding GB2312命令编译)
A、 正确
B、 错误
参考答案:A

Java语言中,中文字符所占的字节数取决于字符的编码方式

一般情况下,采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;采用GB2312或GBK编码方式时,一个中文字符占2个字节;

而采用UTF-8编码方式时,一个中文字符会占3个字节。

java中,char和byte都是基础数据类型,其中的byte和C++中的char类型是一样的,8位,1个字节,-128-127。但是,char类型,是16位,2个字节, '\u0000'-'\uFFFF'。

为什么java里的char是2个字节?

因为java内部都是用unicode的,所以java其实是支持中文变量名的,比如string 世界 = "我的世界";这样的语句是可以通过的。

综上,java中采用GB2312或GBK编码方式时,一个中文字符占2个字节,而char是2个字节,所以是对的

4. 以下哪项陈述是正确的?
A、 垃圾回收线程的优先级很高,以保证不再使用的内存将被及时回收
B、 垃圾收集允许程序开发者明确指定释放哪一个对象
C、 垃圾回收机制保证了JAVA程序不会出现内存溢出
D、 进入”Dead”状态的线程将被垃圾回收器回收
E、 以上都不对
参考答案:E 

  • 垃圾回收线程属于守护线程,只有所有用户线程都结束运行,才会随jvm一起结束, 优先级很低
  • 垃圾收集器(GC)程序开发者只能推荐JVM进行回收,但何时回收,回收哪些,程序员不能控制。
  • 垃圾回收机制只是回收不再使用的JVM内存,如果程序有严重BUG,照样内存溢出。
  • 进入DEAD的线程,它还可以恢复,GC不会回收

5. 下列哪个对访问修饰符作用范围由大到小排列是正确的?()
A、 public>protected>default>private
B、 public>default>protected>private
C、 private>protected>default>public
D、 private>default>protected>public
参考答案:A

6. 下列符号中可以在 java 程序里表示单行注释的是( )
A、 --
B、 /* ……*/
C、 //
D、 /** ……*/
参考答案:C 

  • -- sql注释
  • /* ……*/  块注释
  • //单行注释
  • /**……*/ 文档注释

7. Java 语言中创建一个对象使用的关键字是()
A、 class
B、 interface
C、 new
D、 create
参考答案:C

8. 下面关于 new 关键字的表述错误的是()
A、 new关键字在生成一个对象时会为对象开辟内存空间
B、 new关键字在生成一个对象时会调用类的构造方法
C、 new关键字在生成一个对象时会将生成的对象的地址返回
D、 Java中只能通过new关键字来生成一个对象
参考答案:D

生成一个对象:

  • new
  • 反序列化
  • 反射
  • 克隆

9. 有这样一段程序
public class Test{ 
    public static void main(String [] args){ 
        List list=new ArrayList(); 
        list.add("a");
        list.add("b");
        list.add("a");
        Set set=new HashSet(); 
        set.add("a"); 
        set.add("b"); 
        set.add("a"); 
       System.out.println(list.size()+","+set.size()); 
    } 
}
请问运行主要的程序会打印出的是什么()
A、 2,2
B、 2,3
C、 3,2
D、 3,3
参考答案:C

  • list可重复,size为3
  • set会去重,size为2

10. 当你编译和运行下面的代码时,会出现下面选项中的哪种情况?( )
public class Pvf{
    static boolean Paddy;
    public static void main(String args[]){
        System.out.println(Paddy);
    }
}
A、 编译时错误
B、 编译通过并输出结果false
C、 编译通过并输出结果true
D、 编译通过并输出结果null
参考答案:B

static boolean Paddy; //成员变量,有默认值  false

11. 给定以下JAVA代码,这段代码运行后输出的结果是()
public class Test

    public static int aMethod(int i)throws Exception
    {
        try{
            return i/10;
        }
        catch (Exception ex)
        {
            throw new Exception("exception in a aMethod");
        }finally{
      System.out.printf("finally");
        }

    public static void main(String[] args){
        try
        {
            aMethod(0);
        }
        catch (Exception ex)
        {
            System.out.printf("exception in main");
        }
       System.out.printf("finished");
    }
}

A、 exception in main finished
B、 finallyfinished
C、 exception in main finally
D、 finally exception in main finally
参考答案:B

0/10永远不会出错,10/0会出异常

12. 假设 A 类有如下定义,设 a 是 A 类同一个包下的一个实例,下列语句调用哪个是错误的?()
class A{
    int i;
    static String  s;
    void method1() {   }
    static void  method2()  {   }
}
A、 System.out.println(a.i);
B、 a.method1();
C、 A.method1();
D、 A.method2()
参考答案:C

method1不是静态的,不能用类名A调用。

13. 关于如下程序的描述哪个是正确的?( )
public class Person{
    static int arr[] = new int[5];
    public static void main(String a[]){
        System.out.println(arr[0]);
    }
}
A、 编译将产生错误
B、 编译时正确,但运行时将产生错误
C、 正确,输出0
D、 正确,输出 null
参考答案:C

  • 基本类型,默认0;本题数组为int类型
  • 引用类型,默认null

14. 执行下列代码的输出结果是( )

public class Demo {
    public static void main(String args[]) {
        int num = 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值