2018-04-10 00:00:00 HashMap就是这么简单【源码剖析】 前言 声明,本文用得是jdk1.8 前面已经讲了Collection的总览和剖析List集合以及散列表、Map集合、红黑树的基础了: Collection总览 List集合就这么简单【源码剖析】 Map集合、散列表、红黑树介绍 本篇主要讲解HashMap,以及涉及到一些与hashtable的比较~ 看这篇文章之前最好是有点数据结构的基础: Java实现单向链表 栈和队列就是这么简单 二叉树就这么简单 当然了,如果讲得有错的地方还请大家多多包涵并不吝在评论去指正~ 一、HashMap剖析 首先看看HashMap的顶部注释说了些什么: 再来看看HashMap的类继承图: 下面我们来看一下HashMap的属性: 成员属性有这么几个: 再来看一下hashMap的一个内部类Node: 我们知道Hash的底层是散列表,而在Java中散列表的实现是通过数组+链表的~ 再来简单看看put方法就可以印证我们的说法了:数组+链表-->散列表 我们可以简单总结出HashMap: 无序,允许为null,非同步 底层由散列表(哈希表)实现 初始容量和装载因子对HashMap影响挺大的,设置小了不好,设置大...
2018-04-10 00:00:00 Python面试真实笔试题总结(附加实现答案) 1、一行代码实现1—100之和 2、如何在一个函数内部修改全局变量 3、列出5个Python标准库 os :提供了不少与操作系统相关联的函数 sys :通常用于命令行参数 re :正则表达式匹配 math :数学运算 datetime :处理日期时间 4、字典如何删除键和合并两个字典 del和update方法 5、Python实现列表去重的方法 先通过集合去重再转为列表 6、Python基本内建数据类型有哪些 整型 ——int、 布尔型 ——bool、 字符串 ——str 列表 ——list、 元组 ——tuple、 字典 ——dict 7、Python2和Python3的range(100)的区别 Python2中的range返回的是一个列表, Python3中的range返回的是一个迭代值,节约内存 8、一句话解释什么样的语言能够用装饰器 函数可以作为参数传递的语言,可以使用装饰器 9、简述with方法打开处理文件帮我们做了什么 打开文件在进行读写操作时可能会出现一些异常状况,如果按照常规的file.open写法,我们需要try,except,finally,做异常判断,并且文件最...