(Map和其他集合)day09javaSE基础查漏补缺

1.构造函数为何不能用abstract, static, final修饰

不同于方法,构造器不能是abstract, static, final的.

1)构造器不是通过继承得到的,所以没有必要把它声明为final的。

2)同理,一个抽象的构造器将永远不会被实现,所以它也不能声明为abstract的。

3)构造器总是关联一个对象而被调用,所以把它声明为static是没有意义的。

2.什么情况下,方法区中的类才会被回收?

1)该类所对应的所有实例对象都已经被回收了,Java堆中已经不存在该类的实例对象了。
2)加载该类的类加载器ClassLoader已经被回收了。
3) 该类的Class对象没有任何引用。

3.java静态类、方法和变量,被加载一次后,会保留下来吗,跟常量池一样?再次new静态类对象的时候,是不是就不用加载了?

静态类是系统启动的时候自动加载,一直保留,直到程序终止。

静态类是对嵌套类使用static关键字。static不能用于最外层的类。静态的嵌套类和其它外层的类别无二致,嵌套只是为了方便打包
静态块就是类加载器加载对象时,要执行的一组语句,静态块只会在类加载到内存中的时候执行一次,保留直到程序被停止。
在这里感谢两位老师解答

4.super可以引用接口嘛?

不可以,只能用于有继承关系的父类引用

5.为什么map添加元素用put不用add?

6.Map集合类K/V能不能存储null值?

可以

linkedhashmap key不允许为空
在这里插入图片描述

7.在map中根据value获取key

//根据相同value获取多个key
		System.out.print("请输入一个您要查找得世界杯冠军的国家:");
		String country = sc.nextLine();
		//entrySet()方法把map中的每个键值对变成对应成Set集合中的一个对象
		Set<Entry<String, String>> set = map.entrySet();
		//因为循环获取多个满足相同value值得key值
		//如果没有获得过世界杯的国家则会打印循环次数的行数,而return结束函数也会随之出现问题
		//我这里用的flag标记,来实现功能
		boolean flag = false;
		for (Entry<String, String> e : set) {
			if (e.getValue().equals(country)) {
				System.out.print(e.getKey() + "年 ");
				flag = true;
			}
		}
		if (flag == false) {
			System.out.println("没有获得过世界杯");
			return;
		}	 

8.list和set集合可以存空嘛?

可以

9.Map集合对象创建的时候,自动创建Entry对象(键值对对象)记录每一对键值对.

map.entrySet();

10.内部接口使用的时候不需要实现嘛,entry的实现类是啥

需要实现
hashmap$Node类

11.自定义类型什么时候重写hashcode和equals方法

保证对象数据唯一的时候

1)使用hashset,存储自定义对象为元素

2)使用hashmap ,存储自定义对象为key

12.只有linkedlist集合有首尾操作

linkedhashset和linkedhashmap没有

13.hashSet底层是new了一个hashMap

14.a.TreeMap底层是一个红黑树结构

TreeMap集合自带了一个比较器,里边存储的key是有序的:默认是升序或者可以根据比较器自定义排序规则 和TreeSet是一样

15.为啥hashtable存null会空指针?

Hashtable的源码,如果value=null直接抛出空指针异常;而使用key.hashCode()不允许key=null,所以无论是key还是value都不能是null。而在HashMap中并没有这样的限制,key和value允许使用null。

16.keySet和entrySet遍历速度区别?

entrySet()快,性能好。

1)keySet便利了两次,一次转为Iterator类型,一次从HashMap中取出key对应的value值,

2)entrySet只遍历了一次,他将key和value全部放入entry中。

17.普通map怎么排序?

转为keySet或者entrySet集合再操作

18.集合可以互相嵌套

19.hashmap有没有重写hashcode和equals方法?

在set里存hashmap是唯一的嘛 ?我在hashmap源码里没找到hashcode方法

我在Map里面找到了重写的hashcode

20.集合框架图

img

21.写代码,写几步先校验一下,再往下写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值