JAVA专项练习(一)

 1.若有定义:byte[]x={11,22,33,﹣66};其中0≤k≤3,则对x数组元素错误的引用是()
         正确答案: C   你的答案: C (正确)


         A、 x[5-3]
         B、 x[k]
         C、 x[k+5]
         D、x[0]


        2.下列说法正确的是()
        正确答案: B   你的答案: B (正确)


       A、 在类方法中可用this来调用本类的类方法
       B、 在类方法中调用本类的类方法时可直接调用
       C、 在类方法中只能调用本类中的类方法
       D、 在类方法中绝对不能调用实例方法


       解析: 在类方法中不能有this关键字,直接调用类方法即可,A错误,B正确,在类方法中可以通过创建实例对象调用类的实例方法,C\D错误


      3.java语言的下面几种数组复制方法中,哪个效率最高?


      正确答案: B   你的答案: B (正确)


     A、for 循环逐一复制
     B、System.arraycopy
     C、Array.copyOf
     D、使用clone方法


     解析:效率:System.arraycopy > clone > System.copyOf > for循环


    4.下面不是面向对象的基本原则的是?
    正确答案: C   你的答案: C (正确)


    A、单一职责原则(Single-Resposibility Principle)
    B、开放封闭原则(Open-Closed principle)
    C 、抽象类原则(Abstract-Class principle)
    D、依赖倒置原则(Dependecy-Inversion Principle)
    E、接口隔离原则(Interface-Segregation Principle)
   解析:
   五个基本原则: 
单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。 
开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。 
Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。 
依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。 
接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口


       5.一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系?
          正确答案: D   你的答案: D (正确)


         A、表对应类
         B、记录对应对象
         C 、表的字段对应类的属性
         D、表之间的参考关系对应类之间的依赖关系


        解析:一般关系数据模型和对象数据模型之间有以下对应关系:表对应类,记录对应对象,表的字段对应类的属性


      6.以下程序执行的结果是:


          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();
                 }
         }
         正确答案: C   你的答案: C (正确)


         A. ZYXX
         B.ZYXY
        C. YXYZ
        D.XYZX


        解析:
        初始化过程: 
         1. 初始化父类中的静态成员变量和静态代码块 ; 
         2. 初始化子类中的静态成员变量和静态代码块 ; 
        3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;
        4.初始化子类的普通成员变量和代码块,再执行子类的构造方法; 
 
     (1)初始化父类的普通成员变量和代码块,执行  Y y=new Y();  输出Y 
     (2)再执行父类的构造方法;输出X
     (3) 初始化子类的普通成员变量和代码块,执行  Y y=new   Y();  输出Y 
     (4)再执行子类的构造方法;输出Z
      所以输出YXYZ
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值