Java 核心类库 练习
Posted Mr.Meeseeks
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 核心类库 练习相关的知识,希望对你有一定的参考价值。
1. 下面代码的输出结果是什么?
String s1 = "abc"; // 表示在栈区中申请一块内存,赋给s1; s1指向常量池中的"abc"
String s2 = new String("abc"); // 表示在栈区中申请一块内存,赋给s2;在堆区中申请一块内存,内容为"abc"; s2指向堆区内存
s2 = s2.intern();
System.out.println(s1 == s2);
备注: intern() - 返回 常量池中 字符串对象 的 引用
也就是,去常量池中,寻找与s2内容相同的 字符串对象, 并返回
答: true.
s2.intern()返回了常量池中的"abc"对象
2. String 是线程安全的吗?
答: 安全
因为String对象是被final修饰的,不可改变
3. 为什么在使用HashMap的时候总是使用String类作为key的类型?
答: String类的对象不可变,故其对应的哈希码值也不改变,在放入新元素的时候,无需再次计算哈希码值,故运行效率更高
4. Collection 和 Collections 有什么区别?
答: Collection 是 集合,是一个顶层的接口,包含了对集合中内容进行操作的通用的方法
Collecrions 是 工具类,提供了大量的静态方法,实现了对集合中元素的一系列操作,如排序、搜索等
5. HashMap 在 Java7 和 Java8 中有哪些主要的不同之处?
答: <1> 在结构上
HashMap在 Java7 中 是一个链表数组 (数组中的每一个元素都是一个链表)
在Java8中,如果某个链表的长度过大,或是数组的长度过大,HashMap的底层就会转化为红黑树
<2> 在功能上
在Java 7 中, 新添元素在链表的头部
在Java 8 中,新添元素在链表的尾部
6. 编程题
编程统计字符串“ABCD123!@#$%ab”中大写字母、小写字母、数字、其他字符的个数并打印出来
7. 编程题
准备一个HashMap集合,统计字符串"123,456,789,456"中每个数字字符串出现的次数并打印出来
8. 编程题
使用集合实现斗地主游戏的部分功能,要求如下:
<1> 首先准备54张扑克牌并打乱顺序
<2> 由三个玩家交替摸牌,每人17张扑克牌,最后三张留作底牌
<3> 查看三个玩家手中的扑克牌和底牌
<4> 其中玩家手中的扑克牌需要按照大小顺序打印,规则如下:
抽中扑克牌从大到小的摆放顺序: 大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3
以上是关于Java 核心类库 练习的主要内容,如果未能解决你的问题,请参考以下文章
Java核心类库-IO-随机访问文件(RandomAccessFile)