Java概念纠正

1、为将数组myArray的长度由3改为6,现采取以下编码:

int[] myArray=new int[3];
myArray=new int[6];

代码执行后,以下叙述哪项是正确的?
A.数组myArray的长度已由3改为6,其中前3个元素的值不变,后3个元素
的值为空。
B.数组myArray的长度已由3改为6,其中前3个元素的值不变,后3个元素
需再经过初始化后才能使用。
C.数组myArray的长度没有变化。
D.数组myArray的长度已由3改为6,原来3个元素的值全部丢失。

答案:[D]
解析:myArray被声明为一个int类型的数组。new int[6] 会在内存中重新开辟一块给它,原来的int[3]孤零零地等待被回收。是不是找到了高中做题时候的快感。。。

2、下列数据中,不能作为switch(条件)的是( )。

A.a = 1          B.a = 1.0 
C. a = 1/2        D.a = ‘a’

答案:[B]
解析:switch(exp),在JDK7之前,只能是byte、short、char、int或对应的包装类,或者枚举常量(内部也是由整型或字符类型实现)。
为什么必须是这些呢,因为其实exp只是对int型支持的,其他都是因为可以自动拆卸或者自动向上转型到int,所以才可以。
到了JDK7,String被引入了,为什么String能被引入呢?
其实本质上还是对int类型值得匹配。程序调用了String对象的hashCode方法,得到一个int型的hash值,唯一标识这个case。当匹配时,查看这些哈希值,如果没有匹配成功,就说明不存在;如果匹配成功了,接着会调用字符串的equals方法进行匹配。(补充:hash值一致,equals不一定返回true)。
所以,exp不能为null,case子句使用的字符串也不能为null,不然会出现空指针异常。

3、操作题(hashmap专题)
1. 定义5个person对象,用其名字作为key,对象作为value,放入hashmap
2. 从上述字典中,删除key长度大于5的对象 (这是重点)
解析:hashmap删除的详解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值