avatar
文章
118
标签
473
分类
35

首页
时间轴
标签
目录
友情链接
推荐工具
站长工具
Zhangzqs
搜索
首页
时间轴
标签
目录
友情链接
推荐工具
站长工具
LRU缓存实现
发表于2022-05-28|Golang
需求概述 实现一个满足LRU缓存的数据结构,即有一个容器,可以存放key-value型的数据,有以下功能: 根据缓存最大容量构造该缓存数据结构 能够根据key获取相应的value,若缓存未命中则返回相应异常标志 可以放入一个kv数据,若已存在则变更value,若不存在,则淘汰最久未使用的kv对 还能够获得当前容器已存放的kv数目 可以删除指定kv对,可以清空缓存 问题分析 使用golang实现该数据结构,即定义一个结构体,实现如下LRU接口 为了通用起见,key,value不限定类型,即interface{}类型 12type Key interface{}type Value interface{} 设计一个结构体,实现如下接口方法 1234567type LRU interface { Get(key Key) (value Value, ok bool) Put(key Key, value Value) Remove(key Key) Len() int ...
软件测试期末复习
发表于2022-05-18|软件工程软件测试
基本路径测试法 基本路径测试法是在是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径 出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。 程序的控制流图 控制流图是描述程序控制流的一种图示方式。其中基本的控制结构对应的图形符号如图所示。在图所示的图形符号中,圆圈称为控制流图的一个结点,它表示一个或多个无分支的语句或源程序语句。 如下图所示,程序的流程图可以映射到控制流图 在具有复合条件的情况时,可以转化拆分成成单条件的流程图,如下图先判断单条件a,则根据短路直接可执行到y,否则继续判断b 环路复杂度 进行程序的基本路径测试 进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必须的测试用例数的测试用例数目的最小值。 所谓独立路径,是指包括若干未曾处理的语句或条件的一条路径。 基本路径集不是惟一的,对于给定的控制流图,可以得到不同的基本路径集。 通常环路复杂性可用以下3种方法求得。 将环路复杂J性定义为控制流图中的区 ...
Golang高质量编程与性能调优
发表于2022-05-16|Golang
高质量编程 简介 什么是高质量代码? 编写的代码能够达到正确可靠、简介清晰的目标即可称之为高质量代码。 各种边界条件是否考虑完备 异常情况处理,稳定性保证 易读易维护 编程原则 实际应用场景千变万化,各种语言的特性和语法各不相同,但高质量编程遵循的原则是相通的。 以下引用Go语言开发者Dave Cheney的观点 简单性 消除“多余的复杂性”,以简单清晰的逻辑编写代码 不理解的代码将导致无法进行修复改进 可读性 代码是给人看而不是给机器看 编写可维护的代码首先要确保代码的可读性 生产力 团队整体工作效率非常重要 编码规范 代码格式 推荐使用gofmt来自动格式化代码 goimports能够自动增删依赖的包引用,将依赖包按字母序排序分类 可直接在IDE中设置,以下为GoLand中的配置,可在保存时自动格式化代码 注释 注释应该解释代码作用 如对于公共符号(公开的常量名,变量名,函数名等) 注释应该解释代码是怎样工作的 对于实现过程的注释, 注释应该解释代码实现的原因 适合解释代码的外部因素,提供额外 ...
Golang工程实践
发表于2022-05-12|Golang
Goroutine 12345678910111213141516171819202122package mainimport ( "fmt" "time")func hello(i int) { fmt.Printf("hello goroutine: %d\n", i)}func HelloGoRoutine() { for i := 0; i < 5; i++ { go func(j int) { hello(j) }(i) } time.Sleep(time.Second)}func main() { HelloGoRoutine()} 该代码可实现并发打印0~4这五个数,Sleep暂时只是实现这5个协程同步的一种不优雅的实现手段,后面有更优雅的手段。 在Golang中,提倡使用通信来共享内存,而不是通过共享内存实现通信 ...
Android-SQLite
发表于2022-05-11|Android
布局设计 activity_main.xml 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pa ...
Android-SharedPreferences
发表于2022-05-11|Android
布局文件activity_main.xml 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width ...
Android-Service
发表于2022-05-11|Android
定义布局文件 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" and ...
Android Broadcast
发表于2022-05-10|Android
动态注册Receiver接收系统广播 需求描述 当ToggleButton的状态为不检测时,TextView显示Hello Broad字符串 当点击ToggleButton后,TextView显示当前电量信息(要求能够实时刷新) activity_main.xmlMainActivity.java12345678910111213141516171819202122232425262728<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width=& ...
手写Socks5代理服务器
发表于2022-05-09|Golang
Socks5协议简介 socks5协议是一种代理协议,用于在客户端与服务器直接转发数据。 简单来说,一般适用于如下场景,若Client无法访问目标服务器,但能访问socks5代理服务器,而socks5服务器能够访问目标服务器,那么Client就可以通过socks5代理服务器访问目标服务器。 socks5协议的具体RFC1928文档如下 https://www.ietf.org/rfc/rfc1928.txt 工作过程 无代理情况下 12345@startumlClient->Server++: 1. 建立TCP连接Client->Server++: 2. 发送HTTP请求return 3.返回HTTP响应@enduml 有代理情况下 1234567891011121314151617181920@startumlparticipant Client as cparticipant Proxy as pparticipant Server as sc->p++: 建立TCP连接return TCP连接建立成功c->p++: 协商阶段return 通过协 ...
Golang基本语法
发表于2022-05-07|Golang
基本语法 变量 1234567891011121314151617181920212223package mainimport ( "fmt" "math")func main() { var a = "initial" var b, c int = 1, 2 var d = true var e float64 f := float32(e) g := a + "foo" fmt.Println(a, b, c, d, e, f) fmt.Println(g) const s string = "constant" const h = 500000000 const i = 3e20 / h fmt.Println(s, h, i, math.Sin(h), math.Sin(i))} 123initial 1 2 true 0 0initialfoo ...
1…567…12
avatar
Zhangzqs
一个分享与记录的个人空间
文章
118
标签
473
分类
35
Follow Me
最新文章
《猪猪侠》主题曲2026-01-19
HOYO-MIX-Eternal-Moonborn 学习笔记2025-12-06
主流向量数据库深度对比:Milvus vs Qdrant 选型指南2025-11-26
GAMES101课程笔记大纲2025-11-06
GAMES101笔记-光线追踪(路径追踪)2025-10-15
分类
  • AI1
  • Android7
  • GAMES101课程笔记11
  • Golang6
  • Java框架2
  • Python1
  • ROS机器人1
  • Rust1
标签
线性整数规划 布局实战 三角函数 数据检索 黑白棋子移动问题 谷山 - 志村猜想 代码编译 Scrum框架 Python线性规划求解 Manjaro 动态规划 验收测试 First集合 Geogebra MATLAB求解 大整数幂模代码实现 音乐系统 FIRST集合 文件系统 Node-Exporter 最小高度树 反证法 贝塞尔曲线 关键帧动画 C++ HBase Shell命令 群环域 FAT12 字母矩阵 Hadoop环境搭建 代码反编译 密钥生成 演奏器 LinearLayout 椭圆周长公式 Matlab Leetcode LRU缓存 Ctrl+5快捷键失效 Python
归档
  • 一月 20261
  • 十二月 20251
  • 十一月 20252
  • 十月 20255
  • 八月 20254
  • 四月 20255
  • 六月 20241
  • 五月 20241
网站资讯
文章数目 :
118
已运行时间 :
本站总字数 :
205k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2026 By Zhangzqs
框架 Hexo|主题 Butterfly
搜索
数据库加载中