zoukankan      html  css  js  c++  java
  • 面试题 —— 面向对象

    1. 举一个内部类的实例(jdk 中)

    • java Collection 容器的 iterator() 成员函数的实现,比如 ArrayList 内部的 iterator 的实现:

      public class ArrayList<E> {
      
          public Iterator<E> iterator() {
              return new Itr();
          }
          // 实现了 Iterator 接口的内部类
          private class Itr implements Iterator<E> {
              public boolean hasNext() {
                  return cursor != size;
              }
              public E next() {
                  ...
              }    
          }
      }
    • Arrays.asList

      public class Arrays {
          public static <T> List<T> asList(T... a) {
              return new ArrayList<>(a);
          }
          // 这里的 ArrayList 是内部类,未重写 AbstractList 的 add 等会修改内部状态的方法,
          // Arrays.asList 返回的内部类实例,仅用来显示和查看,而不能修改;
          private static class ArrayList<E> extends AbstractList<E> {
      
          }    
      }

      AbstractList 的 add 方法为:

          public void add(int index, E element) {
              throw new UnsupportedOperationException();
          }

      因此 Arrays.asList() 返回得到的内部类实例,仅用来显示和查看,而不能修改;

  • 相关阅读:
    ubuntu18.04管理redis
    Mac Vmware虚拟机重启后没有网络
    记Spark写数据到Elasticsearch的报错
    Spark基础和RDD
    PHP日期处理
    集群命令
    hadoop集群时间同步
    HBase读写流程
    Flume简介
    Linux 常用快捷键
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9420935.html
Copyright © 2011-2022 走看看