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

 

 





 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

posted @ 2021-05-07 10:34  I_PENCIL  阅读(105)  评论(0编辑  收藏  举报