• HomePage
  • Tags
  • About
  • Posts

Posts

知识笔记 分享 折腾

笔记-Go defer 调试复杂函数

随着函数变得复杂,需要处理的错误也变多,维护清理逻辑变得越来越困难。而Go语言独有的 defer 机制可以让事情变得简单。 defer的用法 当defer语句被执行时,跟在de

笔记-Go unsafe 包

只要阅读Go的源码,就不会错过代码里众多的unsafe.Pointer等,这个不安全的指针是个啥? unsafe.Pointer unsafe.Pointer 可以指向任意类型的指针,这有点类似于C里的void*。它能

笔记-Go Web 服务器 http.Handler 接口

Go做web服务器,只需要寥寥几行代码即可实现。前边已经写过web服务器几个基本步骤,可以参考webserver工作原理。 socket()->bind()->listen()->accept() 在http包种,go提供了一个函数 //

笔记-Go 作用域和生命周期

作用域和生命周期,往往被混为一谈,当然是两个概念。 概念 作用域 作用域是声明在程序文本中出现的区域,是一个编译时属性。 变量的生命周期 变量的生命周期是程序执行期间被程

笔记-Go 常用的时间日期转化

日常开发中时间转化经常用到。Go中设计的时间类型是Time,参考src/time/time.go 当前时间 获取当前时间,返回Time类型 a := time.Now() fmt.Println(a, a.Unix(), a.UnixNano()) 当前Unix 时

笔记-Go 限制并发、限速

Go的并发使用起来非常容易,随意就起个goroutine。但是日常开发中,考虑到机器CPU、内存、文件描述符、网络以及下游中间件性能等等的影响,通常不会无脑使用

笔记-grpc 介绍和 Go 示例

grpc介绍 rpc:远程过程调用。对比本地的函数调用,远程是节点A调用节点B上的服务,比如http等协议的调用。现在流行很多种rpc框架,百度的brpc,谷歌的

笔记-Java日期处理

引言 在各种语言编程中,日期和时间的处理都是一个常见的需求。Java中还特殊一点,在Java8 前后提供了不同的日期和时间 API,它们在设计和使用上有很大的差异。本

笔记-Java集合容器

说到Java容器集合,忍不住要对比下Go。 Java要掌握的语法和API更多,相比来说Go要更简洁。但另一个角度看,Java提供了非常丰富的类和API,这点Go就

简易实现固定窗口限流

限流器有多种算法,比如固定窗口、滑动窗口、漏桶、令牌桶等。比如Guava的限流器采用的令牌桶。 我们这里实现一个简易的固定窗口的限流器,来初体验下限流器的作用和实

算法-KMP

算法介绍 KMP字符串匹配算法。 移动位数 = 已匹配的字符数 – 对应的部分匹配值 《部分匹配表》怎么得出 两个概念:”前缀”和”后缀”: “前缀”指除了最后一个字符以外,一个

算法-LRU

LRU介绍 LRU(Least Recently Used)最近最少使用算法,通常在缓存策略中使用。操作系统在内存管理中,对页的置换有应用这一算法。 通常缓存空间有限,因此当空间满的

算法-回溯算法排列组合

回溯算法特点 回溯算法是一种暴力穷举算法 穷举的过程是遍历一颗多叉树的过程 回溯算法的框架和多叉树遍历相似 回溯算法框架 List<Value> result; void backtrace(路径, 选择列表) { if (

算法-图的最短路径 Dijkstra

图如果不带权重,计算最短路径用BFS,队列的数据结构就够了,如果带权重(负权不能使用dijkstra)的话可以使用优先队列的数据结构。放邻接点的时候,哪个权重小

算法-图的遍历 广度优先 BFS 和深度优先 DFS

图的两种遍历方式 如题,图的广度优先和深度优先遍历。和二叉树的广度优先遍历类似都利用队列先进先出的特点,不同点在于,二叉树的BFS不需要记录节点是否遍历过,但图会

算法-时间轮实现

时间轮(Timing Wheel) 时间轮是一种高效的定时任务调度数据结构,核心目标是解决大规模定时任务场景下的性能瓶颈问题。最早应用于操作系统内核的定时器管理,后

算法-最优解问题 0-1背包

问题 问题描述 一个可放总重量为 W 的背包和 N 个物品。每个物品,有重量 w 和价值 v 两个属性,那么第 i 个物品的重量为 w[i],价值为 v[i]。现在用这个背包装物品,问最多

算法-最优解问题 找零钱

问题 问题描述 给定 n 种不同面值的硬币,有一个总金额 k,计算出最少需要几枚硬币凑出这个金额k ?每种硬币的个数不限。如果没有任何一种硬币组合能组成总金额时,返回 -1。

算法-练习题目

链表 链表典型问题参考 逆序遍历链表 简单一个递归,先递归再取值 public static void reverseTraverse(Node node) { if (node == null) { return ; } reverseTraverse(node.next); System.out.println(node.value); } 删除倒数第N个节点 和逆序遍历链表一个思路。递归处理,就是反转了,i+

网络层IP数据包解析-tcpdump抓包ping应用

准备工作 client_ip : 111.198.231.243 server_ip : 115.159.105.52 ping命令 一个常见的工具Ping。 ping是利用ICMP,ICMP 依靠IP来完成它的任务,是IP的附属协议。 ICMP协议 ICMP封装在IP
  • ««
  • «
  • 3
  • 4
  • 5
  • 6
  • 7
  • »
  • »»
© 苏打Blog 2017 - 2026 京ICP备18005017号-1