https://www.cnblogs.com/xiaolovewei/p/9516989.html
朋友圈:https://www.cnblogs.com/shallwebegin/p/11622004.html
https://www.pianshen.com/article/666945413/
聊天:https://www.cnblogs.com/shallwebegin/p/11621998.html
页面:https://wenku.baidu.com/view/d680432d04a1b0717ed5dd3a.html
https://blog.csdn.net/lengxinxuexic/article/details/83047352
https://zhuanlan.zhihu.com/p/94520953
https://blog.csdn.net/qq_41907993/article/details/108116028
https://www.jianshu.com/p/2b0163d3723e
hashmap | hashset |
---|---|
继承Map接口 | 继承Set接口 |
存储健值对 | 只存储对象 |
使用健对象计算hashcode | 使用成员对象计算hashcode |
允许重复元素 | 不允许重复元素 |
继承Collection接口 | |
内部使用了hashmap的key | |
对象需要实现equals和hashcode方法 |
http | https(http+ssl) |
---|---|
超文本传输协议 | 安全套接字层超文本传输协议 |
明文传输 | 通信加密 |
不需要证书 | 需要CA证书 |
端口80 | 端口443 |
连接简单,无状态 | 可加密传输、身份认证 |
给定字符串,反转,但元音字母位置不变。
def demo(s):
if len(s) == 0:
return
arr = []
for i in s:
arr.append(i)
yuan = "aeiou"
left = 0
right = len(arr)-1
while left < right:
while arr[left] in yuan and left<right:
left += 1
while arr[right] in yuan and left<right:
right -= 1
arr[left], arr[right] = arr[right], arr[left]
left += 1
right -= 1
return ''.join(arr)
print(demo("abcdef"))
SELECT sex, count(sex) FROM table_1 group by sex;
select count(man) as 男, count(woman) as 女 from table_1;
https://juejin.cn/post/6869249088953843719
https://zhuanlan.zhihu.com/p/395569156
https://www.cnblogs.com/beilai/p/6824750.html
主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
https://blog.csdn.net/lurong66/article/details/107908499
https://blog.csdn.net/Leihenzhike/article/details/107246487
https://www.cnblogs.com/laoluoits/p/14917481.html
https://blog.csdn.net/hongfuqiang/article/details/78840763
边界值测试、等价类划分、错误推测法、场景法 、因果图法、判定表组成法、正交实验设计。
https://blog.csdn.net/qq_41431406/article/details/99320982
语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
https://zhuanlan.zhihu.com/p/88963084
https://baijiahao.baidu.com/s?id=1662096005584873447&wfr=spider&for=pc
解决的实际问题:
隔离级别:
事务隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
读未提交(read-uncommitted) | 是 | 是 | 是 |
读提交(read-committed) | 否 | 是 | 是 |
可重复读(repeatable-read) | 否 | 否 | 是 |
串行化(serializable) | 否 | 否 | 否 |
https://www.jb51.net/article/50047.htm
行锁 | 页锁 | 表锁 |
---|---|---|
引擎INNODB | 引擎BDB | 引擎MyISAM |
单独的一行记录加锁 | 一次锁定相邻的一组记录 | 锁住整个表 |
冲突少,速度慢 | 居中 | 冲突多,速度快 |
开销大,加锁慢 | 居中 | 开销小,加锁快 |
会出现死锁 | 会出现死锁 | 不会出现死锁 |
锁定颗粒度最小 | 居中 | 锁定颗粒度最大 |
发生锁冲突概率最低 | 居中 | 发生锁冲突概率最高 |
并发度最高 | 居中 | 并发度最低 |
适合有大量按索引条件并发更新少量不同的数据,又有并发查询的应用,如OLTP系统 | 适合以查询为主,少量按索引条件更新数据的应用,如WEB应用 | |
共享锁、排他锁 | 表共享读锁、表独占写锁 |
InnoDB:通过索引条件检索数据时,使用行锁;否则使用表锁。
(需求 > 性能 > 表结构)
数据库设计所需要满足的规范,不会发生insert、delete、update操作异常。
会话跟踪技术。
https://www.cnblogs.com/l199616j/p/11195667.html
cookie | session |
---|---|
在客户端记录信息 | 在服务端记录信息 |
保存在PC本地 | 保存在服务器内存中 |
固定过期时间 | 每访问一次就更新时间,超时删除 |
可以永久和暂时存在 | 浏览器页面关闭就消失 |
不可跨域名性 | 使用cookie作为标识,maxAge=-1 |
中文需要编码保存 | |
可使用字符、二进制数据 | |
单个cookie保存数据不超过4K | 大小没有限制 |
StringBuilder | StringBuffer |
---|---|
线程不安全 | 线程安全(synchronized) |
继承AbstractStringBuilder | 继承AbstractStringBuilder |
final类,不允许继承 | final类,不允许继承 |
hashmap | hashtable |
---|---|
线程不安全(可以使用线程安全的concurrentHashMap,采用了分段锁) | hashtable线程安全(每个方法都加了synchronize) |
初始长度16,每次扩充为2n,指定长度后自动匹配2的幂次方 | 初始长度11,每次扩充为2n+1,会使用指定的长度 |
重新计算hash值 | 直接使用对象的hashCode() |
可以有null(hash值为0) | 不能有null |
GET | POST | |
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data。为二进制数据时使用多重编码。 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 | 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。 在发送密码或其他敏感信息时绝不要使用 GET ! | POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |