hashCode与equals
平时我们在项目里经常会用到HashMap这个数据结构,所以在面试的时候一定会被问这个问题∶你有没有重写过hashCode方法?你在使用HashMap时有没有重写hashCode和equals方法?你是怎么写的? 那么为什么要重写hashCode与equals方法,这两个方法起着什么作用呢?当我们往HashMap里放key时,首先会调用这个对象的hashCode方法计算它的hash值,随后把key放入hash值所指引的内存位置。
平时我们在项目里经常会用到HashMap这个数据结构,所以在面试的时候一定会被问这个问题∶你有没有重写过hashCode方法?你在使用HashMap时有没有重写hashCode和equals方法?你是怎么写的? 那么为什么要重写hashCode与equals方法,这两个方法起着什么作用呢?当我们往HashMap里放key时,首先会调用这个对象的hashCode方法计算它的hash值,随后把key放入hash值所指引的内存位置。
要创建⼀个⽣成器,有很多种⽅法。第⼀种⽅法很简单,只要把⼀个列表⽣成式的 [ ] 改成 ( )
In [1]: L = [x*2 for x in range(5)]
In [2]: L
Out[2]: [0, 2, 4, 6, 8]
In [3]: G = (x*2 for x in range(5))
In [4]: G
Out[4]: <generator object <genexpr> at 0x000001B281507A98>
创建 L 和 G 的区别仅在于最外层的 [ ] 和 ( ) , L 是列表,G 是生成器。我们可以直接打印出L的每个元素,但我们怎么打印出G的每个元素呢?使用next
函数
百度的预搜索是怎么实现的呢?如下图:
这个场景应该是大家非常熟悉的吧,为什么我们没有点击搜索但是却可以弹出相关的搜索内容条目呢?其中就用到了ajax引擎!接下来我们就可以看一下这个ajax,哈哈!
同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随 意做其他事情,不会被卡死
页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到 服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回 给Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面功能。
关于编码的问题有几点需要说清楚:UTF-8国际编码,GBK中文编码。GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;英文文字就是26个字母,真正的对应关系就是ASCII码表中的关系,但是如何表示汉字呢?很显然也需要一套对应的码表,于是UTF-8、GBK、GB2312这些编码方式就是为了解决这个问题的。
简称 | 含义 |
---|---|
u | user (文件的拥有者) |
g | group (文件所属组) |
o | other (其他用户) |
a | all (所有用户) |
对user需要rwx权限,对group需要rx权限,对other需要rx权限;
在目录中执行touch、ls、 rm、 mv需要的权限
touch: 对所有者需要rw权限,对所有者所在组需要r权限,对其他用户需要r权限; ls: 都需要r权限 rm: 都需要w权限 mv: 都需要w权限
读权限:对文件具有读取文件内容的权限、对文件目录具有浏览目录信息的权限 写权限:对文件具有修改文件内容的权限、对文件目录具有移动删除目录信息的权限 执行权限:对文件具有执行文件的权限、对文件目录具有进入目录的权限