• 2.8Java专项测试复盘


    • 以下哪个类包含方法flush()?()
      A.InputStream
      B.OutputStream
      C.A 和B 选项都包含
      D.A 和B 选项都不包含
      解析:flush()函数强制将缓冲区中的字符流、字节流等输出,目的是如果输出流输出到缓冲区完成后,缓冲区并没有填满,那么缓冲区将会一直等待被填满。所以在关闭输出流之前要调用flush()。
      答案:B

    • static String str0="0123456789";
      static String str1="0123456789";
      String str2=str1.substring(5);
      String str3=new String(str2);
      String str4=new String(str3.toCharArray());
      str0=null;

      假定str0,...,str4后序代码都是只读引用。
      Java 7中,以上述代码为基础,在发生过一次FullGC后,上述代码在Heap空间(不包括PermGen)保留的字符数为()
      A. 5        B.10            C.15               D.20
      解析:
      这是一个关于java的垃圾回收机制的题目。垃圾回收主要针对的是堆区的回收,因为栈区的内存是随着线程而释放的。堆区分为三个区:年轻代(Young Generation)、年老代(Old Generation)、永久代(Permanent Generation,也就是方法区)。

      年轻代:对象被创建时(new)的对象通常被放在Young(除了一些占据内存比较大的对象),经过一定的Minor GC(针对年轻代的内存回收)还活着的对象会被移动到年老代(一些具体的移动细节省略)。
      年老代:就是上述年轻代移动过来的和一些比较大的对象。Minor GC(FullGC)是针对年老代的回收。
      永久代:存储的是final常量,static变量,常量池。
      str3,str4都是直接new的对象,而substring的源代码其实也是new一个string对象返回。
      经过fullgc之后,年老区的内存回收,则年轻区的占了15个,不算PermGen。所以答案选C

      答案:C

    • 以下程序的输出结果为
      class Base{
          public Base(String s){
              System.out.print("B");
          }
      }
      public class Derived extends Base{
          public Derived (String s) {
              System.out.print("D");
          }
          public static void main(String[] args){
              new Derived("C");
          }
      }
      A.BD                              B.DB                             C.C                     D.编译错误
      解析:在调用子类构造器之前,会先调用父类构造器,当子类构造器中没有使用"super(参数或无参数)"指定调用父类构造器时,是默认调用父类的无参构造器,如果父类中包含有参构造器,却没有无参构造器,则在子类构造器中一定要使用“super(参数)”指定调用父类的有参构造器,不然就会报错。
      答案:D

    • java中将ISO8859-1字符串转成GB2312编码,语句为 ?  
      A.new String("ISO8859-1".getBytes("ISO8859-1"),"GB2312")
      B.new String(String.getBytes("GB2312"), ISO8859-1)
      C.new String(String.getBytes("ISO8859-1"))
      D.new String(String.getBytes("GB2312"))
      解析:JAVA有一个public String(byte bytes[], Charset charset)函数可以用指定字节数组和编码来构造字符串。一个public byte[] getBytes(Charset charset)函数把字符串按指定编码来得到字节数组。可以用这两个函数来实现编码转换。选A
      答案:A

    • 有关线程的叙述正确的是()
      A.可以获得对任何对象的互斥锁定
      B.通过继承Thread类或实现Runnable接口,可以获得对类中方法的互斥锁定
      C.线程通过使用synchronized关键字可获得对象的互斥锁定
      D.线程调度算法是平台独立的
      解析:
      1.线程通过调用对象的synchronized方法可获得对象的互斥锁定。
      2. 线程调度算法是平台 独立的。
      3. 通过继承Thread类或实现Runnable接口来创建线程。
      线程调度分为协同式调度和抢占式调度,Java使用的是抢占式调度,也就是每个线程将由操作系统来分配执行时间,线程的切换不由线程本身来决定(协同式调度)。这就是平台 独立的原因。
      答案:CD

    • 关于虚函数,下面哪些描述是正确的 (        )

      A.虚函数是实现方法重载的工具
      B.Java中所有的函数都是虚函数
      C.通过虚函数,类体系获得了多态性支持
      D.虚函数必须在子类中实现
      E.虚函数不能够被子类继承
      F.在C++中,基类的析构函数建议为虚析构函数

      答案:DF

     

  • 相关阅读:
    洛谷 P1823 音乐会的等待
    [The Diary] 10.30 Monday
    洛谷 P1094 纪念品分组
    codevs 1258 关路灯
    NOIP 2012 国王游戏(60分)
    bzoj3745 [COCI2015]Norma
    CF1110E Magic Stones
    bzoj4237 稻草人
    bzoj2653 middle
    单调队列与斜率优化杂题
  • 原文地址:https://www.cnblogs.com/l999q/p/12285669.html
Copyright © 2020-2023  润新知