• 2020-3-2 牛客试题复盘


    1、有关线程的叙述正确的是(B)

    A、可以获得对任何对象的互斥锁定。
    B、通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定。
    C、线程通过使用synchronized关键字可获得对象的互斥锁定。
    D、线程的创建只能通过继承Thread类来实现。

    解析:

    互斥锁指的是只有一个线程可以访问该对象。
    通过继承Thread类或实现Runnable接口,只是创建线程的两种方式。
     
     
    2、以下程序的运行结果是:(  C  )
    TreeSet<Integer> set = new TreeSet<Integer>();
     TreeSet<Integer> subSet = new TreeSet<Integer>();
     for(int i=606;i<613;i++){
     if(i%2==0){
     set.add(i);
     }
     }
     subSet = (TreeSet)set.subSet(608,true,611,true);
     set.add(629);
     System.out.println(set+" "+subSet);
     
    A、编译失败
    B、发生运行时异常
    C、[606, 608, 610, 612, 629] [608, 610]
    D、[606, 608, 610, 612, 629] [608, 610,629]
    解析:
    去翻了API=======subset(form,true,to,true)是Treeset的非静态方法,该方法返回从form元素到to元素的一个set集合,两个boolean类型是确认是否包含边境值用的。
     
     
    3、关于下面的程序Test.java说法正确的是( D   )。
    public class Test {
        static String x="1";
        static int y=1;
        public static void main(String args[]) {
            static int z=2;
            System.out.println(x+y+z);
        }
    }

     

    A、3
    B、112
    C、13
    D、程序有编译错误
    解析:
    被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量。
     
     
    4、String s = new String("xyz");创建了几个StringObject? A
    A、两个或一个都有可能
    B、两个
    C、一个
    D、三个
    解析:
    1.String对象的两种创建方式:
    第一种方式: String str1 = "aaa"; 是在常量池中获取对象("aaa" 属于字符串字面量,因此编译时期会在常量池中创建一个字符串对象),
    第二种方式: String str2 = new String("aaa") ; 一共会创建两个字符串对象一个在堆中,一个在常量池中(前提是常量池中还没有 "aaa" 字符串对象)。
     
     
    5、对 Map 的用法,正确的有:  CD
    A、new java.util.Map().put("key" , "value") ;
    B、new java.util.SortedMap().put("key" , "value") ;
    C、new java.util.HashMap().put( null , null ) ;
    D、new java.util.TreeMap().put( 0 , null ) ;
    解析:
    选C、D。考察的是Map接口实现类的创建对象以及对象类型包含的方法。
    A选项Map属于接口类型,不可以new的方式创建对象。所以A错误。
    B选项SortedMap属于接口类型,不可以new的方式创建对象。所以B错误。
    C选项HashMap基于哈希表实现Map接口的类,并允许null的值和null键。
    D选项TreeMap通过红黑树实现Map接口的类,key不可以为null,会报NullPointerException异常,value可以为null。
     
     
     
    6、下面代码的输出结果是什么?  D
    public class ZeroTest {
        public static void main(String[] args) {
         try{
           int i = 100 0;
           System.out.print(i);
      }catch(Exception e){
           System.out.print(1);
           throw new RuntimeException();
      }finally{
           System.out.print(2);
      }
          System.out.print(3);
     }
     }
     
    A、3
    B、123
    C、1
    D、12
    解析:
    1、inti = 100/ 0; 会出现异常,会抛出异常,System.out.print(i)不会执行,
    2、catch捕捉异常,继续执行System.out.print(1);
    3、当执行 thrownewRuntimeException();  又会抛出异常,这时,除了会执行finally中的代码,其他地方的代码都不会执行
     
     
    7、下列不属于算法结构的是(C)
    A、输入数据
    B、处理数据
    C、存储数据
    D、输出结果
     
     
    8、下面字段声明中哪一个在interface主体内是合法的? (B)
    A、private final static int answer = 42;
    B、public static int answer = 42;
    C、final static answer = 42;
    D、int answer;
    解析:
    在接口中,属性都是默认public static final修饰的,所以:
        A(错误):不能用private修饰;
        B(正确):在接口中,属性默认public static final,这三个关键字可以省略;
        C(错误):没写属性的类型;
        D(错误):final修饰的属性必须赋值;
     
     
    9、Which method you define as the starting point of new thread in a class from which n thread can be execution?
    A、public void start()
    B、public void run()
    C、public void int()
    D、public static void main(String args[])
    E、public void runnable()
    解析:
    要写一个线程类,可以继承Thread方法,然后override他的run()方法
    另一种方法是实现Runable接口,即为实现run()方法。
    A,start()是启动一个线程的方法
     
     
    10、阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有(A)
    package NowCoder;
    class Test {
        public static void hello() {
            System.out.println("hello");
        }
    }
    public class MyApplication {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Test test=null;
            test.hello();
        }
    }

     

    A、能编译通过,并正确运行
    B、因为使用了未初始化的变量,所以不能编译通过
    C、以错误的方式访问了静态方法
    D、能编译通过,但因变量为null,不能正常运行
    解析:

     因为Test类的hello方法是静态的,所以是属于类的,当实例化该类的时候,静态会被优先加载而且只加载一次,所以不受实例化new Test();影响,只要是使用到了Test类,都会加载静态hello方法!
    另外,在其他类的静态方法中也是可以调用公开的静态方法,此题hello方法是使用public修饰的所以在MyApplication中调用hello也是可以的。
    总结:即使Test test=null;这里也会加载静态方法,所以test数据中包含Test类的初始化数据。(静态的,构造的,成员属性)
            因此test.hello是会调用到hello方法的。
    附上运行图:

     
     
    11、下列哪些操作会使线程释放锁资源?
    A、sleep()
    B、wait()
    C、join()
    D、yield()
     
     
    12、在使用super和this关键字时,以下描述错误的是(BCD)
    A、在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
    B、super()和this()不一定要放在构造方法内第一行
    C、this()和super()可以同时出现在一个构造函数中
    D、this()和super()可以在static环境中使用,包括static方法和static语句块
    解析:
    super和this都只能位于构造器的第一行,而且不能同时使用,这是因为会造成初始化两次,this用于调用重载的构造器,super用于调用父类被子类重写的方法。
     
     
    13、当编译并运行下面程序时会发生什么结果(D )
    public class Bground extends Thread{
        public static void main(String argv[]){
            Bground b = new Bground();
            b.run();
        }
        public void start(){
            for(int i=0;i<10;i++){
                System.out.println("Value of i = "+i);
            }
        }
    }
    A、编译错误,指明run方法没有定义
    B、运行错误,只鞥呢run方法没有定义
    C、编译通过并输出0到9
    D、编译通过,但无输出
    解析:
    对于线程而言,start是让线程从new变成runnable。run方法才是执行体的入口。
    但是在Thread中,run方法是个空方法,没有具体实现。
    Bground继承了Thread,但是没有重写run方法,那么调用run方法肯定是无输出。
     
     
    14、ArrayList list = new ArrayList(20);中的list扩充几次   A
    A、0
    B、1
    C、2
    D、3
    解析:
    Arraylist默认数组大小是10,扩容后的大小是扩容前的1.5倍。
    本题在创建时直接分配了数组的大小,没有扩充。
     
     
    15、以下 json 格式数据,错误的是   AC
    A、{company:4399}
    B、{"company":{"name":[4399,4399,4399]}}
    C、{[4399,4399,4399]}
    D、{"company":[4399,4399,4399]}
    E、{"company":{"name":4399}}
    解析:
    A:错误  {company:4399} 首先,其为json对象。但json对象要求属性必须加双引号。
    C:错误  {[4399,4399,4399]} 。使用 {} 则为json对象。json对象必须由一组有序的键值对组成。
     
     
     
     
     
  • 相关阅读:
    久未更 ~ 四之 —— Vsftpd出现 Failed to start Vsftpd ftp daemon错误
    久未更 ~ 三之 —— CardView简单记录
    久未更 ~ 二之 —— TextView 文字省略
    久未更 ~ 一之 —— 关于ToolBar
    【UVA1636】决斗Headshot
    【NOIP模拟】花园
    【UVA1262】Password
    【UVA10820】交表
    【UVA1635】哑元
    【UVA12716】GCD和XOR
  • 原文地址:https://www.cnblogs.com/buhuiflydepig/p/12394967.html
Copyright © 2020-2023  润新知