zoukankan      html  css  js  c++  java
  • JAVASE_面试题集

    1:统计字符串中字符出现的次数。wordcount

    1. 获取一个字符串对象 
    2. 创建一个 Map 集合,键代表字符,值代表次数。 
    3. 遍历字符串得到每个字符。 
    4. 判断 Map 中是否有该键。 
    5. 如果没有,第一次出现,存储次数为 1;
    如果有,则说明已经出现过,获取到对应的值 进行++,再次存储。 
    6. 打印最终结果
    String str = "helloworld";
    HashMap<Character, Integer> hm = new HashMap<Character,Integer>();
    for (int i = 0; i <str.length(); i++) {
    char ch = str.charAt(i);
    if(!hm.containsKey(ch)) {
    hm.put(ch, 1);
    }else {
    hm.put(ch, hm.get(ch) + 1);
    }
    }
    System.out.println(hm);
    答案

    2:重载和重写的区别。

    (1)重载 overload
    在同一个类中。
    方法名(函数名)一样。
    参数不同。
    跟返回值和修饰符无关。
    (2)Override重写,复写,覆盖。
    子类中出现与父类一模一样的方法时
    (返回值类型,方法名和参数列表都相同)
    答案

    3:final关键字。

    修饰类,修饰方法,修饰变量的时候???
    final: 不可改变。
    * 可以用于修饰类、方法和变量。  
    * 类: 被修饰的类,不能被继承。  
    * 方法:被修饰的方法,不能被重写。  
    * 变量:被修饰的变量,不能被重新赋值。
    答案

    4:抽象类和接口的区别?

    1.    抽象类用abstract class修饰,用extends继承;
        接口用interface声明,用implements实现。
        
    2.    抽象类中可以有:常量、变量、构造方法、成员方法、抽象方法、静态成员;
        接口中可以有:常量、抽象方法、静态成员,默认方法,私有方法。
        
    3.    在一个继承体系中抽象类提取的是共性的属性和行为;
        接口承担着继承体系的扩展功能。    
    答案

    5:List和 Map区别?

    List 是存储单列数据的集合,Map 是存储键和值这样具有映射关系的双列数据的集合。
    List中存储的数据是有顺序,并且允许重复;
    Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的。
    答案

    6: HashMap和Hashtable的区别?

    HashMap此实现不是同步的。线程不安全,效率高。允许null键,允许null值。
    HashTable线程安全,效率低。不允许null键,不允许null值。
    View Code

    7:简述Map集合的特点?

    Map接口是一个双列集合的顶层接口。
    所有的元素都是成对出现的,一个键只能对应一个值,一个值可以对应多个键(key不可以重复,value可以重复)。
    所有键的返回集合是一个Set类型的集合,由Set集合保证键的唯一性。
    实现类集合的底层数据结构只和键相关。
    View Code

    8:简述Set集合的特点?

    Set无序,不可重复。
    View Code

    9:简述List接口的特点?

    List有序,可重复。
    View Code

    10:ArrayList和LinkedList的区别?

    ArrayList的底层数据结构是数组, 查询快 增删慢。
    LinkedList的底层数据结构是链表,查询慢 增删快。
    View Code

    11:写出四个Collection接口下的常用集合类?

    ArrayList
    LinnkedList
    HashSet
    TreeSet
    View Code

    判断题

    1    静态成员也叫类成员( )    对    1单元    易
    2    在Java中,所有类的根类是Object 。( )    对    1单元    易
    3    静态块里只能初始化静态的属性( )    对    2单元    中
    4    JAVA中静态属性既可以用类直接调用也可以用对象直接调用,访问的是同一个属性( )    对    2单元    易
    5    单例模式分为懒汉模式和饿汉模式( )    对    3单元    难
    6    定义接口的关键字是 interface,实现接口的关键字是implements。( )       对    4单元    易
    7    String和StringBuffer都是描述字符串的类,不同的是StringBuffer是可变的,String是不可变的( )    对    4单元    易
    8    一个try之后只能有一个catch(  )    错    5单元    难
    9    子类重写父类的方法,不能比父类方法抛出更多的异常(  )    对    5单元    中
    10    finally中的内容是如论如何都会执行的内容(  )    对    5单元    中
    11    NullPointerException是运行时异常(  )    对    5单元    难
    12    IndexOutOfBoundsException是非运行时异常(   )    错    5单元    难
    13    对于catch子句的排列,父类在先,子类在后 (   )    错    5单元    中
    14    自定义异常类也可以作为普通(业务)类使用 (  )    对    5单元    易
    15    静态内部类是局部内部类中的一种( )    错    5单元    难
    16    匿名内部类是局部内部类中的一种( )    对    5单元    中
    17    所有的枚举都继承自java.lang.Enum类。( )    对    5单元    易
    18    枚举类可以实现接口( )    对    5单元    易
    19    枚举类内可以有抽象方法( )    对    5单元    中
    20    java中默认会导入的是哪个包的类java.lang。( )    对    5单元    难
    21    "已知String对象 s=”hello”,运行语句
    “System.out.println(s.concat(“World!”));”后,s的值为hello1。( )  "    错    5单元    中
    22    使用+=将字符串s2添加到字符串s1后的语句是s1+=s2 。( )    对    5单元    中
    23    比较s1中的字符串和s2中的字符串的内容是否相等的表达式是:s1.equals(s2)  。( )    对    5单元    中
    24    String s1=“China”; int n=s1.length( ); n的值为6。( )    错    5单元    中
    25    已知sb为StringBuffer的一个实例,且sb=”abcde”,则sb.reverse()后sb的值为: edcba 。( )    对    5单元    中
    26    String中的substring方法作用是截取子串( )    对    5单元    中
    27    String和StringBuffer都是描述字符串的类,不同的是StringBuffer是可变的,String是不可变的( )    对    5单元    易
    28    System类在哪个包中 java.lang 。( )    对    5单元    中
    29    System类中in为标准输入。( )    对    5单元    中
    30    System类中out为标准输出。( )    对    5单元    中
    31    System类中err为标准错误输出。( )    对    5单元    中
    32    System类中exit()方法可以终止程序。( )    对    5单元    中
    33    toString方法最初定义在Object 类中。( )    对    6单元    易
    34    Object类中getClass方法可以获取类的。( )    对    6单元    易
    35    Object类中wait方法可以设置线程等待。( )    对    7单元    易
    36    Object类中notify方法可以唤醒线程等待。( )    对    7单元    易
    37    String类的toUpperCase()方法用来将字符串转成大写字符。( )    对    7单元    易
    38    已知String s= "This is a string",则s.indexOf("is")的值为  2 。( )    对    7单元    易
    39    已知String对象 s=”hello”,运行语句“System.out.println(s.concat(“World!”));”后,s的值为hello。( )    对    7单元    易
    40    使用+=将字符串s2添加到字符串s1后的语句是s1+=s2。( )    对    8单元    易
    41    比较s1中的字符串和s2中的字符串的内容是否相等的表达式是:s1.equals(s2)。( )    对    8单元    易
    42    已知sb为StringBuffer的一个实例,且sb=”abcde”,则sb.reverse()后sb的值为:edcba  。( )    对    9单元    易
    43    String s1=“China”; int n=s1.length( ); n的值为10。( )    错    9单元    易
    44    String s1=“China”; int n=s1.indexOf("hi"); n的值为1。( )    对    9单元    易
    45    String s1=“China”; int n=s1.lastIndexOf("hi"); n的值为-1。( )    错    9单元    易
    46    能够去除字符串两端空的方法是trim()。( )    对    9单元    易
    47    Math max方法可以返回两个数中较大的。( )    对    10单元    易
    48    Math min方法可以返回两个数中较小的。( )    对    10单元    难
    49    Math round方法可以进行4舍5入。( )    对    10单元    易
    50    Math random方法可以可以生成随机数。( )    对    11单元    中
    51    java除了使用Math的random可以获取随机数外还可以使用Random类。( )    对    11单元    易
    52    java中Calendar可以表示日期Date类也表示日期。( )    对    11单元    易
    53    java中Calendar可以表示日期Date类也表示日期。( )    对    11单元    易
    54    java中日历类为Calendar。( )    对    11单元    中
    55    Calendar类中DAY_OF_WEEK属性用于获取星期几。( )    对    12单元    中
    56    Calendar类中YEAR属性用于获取年份。( )    对    12单元    中
    57    Calendar类中DATE属性用于获取月中的某一天。( )    对    12单元    中
    58    String和StringBuffer都是描述字符串的类,不同的是StringBuffer是可变的,String是不可变的( )    对    13单元    中
    59    Calendar类中DAY_OF_WEEK_IN_MONTH属性用于获取月中的第几个星期。( )    对    13单元    中
    60    集合类的最上层接口是Collection。( )    对    13单元    中
    61    迭代器的类是Iterator。( )    对    13单元    难
    62    Iterator类中hashNext()方法用于判断下一个元素是否存在。( )    对    14单元    中
    63    Iterator类中next()方法用于获取迭代器中下一个元素。( )    对    14单元    易
    64    Set集合通过iterator()方法获取迭代器对象。( )    对    14单元    中
    65    集合类中用于添加元素的方法是add(只写方法名)。( )    对    14单元    中
    66    判断集合长度的方法是size。( )    对    14单元    中
    67    List集合中根据索引获取元素的方是get。( )    对    15单元    难
    68    "List集合中根据索引获移除元素的方是remove。( )
    "    对    15单元    中
    69    集合中用来判断集合是否是空集合的方法是isEmpty。( )    对    15单元    易
    70    移除Set集合中所有元素的方法是claer()。( )    对    16单元    中
    71    java.util包是默认会导入的包( )    错    16单元    中
    72    Collection的子接口有List,Set和Map( )    错    16单元    中
    73    Collections类实现自Collection接口( )    错    16单元    中
    74    Collection的实现类有HashMap( )    错    16单元    易
    75    Collections接口的子类拥有ArrayList、HashSet  (  )----Collection    错    17单元    中
    76    如果ArrayList的泛型类型是A类型,则A和其子类或实现类也可以放入集合中( )    对    17单元    难
    77    List接口中通过addFirst()方法向集合中第一个位置添加元素(   )    错    17单元    中
    78    "
    List接口中通过indexOf(Object obj)方法查找元素第一次出现的索引位置( )"    对    17单元    易
    79    List接口中实现类ArrayList是线程安全的(  )------------注意,此实现不是同步的    错    17单元    中
    80    List接口中实现类Vector 是线程不安全的(  )-----与新 collection 实现不同,Vector 是同步的。     错    17单元    中
    81    "Set集合中的key是不可以重复的(   )----因为map中的key是不允许重复的,所以set中的元素不能重复。
    一个不包含重复元素的 collection。 "    错    17单元    中
    82    用于存储键值对的接口是Map。( )    对    18单元    中
    83    HashMap中增加元素的方法是put。( )    对    18单元    中
    84    HashMap是jdk1.2版本出现集合框架时添加到类库中的,它的线程同步是不安全的,Hashtable是jdk1.0时就出现的比较古老的类,它的线程同步是安全的,这两个集合类,哪一个性能更高HashMap。( )    对    18单元    中
    85    Map接口中的size()方法用来返回集合的大小。( )    对    18单元    难
    86    Map接口的特点是元素是 key、value映射,其中value可以重复,key不可以重复。( )    对    18单元    中
    87    Map集合中put 方法表示放入一个键值对,如果键已存在则覆盖,如果键不存在则添加。( )    对    19单元    易
    88    get 方法表示获得key对应的value,get 方法的参数表示key,返回值表示value。( )    对    19单元    中
    89    要想获得Map 中所有的键,应该使用方法keySet,该方法返回值类型为Set<key>。( )    对    20单元    中
    90    remove 方法接受1个参数,表示key。( )    对    20单元    中
    91    要想获得Map 中所有的键值对的集合,应该使用方法entrySey,该方法返回一个Map.Entry<K,V>类型所组成的Set。( )    对    20单元    易
    92    Collections类中sort方法可以对集合进行排序。( )    对    20单元    易
    93    Collections类中replaceAll方法可以对集合进行替换。( )    对    20单元    易
    View Code







  • 相关阅读:
    匿名方法
    优化从 App.config 读取配置文件
    显示(explicit )与隐式(implicit)转换操作符
    ( 转 ) 聊一聊C#的Equals()和GetHashCode()方法
    协变和逆变
    html frameset的介绍
    html <frame>标签使用
    html <table>标签信息
    html 列表相关信息
    html <form>相关表单
  • 原文地址:https://www.cnblogs.com/haizinihao/p/14738139.html
Copyright © 2011-2022 走看看