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值。
7:简述Map集合的特点?
Map接口是一个双列集合的顶层接口。
所有的元素都是成对出现的,一个键只能对应一个值,一个值可以对应多个键(key不可以重复,value可以重复)。
所有键的返回集合是一个Set类型的集合,由Set集合保证键的唯一性。
实现类集合的底层数据结构只和键相关。
8:简述Set集合的特点?
Set无序,不可重复。
9:简述List接口的特点?
List有序,可重复。
10:ArrayList和LinkedList的区别?
ArrayList的底层数据结构是数组, 查询快 增删慢。
LinkedList的底层数据结构是链表,查询慢 增删快。
11:写出四个Collection接口下的常用集合类?
ArrayList
LinnkedList
HashSet
TreeSet
判断题
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单元 易