collection

1 下列四条语句说法错误的是?()
* Integer i1 = 59;
* int i2 = 59;
* Integer i3 = Integer.valueof(59);
* Integer i4 = new Integer(59);
*
* A System.out.println(i1 == i2);
* B System.out.println(i1 == i3);
* C System.out.println(i3 == i4);
* D System.out.println(i1 == i4);

注解:首先,对于基本的数据类型
java中的数据类型,可分为两类:
1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。
2.复合数据类型(类)
Java的8种基本类型(Byte, Short, Integer, Long, Character, Boolean, Float, Double), 除Float和Double以外, 其它六种都实现了常量池, 但是它们只在大于等于-128并且小于等于127时才使用常量池。当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。 JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同.
再来分析选项:
首先:如果是基本数据类型和复合数据类型比较,此时,比较的是值, 首先复合数据类型会先拆箱,拆成基本的数据类型,此时再比较.
其次:对于6中基本的复合数据类型,只要是同类型的大于等于-128并且小于等于127的值都存在常量池中,比较的时候,地址值都相同.
最后:对于用到new 的对象,当他们和对象之间相比较(==)的时候,此时,肯定是false;
2 java 中,String str=”hello world”,下列语句错误的是()
A str += ’ a’;
B int strlen = str.length;
C str = 100;
D str = str + 100;

注解:A 是考视力的,注意两个以上就不是字符,就成字符串,此时应该是双引号。
  B  对于数组:     对象.length  
     对于字符串 :   对象.length()
     对于集合:     对象.size()
  c string的内部实现是final
  D 字符串追加 ok!

3 实现或继承collection 的接口是()
A map
B List
C vector
D Iterator
E Set

注解:BCE collection 和 map 是同一级

4 下列有关List接口和Set 接口 和 Map接口描述错误的是()
A 他们都是继承了Collection
B List是有序的Collcetion ,使接口能精确控制每一个数据的插入位置
C Set是一种不包含重复元素的Collection
D Map提供的是key 到value的映射, 一个map中不可以包含相同的key , 每个key 只能映射一个value

注解:A Collection 和 Map 是同一等级的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值