摘要: 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明:你不能倾斜容器。 链接:https://lee 阅读全文
posted @ 2022-07-06 18:00 SmartLiu 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 参考链接:https://www.imooc.com/article/324827 1. redis中存储键值对的数据结构 2. 五种数据类型和相应的数据结构 双向链表 链表节点在内存中分散存储 压缩列表 节点在内存中连续存储,但与数组不同的是,每个节点所占的内存大小可以不同。 List底层采用压缩 阅读全文
posted @ 2022-06-06 22:04 SmartLiu 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1. Reentrantlock的使用 1. 初始化选择公平锁还是非公平锁 Reentrantlock lock = new Reentrantlock(true); 2. 可用于代码块 lock.lock(); try{ }finally{ 3. 释放锁 lock.unlock(); } retu 阅读全文
posted @ 2022-05-11 10:00 SmartLiu 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 1. Synchronized的作用 Synchronized相当于给指定代码段、方法或者类加了一把锁,保证JVM的原子性、可见性和有序性。 问题:Synchronized锁的是什么? 实际上,锁的是一个对象。 2. Synchronized的底层原理 (1)从java源码层面 synchroniz 阅读全文
posted @ 2022-05-08 17:00 SmartLiu 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 1. java中集合架构图 2. ArrayList类详解 //ArrayList常用方法 1. 向列表中添加元素 add(E e) Collections.addAll(list, e1, e2, ......) 2. 清空列表 clear() 3. 判断列表中是否有元素 contains(obj 阅读全文
posted @ 2022-05-04 15:51 SmartLiu 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 1. 变量作用域规则 Python在编译函数的定义体时,如果某个函数体外的变量在定义体中被赋值了,会判断它是局部变量。 要想在函数赋值后仍将其解释成全局变量,需要使用global声明。 b = 6 def f3(a): global b # 未用global声明之前b被解释为局部变量 print(a 阅读全文
posted @ 2022-05-03 15:29 SmartLiu 阅读(44) 评论(0) 推荐(0) 编辑
摘要: JVM虚拟机内存模型 以实际程序为例分析程序执行过程中的内存分配情况 JVM中的垃圾回收机制 垃圾回收的两个步骤 发现无用对象【没有任何变量引用的对象】 引用计数法 根搜索法【将引用关系看成一张图】 回收无用对象的空间 分代机制促进垃圾回收 为什么会有分代机制? 不同对象的生命周期不同,要针对不同生 阅读全文
posted @ 2022-04-28 17:13 SmartLiu 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 1. 创建类对象和创建实例对象的过程 class Cat(object): # 类属性 name = '吉姆' def eat(self): print('%s在吃鱼'%self.name) def drunk(self, name): self.name = name print('%s在喝水'% 阅读全文
posted @ 2022-04-07 14:34 SmartLiu 阅读(75) 评论(0) 推荐(0) 编辑