首页
学习
活动
专区
工具
TVP
发布

从流域到海域

专栏作者
439
文章
499284
阅读量
59
订阅数
Python 装饰器
闭包可以被理解为一个只读的对象,你可以给他传递一个属性,但它只能提供给你一个执行的接口,这就牵扯到的另一个特性:惰性求值。 还有另一种用处:需要对某个函数的参数提前赋值的情况,当然在Python中已经有了很好的解决方案functools.parial, 但是用闭包也能实现。
Steve Wang
2022-05-10
4130
单调队列及其LeetCode应用详解
队列(Queue)是另一种操作受限的线性表,只允许元素从队列的一端进,另一端出,因此具有先进先出(FIFO)的特性。
Steve Wang
2022-05-10
1.7K0
单调栈详解及其LeetCode应用详解
栈(Stack)是一种操作受限的线性表,只允许一端进,同一端出,因而具有后进先出(LIFO)的特性。
Steve Wang
2022-05-10
3.3K0
树状数组及其LeetCode应用详解
树状数组即二叉索引树,是使用数组模拟树形结构的一种数据结构,可用于计算前缀和和区间和(元素全为1时可用来计数)。采用数组而不是直接建树来解决问题是由于某些特定问题比如区间求和完全可以不建树就能解决,这样实现简单,复杂度低。这点上和Trie树有异曲同工之妙。
Steve Wang
2022-05-10
7400
Redis常用数据类型及其对应的底层数据结构
Redis是一种键值(Key-Value)数据库。相较于MySQL之类的关系型数据库,Redis是一种非关系型数据库。Redis存储的数据只包含键和值两部分,只能通过键来查询值。这样简单的存储结构,能让Redis的读写效率非常高(HashMap读写效率都是O(1))。
Steve Wang
2022-05-10
3510
Java MySQL数据库专题
MySQL的默认存储引擎是InnoDB,并且在5.7版本的所有存储引擎中只有InnoDB是事务性存储引擎,也就是说只有InnoDB支持事务。
Steve Wang
2022-05-10
1.7K0
Java垃圾回收(GC)机制专题
①类加载检查→ \rightarrow→②分配内存→ \rightarrow→③初始化零值→ \rightarrow→④设置对象头→ \rightarrow→⑤执行init()方法
Steve Wang
2022-05-10
3910
JVM专题
Java虚拟机在执行Java程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK1.8和之前的版本有所不同。
Steve Wang
2022-05-10
2560
Java 锁专题
公平锁(Fair) 加锁前检查是否有排队等待的线程,优先排队等待的线程,先到先得。
Steve Wang
2022-05-10
3170
JWT和HMAC(AK/SK)认证方式的区别和使用场景
HMAC(Hash-based Message Authentic Code),即基于hash的消息认证码,它使用哈希算法,以一个密钥和一个消息作为输入,生成一个消息摘要作为输出,服务端通过对比发送的摘要和自己生成的摘要是否相同完成认证。
Steve Wang
2022-04-13
2.5K0
Python 如何生成uuid
Python中内置了一个名为uuid包来处理UUID的生成,使用起来非常方便,它提供了生成36位uuid的方法(32位加上4个’-'号作为间隔符,如果不需要间隔符可以手动去掉)。
Steve Wang
2022-04-13
2.5K0
Python原生线程池ThreadPoolExecutor
但如果线程超过一定数量,这种方式将会变得很复杂且线程的开关开销线性递增。池化思想是一种工程上管理长期占用资源并使用提高其使用效率的常见思想,它的体现包括数据库连接池、线程池等等。池化思想非常直观,将要维护的资源保存在一个池子里,下一次请求到来时,如果池子里已经有可用资源,则直接返回可用资源;如果没有可用资源,则等待其他使用者使用完成后释放资源。
Steve Wang
2021-12-20
5.4K0
Python nonlocal关键字
关键字nonlocal用来在函数或者其他作用域中使用外层(非全局变量)。换句话说,nonlocal用来声明变量不处于当前的函数当中,需要解释器在包含这个函数的函数中寻找nonlocal声明的同名变量,找到后就可以使用这个对象对应的值在当前函数中进行操作。 它用来在部分情况下代替global关键字,防止滥用。 不使用nonlocal def test(): x = 0 def inner(): x += 1 print(x) inner()
Steve Wang
2021-12-06
1.1K0
竞态条件及其解决方法
要阻止出现竞态条件的关键就是不能让多个进程/线程同时访问那块共享变量。访问共享变量的那段代码就是临界区(critical section)。所有的解决方法都是围绕这个临界区来设计的。
Steve Wang
2021-12-06
2K0
Go error接口源码和errors包源码
Go语言中经常使用的error类型本质上是一个接口,该接口只有一个方法Error(),该方法用于约束实现该接口的类型必须具有合适的将错误信息以string类型返回的同名Error()方法。
Steve Wang
2021-12-06
4870
Go unsafe包底层编程细节详解 【Go语言圣经笔记】
Go语言的设计包含了诸多安全策略,限制了可能导致程序运行出错的用法。编译时类型检查可以发现大多数类型不匹配的操作,例如两个字符串做减法的错误。字符串、map、slice和chan等所有的内置类型,都有严格的类型转换规则。
Steve Wang
2021-12-06
1.1K0
Go 反射机制详解及实例 【Go语言圣经笔记】
Go语言提供了一种机制,能够在运行时更新变量或检查它们的值、调用它们的方法和它们支持的内在操作,而不需要在编译时就知道这些变量的具体类型。这种机制被称为反射(这里反射的定义和其他语言大体相同)。反射也可以让我们将类型本身作为第一类的值类型处理。
Steve Wang
2021-12-06
1K0
Go基于共享变量的并发原理及实例 【Go语言圣经笔记】
前一章我们介绍了一些使用goroutine和channel这样直接而自然的方式来实现并发的方法。然而这样做我们实际上回避了在写并发代码时必须处理的一些重要而且细微的问题(笔者注:一谈到并发,就需要处理对共享变量等公共资源的访问问题,不合理的访问问题会造成一系列诸如丢失修改、读脏数据、重复读等常见并发问题)。
Steve Wang
2021-12-06
8520
Go channel及其使用实例 【Go语言圣经笔记】
如果说goroutine是Go语言程序的并发体的话,那么channels则是它们之间的通信机制。一个channel是一个通信系统,它可以让一个goroutine通过它给另一个goroutine发送值信息。每个channel都有一个特定的类型,也就是channels可发送数据的类型。一个可以发送int类型数据的channel一般写为chan int。
Steve Wang
2021-12-06
1.2K0
Go 接口及其相关机制深入解读加源码剖析 【Go语言圣经笔记】
接口类型是对其它类型行为的抽象和概括;因为接口类型不会和特定的实现细节绑定在一起,通过这种抽象的方式我们可以让我们的函数更加灵活和更具有适应能力。
Steve Wang
2021-12-06
5630
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档