首页 > 编程语言 > 详细

Java 核心类库 (一) 练习

时间:2021-06-02 15:21:06      阅读:21      评论:0      收藏:0      [点我收藏+]

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 核心类库 (一) 练习

原文:https://www.cnblogs.com/JasperZhao/p/14840683.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!