• java易错笔试题含答案一


    1、以下代码将打印出

     public static void main (String[] args) { 
        String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";
        System.out.println(classFile);
    }
    
    • 1
    • 2
    • 3
    • 4

    正确答案: C
    com. jd
    com/jd/MyClass.class
    ///MyClass.class
    com.jd.MyClass

    选C
    由于replaceAll方法的第一个参数是一个正则表达式,而".“在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成”/“。如果想替换的只是”.“,那么久要写成”\.".

    2、以下哪几个是java中的集合类型?
    正确答案: A B D
    Vector
    Set
    String
    List

    String为引用数据类型

    3、下列哪些操作会使线程释放锁资源?
    正确答案: B C
    sleep()
    wait()
    join()
    yield()

    1.sleep会使当前线程睡眠指定时间,不释放锁
    2.yield会使当前线程重回到可执行状态,等待cpu的调度,不释放锁
    3.wait会使当前线程回到线程池中等待,释放锁,当被其他线程使用notify,notifyAll唤醒时进入可执行状态
    4.当前线程调用 某线程.join()时会使当前线程等待某线程执行完毕再结束,底层调用了wait,释放锁

    4、下列关于包(package)的描述,正确的是()

    正确答案: D
    包(package)是Java中描述操作系统对多个源代码文件组织的一种方式。
    import语句将所对应的Java源文件拷贝到此处执行。
    包(package)是Eclipse组织Java项目特有的一种方式。
    定义在同一个包(package)内的类可以不经过import而直接相互使用。

    1、为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。Java中的包一般均包含相关的类,java是跨平台的,所以java中的包和操作系统没有任何关系,java的包是用来组织文件的一种虚拟文件系统。A错
    2、import语句并没有将对应的java源文件拷贝到此处仅仅是引入,告诉编译器有使用外部文件,编译的时候要去读取这个外部文件。B错
    3、Java提供的包机制与IDE没有关系。C错 4、定义在同一个包(package)内的类可以不经过import而直接相互使用。

    5、下面哪一项不是加载驱动程序的方法?
    正确答案: A
    通过DriverManager.getConnection方法加载
    调用方法 Class.forName
    通过添加系统的jdbc.drivers属性
    通过registerDriver方法注册

    答案:A DriverManager.getConnection方法返回一个Connection对象,这是加载驱动之后才能进行的

    6、
    java中 String str = "hello world"下列语句错误的是?
    正确答案: A B C
    str+=’ a’
    int strlen = str.length
    str=100
    str=str+100

    A. ‘a’是字符,’ a’这个是空格和a,必须要用" a"才可以;
    B.String有length()方法
    C.int 无法直接转成String类型
    D.尾部添加字符串”100“

    7、以下程序执行的结果是:

    class X{
        Y y=new Y();
        public X(){
            System.out.print("X");
        }
    }
    class Y{
        public Y(){
            System.out.print("Y");
        }
    }
    public class Z extends X{
        Y y=new Y();
        public Z(){
            System.out.print("Z");
        }
        public static void main(String[] args) {
            new Z();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    正确答案: C 你的答案: C (正确)
    ZYXX
    ZYXY
    YXYZ
    XYZX

    答案C 初始化过程

    1. 初始化父类中的静态成员变量和静态代码块 ;
    2. 初始化子类中的静态成员变量和静态代码块 ;
      3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;
      4.初始化子类的普通成员变量和代码块,再执行子类的构造方法;
      (1)初始化父类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y (2)再执行父类的构造方法;输出X (3) 初始化子类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y
      (4)再执行子类的构造方法;输出Z 所以输出YXYZ**

    8、下面有关JSP内置对象的描述,说法错误的是?
    正确答案: C
    session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止

    request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应

    application对象:多个application对象实现了用户间数据的共享,可存放全局变量

    response对象:response对象包含了响应客户请求的有关信息

    application服务器就创建了一个,C选项后面错误了,不是多个

    9、Which statement declares a variable a which is suitable for referring to an array of 50 string objects?
    下面哪个Java语句声明了一个适合于创建50个字符串对象数组的变量?
    正确答案: B C F
    char a[][];
    String a[];
    String[] a;
    Object a[50];
    String a[50];
    Object a[];

    BCF 在java 中,声明一个数组时,不能直接限定数组长度,只有在创建实例化对象时,才能对给定数组长度.。
    如下,1,2,3可以通过编译,4,5不行。而String是Object的子类,所以上述BCF均可定义一个存放50个String类型对象的数组。

    1. String a[]=new String[50];
    2. String b[];
    3. char c[];
    4. String d[50];
    5. char e[50];

    10、Which lines of the following will produce an error?

    byte a1 = 2, a2 = 4, a3;
    short s = 16;
    a2 = s;
    a3 = a1 * a2;

    正确答案: A
    Line 3 and Line 4
    Line 1 only
    Line 3 only
    Line 4 only

    答案:A short类型转为byte类型出错
    a1*a2结果为int类型,转为byte类型出错

    11、有如下一段代码,请选择其运行结果()

    public class StringDemo{
      private static final String MESSAGE="taobao";
      public static void main(String [] args) {
        String a ="tao"+"bao";
        String b="tao";
        String c="bao";
        System.out.println(a==MESSAGE);
        System.out.println((b+c)==MESSAGE);
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    正确答案: C
    true true
    false false
    true false
    false true

    答案:C 要注意两个问题: 1,字符串在java中存储在字符串常量区中
    2,判断的是对象引用是否是同一个引用,判断字符串相等要用equals方法 首先判断aMESSAGE
    同一份字符串常量在内存中只有一份,因此是同一地址,返回true 再次比较(b+c)==MESSAGE 这相当于 new
    String(b+c)==MESSAGE 这里new了一个String对象,所以返回false

    12、下面关于面向对象的一些理解哪些是错误的( )
    正确答案: C
    面向对象的最重要的特性是支持继承、封装和多态

    系统设计应该遵循开闭原则,系统应该稳定不可修改,但应支持通过继承、组合等方式进行扩展

    函数式的语言必然是面向对象的语言

    面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
    过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装

    Java和C++都是静态类型的面向对象编程语言

    13、在Java中,对于不再使用的内存资源,如调用完成的方法,“垃圾回收器”会自动将其释放。( )

    正确答案: B
    正确
    错误

    方法调用时,会创建栈帧在栈中,调用完是程序自动出栈释放,而不是gc释放

    14、以下语句返回值为 true 的是()
    在这里插入图片描述

    正确答案: A B

    选A,B. Integer a1 = 17; 语句执行的是valueOf()方法 public static Integer
    valueOf(int i) { if (i >= IntegerCache.low && i <= IntegerCache.high)
    return IntegerCache.***[i + (-IntegerCache.low)]; return new
    Integer(i); } 对于-128到127之间的数, Integer直接从数组中取, 故a1, a2指向的是同一个对象, A正确.
    其余都是new出来的对象, 显然地址都不相同. int类型与Integer类型比较时, 先将Integer拆箱, 再比较值, 故B正确.

    15、下面的Java赋值语句哪些是有错误的 ()
    正确答案: B F
    int i =1000;
    float f = 45.0;
    char s = ‘\u0639’;
    Object o = ‘f’;
    String s = “hello,world\0”;
    Double d = 100;

    b:小数如果不加 f 后缀,默认是double类型。double转成float向下转换,意味着精度丢失,所以要进行强制类型转换。
    c:是使用unicode表示的字符。 d:‘f’ 字符会自动装箱成包装类,就可以向上转型成Object了。
    f:整数默认是int类型,int类型不能转型为Double,最多通过自动装箱变为Integer但是Integer与Double没有继承关系,也没法进行转型。

  • 相关阅读:
    PYTHON蓝桥杯——每日一练(简单题)
    Android 10.0 系统禁用深色主题背景功能
    父组件调用子组件中的方法(vue2)
    前端面试题
    MySQL - 全表分组后,获取组内排序首条数据信息
    功能测试(四)—— web项目购物车模块测试与网络知识
    【ROS】给ROS小车加点Active SLAM的调料
    Transformer - Attention Is All You Need - 跟李沐学AI
    FasterViT:英伟达提出分层注意力,构造高吞吐CNN-ViT混合网络 | ICLR 2024
    VSCode Java 开发配置
  • 原文地址:https://blog.csdn.net/wangyuwe/article/details/126209584