Java 知识点 集合+异常
来源:互联网 发布:建筑工地用工人员软件 编辑:程序博客网 时间:2024/06/02 09:39
集合
曾几何时,我还觉得集合好难,以后看吧,可是,我已经大三了啊;我要去找到工作啊,我得参加面试的啊;加油努力吧;
Hashmap的实现原理
我还是喜欢比较随便的记录一下自己是怎么想的;首先最底层有两种储存结构,数组和链表,数组易随机访问,难删除;链表则刚好相反;
- 其实你就这么想;有这么一个数组,储存的是某种对象,这个对象呢,有一个键,有一个值;还有一个指向下一对象的指针;
首先是键,它的作用是干啥呢,其实就是在数组里的一个位置;来了一个键,通过hash算法,分配到这里,然后键就不变;
以后来的相同的hash的对象,也放在这里,只不过就是把当前数组里的那个给替换掉,然后整体移动一下;否则新加入的键值还得放到最后;那样我们还得储存链表末尾是谁;对于相同的键,我们直接覆盖值,就像null做的一样; - 相当于什么呢,你整理文件,你得创建一个分类吧,那现在不是,你是来一个文件分一个,一看见游戏,就决定分个游戏的文件夹,来了个word,你决定分个办公的文件夹;然后为了节省空间,游戏这个文件夹,只能看见最近加入的文件,其他的,你就得通过这个最近的,依次往下找;
- 然后是什么呢,就是hashmap是可以储存null这个键值的,这个就比较的厉害了,null这个键下面只储存一个值;每次都是直接覆盖掉上次的;对于创建null来说,就先找一下,有的话就覆盖,没有的话,就新建;
HashTable
HashTable的内部存储结构:
HashTable和HashMap采用相同的存储机制,二者的实现基本一致,不同的是:
1、HashMap是非线程安全的,HashTable是线程安全的,内部的方法基本都是synchronized。
2、HashTable不允许有null值的存在。
在HashTable中调用put方法时,如果key为null,直接抛出NullPointerException。其它细微的差别还有,比如初始化Entry数组的大小等等,但基本思想和HashMap一样。
异常
我一直比较疑惑到底什么样的异常不用try-catch捕获,简单来说,就是不以捕捉的,因为捕捉,可查的异常是什么时候,编译的时候,这时候检查的错误都是简单的或者说很明显会出现错误,比如文件操作,这种操作出现错误很自然,也比较容易预计,所以java强制你try-catch;还有一些,例如数组越界,你不执行,基本不知道这会有异常,这不是预料到的,可能就是你写错了;这种一场不可查,所以不需要强制try-catch捕获;再加上error错误,蓝色的就是不可查的,粉色的就是可查的
0 0
- Java 知识点 集合+异常
- java基础知识点集合
- java集合知识点概括
- Java集合知识点整理
- java集合相关知识点
- java--集合相关知识点
- Java集合知识点总结
- Java集合框架知识点
- JAVA 集合知识点总结
- java集合基本知识点
- JAVA集合知识点汇总
- java集合几个知识点
- java集合框架知识点
- java集合知识点总结
- JAVA异常知识点总结
- java知识点-关于异常
- java异常基础知识点
- java异常知识点总结
- 剑指offer
- C++笔记(一)
- LeetCode036 Valid Sudoku
- 2017年产品经理之项目管理流程-全栈工程师熊盼
- x86-64和x86
- Java 知识点 集合+异常
- 剑指offer-面试题31 求连续子数组的最大和
- 计数排序-《算法导论》学习笔记八
- 1393: [Ceoi2008]knights
- [Ubuntu]常见问题手册
- 2.0第二章寄存器
- 冒泡排序的链表实现
- 剑指offer-面试题37 两个链表的第一个公共节点
- Myeclipse中Package的错误