zoukankan      html  css  js  c++  java
  • java牛客刷题2020年9月4日

    java牛客刷题2020年9月4日

    1. 对于abstract声明的类,下面说法正确的是

      可以实例化
      不可以被继承
      子类为abstract
      只能被继承
      可以被抽象类继承
      正确答案: E   你的答案: B
      A,抽象类不能实例化,因为有抽象方法未实现
      B,可以被继承。派生类可以实现抽象方法
      C,子类可以是抽象的,也可以非抽象的
      D,只能被继承说法太肯定,不正确
      E,可以被抽象类继承,也可以被非抽象类继承
      
    2. 有时为了避免某些未识别的异常抛给更高的上层应用,在某些接口实现中我们通常需要捕获编译运行期所有的异常, catch 下述哪个类的实例才能达到目的:()

      正确答案: B 你的答案: D (错误)

      Error
      Exception
      RuntimeException
      Throwable
      

      22222

      1. 检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。

        public class HelloB extends HelloA 
        {
         public HelloB()
         {
         }
         {
             System.out.println("I’m B class");
         }
         static
         {
             System.out.println("static B");
         }
         public static void main(String[] args)
         {
             new HelloB();
         }
        }
        class HelloA
        {
         public HelloA()
         {
         }
         {
             System.out.println("I’m A class");
         }
         static
         {
             System.out.println("static A");
         }
        }
        
        static A
        I’m A class
        static B
        I’m B class
        答案:
        其中涉及:静态初始化代码块、构造代码块、构造方法
        当涉及到继承时,按照如下顺序执行:
        1、执行父类的静态代码块
        static {
                System.out.println("static A");
            }
        输出:static A
        2、执行子类的静态代码块
        static {
                System.out.println("static B");
            }
        输出:static B
        3、执行父类的构造代码块
        {
                System.out.println("I’m A class");
            }
        输出:I'm A class
        4、执行父类的构造函数
        public HelloA() {
            }
        输出:无
        5、执行子类的构造代码块
        {
                System.out.println("I’m B class");
            }
        输出:I'm B class
        6、执行子类的构造函数
        public HelloB() {
            }
        输出:无
        
        那么,最后的输出为:
        static A
        static B
        I'm A class
        I'm B class
        正确答案:C
        
        
        
        或者:
        1.静态代码块 2.构造代码块3.构造方法的执行顺序是1>2>3;明白他们是干嘛的就理解了。
        1.静态代码块:是在类的加载过程的第三步初始化的时候进行的,主要目的是给类变量赋予初始值。
        2.构造代码块:是独立的,必须依附载体才能运行,Java会把构造代码块放到每种构造方法的前面,用于实例化一些共有的实例变量,减少代码量。
        3.构造方法:用于实例化变量。
        1是类级别的,2、3是实例级别的,自然1要优先23.
        在就明白一点:对子类得主动使用会导致对其父类得主动使用,所以尽管实例化的是子类,但也会导致父类的初始化和实例化,且优于子类执行。
        
      2. Java 中的集合类包括 ArrayList 、 LinkedList 、 HashMap 等,下列关于集合类描述正确的是?()

        正确答案: A B D 你的答案: B C D (错误)

        ArrayList和LinkedList均实现了List接口
        ArrayList访问速度比LinkedList快
        随机添加和删除元素时,ArrayList的表现更加快速
        HashMap实现Map接口,它允许任何类型的键和值对象,并允许将NULL用作键或值
        
        解释:
        A、HashMap实现了Map接口的,它的Key和Value都可以是null,但是Hashtable种,Key和Value都不能是null。
        B、ArrayList与LinkedList都实现了List接口,继承了AbstractList类。
        C、ArrayList底层是动态数组是实现,随机位置添加和删除,都需要移动数组的数据,而LinkedList底层是双向链表,只需要修改Node节点的引用。
        D、随机访问数组要比链表块。
        下面放一张ArrayList和LinkedList的区别表:
        

      3. 在使用super和this关键字时,以下描述错误的是()

        在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
        super()和this()不一定要放在构造方法内第一行
        this()和super()可以同时出现在一个构造函数中
        this()和super()可以在static环境中使用,包括static方法和static语句块
        正确答案: B C D   你的答案: B D (错误)
        1、super()表示调用父类构造函数、this()调用自己的构造函数,而自己的构造函数第一行要使用super()调用父类的构造函数,所以这俩不能在一个构造函数中会出现重复引用的情况
        2、super()和this()必须在构造函数第一行,所以这一点也表明他俩不能在一个构造函数中
        3、this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块(里面不能使用非static类型的)。
        
  • 相关阅读:
    接收xml请求流并解析字符串的例子
    通过style来控制隔行显示不同颜色 .
    显示有模式的有页面的弹出窗口 .
    WSDL生成服务端JAVA代码.bat
    web上下文监听器ServletContextListener 例子 .
    使用监听器:定时清除map缓存的key value .
    Timer和TimerTask类 例子 .
    常用的正则表达式
    算法找出数组中出现次数超过一半的数
    C++讨厌的临时变量什么时候产生
  • 原文地址:https://www.cnblogs.com/chenyameng/p/13612644.html
Copyright © 2011-2022 走看看