zoukankan      html  css  js  c++  java
  • 错题0913-java

    1.下列选项中关于Java中super关键字的说法正确的是()
    A.super关键字是在子类对象内部指代其父类对象的引用
    B.super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
    C.子类通过super关键字只能调用父类的方法,而不能调用父类的属性
    D.子类通过super关键字只能调用父类的属性,而不能调用父类的方法


    答案:A。
    解析:
    super是父类标识符,是子类对象内部指代父类对象的引用
    super只可以指代子类的父类,不能指代父类的父类
    可以通过super.xx来获取父类的变量(属性)
    可以通过super.xx()来访问父类的方法
     






    2.
    多个线程可同时操作一个数据,为了保证该数据的准确性,可将操作该数据的部分改为()
    A:同步
    B:异步
    C;只读
    D:只写
    答案:A。
    解析:

    1. 并发:在 操作系统 中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个 处理机 上运行。其中两种并发关系分别是同步和互斥
    2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。
    3. 同步: 进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步关系的一组并发进程相互发送的信息称为消息或事件。
    其中并发又有伪并发和真并发,伪并发是指单核处理器的并发,真并发是指多核处理器的并发。
    4. 并行:在单处理器中多道程序设计系统中,进程被交替执行,表现出一种并发的外部特种;在多处理器系统中,进程不仅可以交替执行,而且可以重叠执行。在多处 理器上的程序才可实现并行处理。从而可知,并行是针对多处理器而言的。并行是同时发生的多个并发事件,具有并发的含义,但并发不一定并行,也亦是说并发事 件之间不一定要同一时刻发生。

    5. 多线程:多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码。多线程可以实现线程间的切换执行。

    6. 异步:异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待、协调运行。异步就是彼此独立,在等待某事件的过程中继续做自己的事,不 需要等待这一事件完成后再工作。线程就是实现异步的一个方式。异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。
       异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。实现异步可以采用多线程技术或则交给另外的进程来处理。


     
     
     
     
     
    3.下面有关java内存模型的描述,说法错误的是?
     
    A.JMM通过控制主内存与每个线程的本地内存之间的交互,来为java程序员提供内存可见性保证
    B.“synchronized” — 保证在块开始时都同步主内存的值到工作内存,而块结束时将变量同步回主内存
    C.“volatile” — 保证修饰后在对变量读写前都会与主内存更新。
    D.如果在一个线程构造了一个不可变对象之后(对象仅包含final字段),就可以保证了这个对象被其他线程正确的查看

    解析:
    Java线程之间的通信由Java内存模型(简称为JMM)控制,JMM决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存,写缓冲区,寄存器以及其他的硬件和编译器优化

    volatile变量的写-读可以实现线程之间的通信。

    从内存语义的角度来说,volatile与监视器锁有相同的效果:volatile写和监视器的释放有相同的内存语义;volatile读与监视器的获取有相同的内存语义。

     
     
     
     
     
     
    4.
    已知如下类定义:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Base {  
     public Base (){ 
     //... 
     }  
     public Base ( int m ){ 
     //... 
     }  
     public void fun( int n ){ 
     //... 
     
    }  
    public class Child extends Base{  
     // member methods  
    }  
    如下哪句可以正确地加入子类中?

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

    A.private void fun( int n ){ //...}
    B.void fun ( int n ){ //... }
    C.protected void fun ( int n ) { //... }
    D.public void fun ( int n ) { //... }

    解析:
    方法的重写(override)两同两小一大原则
    方法名相同,参数类型相同
    子类返回类型小于等于父类方法返回类型,
    子类抛出异常小于等于父类方法抛出异常,
    子类访问权限大于等于父类方法访问权限。
  • 相关阅读:
    Freemaker Replace函数的正则表达式运用
    [Android]使用Spring for Android改善数据交互流程
    [Freemarker]自定义时间戳函数
    [jquery.validate]自定义方法实现"手机号码或者固定电话"的逻辑验证
    [Javascript]网页链接加上时间戳防止串用户
    支付系统设计
    java设计模式-抽象工厂模式
    IDEA解决maven多module出现多root的问题
    java设计模式-工厂方法模式
    java设计模式-单例模式
  • 原文地址:https://www.cnblogs.com/shenxiaoquan/p/5869646.html
Copyright © 2011-2022 走看看