自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 资源 (1)
  • 收藏
  • 关注

原创 【刷题】hash妙用:将两个值映射为唯一状态标识

在这个问题中,使用 hash 方法将状态数组 [remain_x, remain_y] 映射为一个长整数,用于在 seen 中查找。质数的选择: 选择一个合适的质数作为哈希函数的乘法因子,可以提高哈希函数的散列性,降低冲突的概率。在这个问题中,选择 1000001 是为了确保足够大,避免发生溢出,并提高哈希函数的唯一性。唯一标识状态: 在搜索问题中,使用哈希可以唯一标识当前状态,避免重复计算,提高算法效率。在这个问题中,使用哈希集合 seen 记录已访问过的状态,避免重复访问相同的状态。

2024-01-28 21:22:27 412

原创 【java】idea可以连接但看不到database相关的files

idea右侧有database工具栏,但点击没有在recent files看到数据库相关文件。

2023-11-13 13:32:32 746

原创 【6.824】分布式lab1 mapReduce

# status of task and workerworker: - Finish: worker finish task X- Ready: worker ask for a new task- Wrong: worker meet some problems- Close: worker will be closed when master ask worker to close

2023-11-10 16:13:08 1161

原创 【java】redisTemplate mock时报空指针

在代码中,使用了any(String.class)和any(Long.class)来指定了具体的参数类型,因此匹配器能够正确地匹配到这些参数。但是在最后一个参数上,使用了any()而没有指定具体的类型,这会导致参数匹配器无法正确匹配。在使用参数匹配器时,需要根据实际的参数类型来指定匹配器的类型。为了正确使用参数匹配器,请确保在使用any()时指定具体的参数类型。如果最后一个参数是Object类型,您可以使用any()或者anyObject()来匹配。需要每个函数都mock。

2023-10-31 18:44:59 790

原创 流计算处理系统入门

流计算处理系统时间可以划分两种...

2022-06-19 20:30:56 174 1

原创 【知识产权】学习笔记

相关基础知识学习链接1. 技术价值:专利和论文的区别:专利很多需要付费查阅2.专利的法律价值有时需要针对价值点的部分拓展进行保护。3.专利的商业价值4. 专利的特点:时效性地域性排他性非独占实效性:地域性影响适用的不同地方。非独占性【例子】:B检测到了A的专利,布局申请了相关的专利。这种情况:A无法向下游厂家出售相关产品,B无法实施布局的专利申请,相关基础知识专利申请时间与条件最好一有创意就申请保护。论文应该在专利以后。不然专利授权就很难

2022-04-30 15:14:08 615

原创 【代码规范】函数命名总结

Service/DAO 层方法命名规约Get: 完整的拿出某一固定存在的结构(不修改)Build: 需要根据一些因素构建一个结构List : 获取批量Fetch:不用传参数获取Handle: handleFilePathFail这种,用于处理一个错误等Report: 一般用于“上报数据”,这个数据量往往还比较大,例如上报请求体Update: 修改的方法用 update 做前缀。【强制】在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程

2022-04-14 11:43:17 523

原创 【expect】学习

java中的线程与线程池java中的:private ScheduledExecutorService executor;private ScheduledFuture<?> fetchHostsFromServerFuture;executor = Executors.newSingleThreadScheduledExecutor();testFuture = executor. scheduleAtFixedRate(method, 2,

2022-04-11 18:22:36 234 1

原创 【GIN】上下文 bind的几种方法

1. Bindvar req = &vo.RegisterRequest{} ctx.Bind(&req)It writes a 400 error and sets Content-Type header “text/plain” in the response if input is not valid.input不合理时,gin出错后会返回一个文本2. ShouldBind相比于bind, 出错后可以以json格式返回。可判断错误if err := ctx.Shou

2022-03-30 21:11:56 1192 1

原创 【Vue】入门day1安装与编译

官网安装node.js, yarn官网使用yarn安装Vue cli(这里我使用的是vue2.0版本)构建简单项目vue create gin-vue配置相关信息打开vscode, 安装ESLint插件配置vs code中的ESLint配置,让每次保存自动修改格式问题# settings.json中添加"editor.codeActionsOnSave": { "source.fixAll": true},> ESLint可以提供代码规范&..

2022-03-30 14:54:51 744

原创 【expect】脚本学习

expect使用的是tcl语法tcl语法:list:set myVariable {red green blue}puts [lindex $myVariable 2]exec: exec 就是执行一条命令文件读写set fp [open $credential_path r]set file_data [read $fp]# 写: r换成w获取键盘读写set username [gets stdin]返回值接受问题执行shell指令:exec, .

2022-03-28 21:59:53 731

原创 【Go】何时该用指针

go如果需要赋值过去,则需要指针。使用*返回的变量,在声明时候一定也带着地址符号

2022-03-25 22:09:49 502

原创 【Python】interrupted by signal 9: SIGKILL问题原因

Process finished with exit code 137 (interrupted by signal 9: SIGKILL)问题原因:内存不够 out of RAMTimeoutclose by user or system, such as os.kill(os.getpid(), SIGKILL)参考链接

2022-03-16 18:45:52 3286

原创 【GIN】入门day1 安装

安装go get -u github.com/gin-gonic/gin出现tcp time out 443的问题。大概率是代理问题,解决办法:# 自动下载go env -w GO111MODULE=on# 设置环境为国内代理go env -w GOPROXY=https://goproxy.cn,direct

2022-03-05 21:36:08 283

原创 云服务器密码登录异常的解决办法

云服务器密码登录异常输入用户名root和对应密码登录ECS阿里云服务器,发现permission deny。但密码确实是正确的。问题排查远程ssh登录无法成功,但可以通过阿里云的在线命令行登录,排查问题。netstat -ntlp# 例如可以看到sshd相关服务,如果没有LISTEN,运行systemctl start [$Service]开启服务# 如果LISTEN, 可以进一步输入以下命令查看具体状态systemctl status [$Service]#这里我发现了问题:User

2022-02-03 11:41:41 1967

原创 【刷题】栈类型总结

栈1. 利用栈的特点,无规律2. 单调栈问题2.1 84 直方图最大矩阵 使用暴力解法,i,j。判断i, j之间的面积(暴力的话,宽度确定)确定是否是完全单调:发现相等的情况,也必须pop,因为第二次是从右往左筛查,需要得到下一个比他小的节点的index.因此左侧不能够出现和他长度相等的节点。需要重视的点:判断是否为完全单调,碰到相等的,是保留最左端的还是最右端的。因为保留的事最右端的,因此通过top的上一个矩阵的index值获得矩阵width,因此矩阵的width需要先po

2021-11-18 15:53:36 100

原创 pymongo读取mongo超时解决办法

报错:pymongo.errors.CursorNotFound: cursor id ‘…’ not valid at server.原因所在:读取mongo的时候超时了。mongo默认有一个时间限制:the cursor is timing out on the server (after 10 minutes of inactivity).解决办法:The last resort will be that you set no_cursor_timeout=True. But you

2021-11-17 23:50:20 1203

原创 【gcc】gnn图对比学习

gcc代码:git地址GCC: Graph Contrastive Coding for Graph Neural Network Pre-Trainingpretrain graph representation。for unlabeled data无监督图表示学习框架tasksubgraph instance discrimination.for each subgraph, we use a graph neural network (speci! cally, the GIN mod

2021-11-13 22:19:37 514 1

原创 【刷题】路径总和 III的思路历程

【题目】437. 路径总和 III给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。方法1递归可以类似dp一样的考虑。定义 rootSum(p,val) 表示以节点 p 为起点向下且满足路径总和为 val 的路径数目// 本身复杂度O(n)int rootSum(TreeNode* root, int

2021-09-28 11:31:32 148 1

原创 java的IO

2021-09-24 16:44:09 66

原创 redis事件

事件0 Redis处理两种事件:文件事件(对套接字的操作),时间事件(服务器的定时操作)1 Redis内部【单线程】。并发处理事件:可通过IO多路复用,链接多个套接字2 内部通过【套接字】和客户端链接。redis内部有文件事件处理器,使用IO多路复用监听多个套接字。根据套接字目前的任务为套接字关联不同的事件处理器。...

2021-09-24 16:41:15 58

原创 redis高并发高可用

redis是单线程的。redis是基于内存的,cpu不是瓶颈,内存才是瓶颈,所以采用单线程就可以了主从架构 + 哨兵实现高并发高可用高并发的同时,容纳大量的数据,那么就需要 redis 集群

2021-09-24 16:39:29 125 1

原创 《redis设计与实现》读笔之redis过期与持久化

Redis基础redis主要由【dict】【expires】两个字典构成。dict负责键值对,expires保存键值对过期时间。expires结构:{ key:指针,指向键对象 value: longlong过期时间,毫秒为单位的UNIX时间戳}redis键总是一个字符串对象,value可以是任意redis对象类型redis过期1 设置过期EXPIRE, PEXPIRE关键字设置过期2 保存过期过期字典:expires字典保存了所有键的过期时间{key:指针,指向键

2021-09-19 11:55:46 101

原创 《Redis的设计与实现》读笔之redis数据结构与对象

1 数据结构redis基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、hash对象、集合对象、有序集合对象。另外。redis还是用了基于引用计数(java是可达分析)的回收机制,程序不在用时,对象所在内存就会释放。redis对象还有访问时间记录信息,用于计算键的空转时常,优先删除空转时常大的键。1. SDS简单动态字符串大多情况,String使用了SDS而不是传统的c语言的string。因为保存的string也是key, value形式的,一次key底层是一个SDS, va

2021-09-19 11:19:48 82 1

原创 synchronized详解

synchronizedtips: 方法正常执行or抛出异常,都会释放锁synchronized对象:方法锁 and 类锁方法锁:对于普通同步方法,锁是当前实例对象。(每个实例都对应有自己的一把锁(this),不同实例之间互不影响方法块:synchronized括号里配置的对象类锁:静态方法 or *.class:锁是当前class,class的所有对象通用一个锁1 使用方法this方法 或者 手动指定锁// this方法public void run(){ //

2021-09-16 16:47:00 102

原创 【gc】垃圾收集器以及垃圾收集算法

垃圾收集器可以根据分代不同,设定不同的收集器。有时候需要分别为新生代或老年代选用合适的收集器。一般来说,新生代收集器的收集频率较高,应选用性能高效的收集器;而老年代收集器收集次数相对较少,对空间较为敏感,应当避免选择基于复制算法的收集器1 Serial收集器【新生代】 收集器采用复制算法单个GC线程执行垃圾回收垃圾回收时,用户线程暂停2 CMS收集器并发标记清楚收集器(CMS的GC线程可以和用户线程一起工作),因此可以获得最短回收停顿时间。2.【老年代】收集器3. 基于标记-清

2021-09-16 11:49:57 315

原创 【juc】cuncurrentHashMap 1.8 and 1.7实现概览

实现概览jdk1.7之前的使用分段锁segment,每个segment内部是一个hashTable。jdk1.8用数组+链表+红黑树+CAS原子操作 实现 ConcurrentHashMap,也就是给么给线程分配一个桶的区间,并发扩容于转移。HashTableHashTable: synchronized对整个对象进行put等修改Hash时,进行加锁jdk1.7的策略在对象中保存了一个Segment数组,将整个Hash表划分成多个分段。每个Segment类似于一个HashTable。每个Segm

2021-09-14 10:50:42 306

原创 【java】反射

java反射程序在运行期间拿到类的成员变量和方法,调用任意一个对象的属性和方法。(不需要静态创建类,实例化后硬编码来操作了。)JVM为每个加载的类创建对应的实例,并在实例中保存类的所有信息,比如类名,包名,父类,实现的接口等。获得了某个实例,就可以通过实例拿到对应的class的所有信息。将.class文件读入内存时,自动为之创建一个java.lang.Class对象。通过这个Class对象,获得对象的其他信息。得到Class对象的方法用对象调用getClass()方法// 获得类的方法St

2021-09-14 10:09:38 58

原创 【刷题】字符串部分总结

用到的数据结构参考数组。字符串一般都只会包含26个英文字母。可以使用一个长度为26的数组根据下标0-25的value值 对应 a-z个字符在字符串中出现的次数。栈。针对括号匹配、路径拆分等字符串题目,哈希。哈希表在字符串中也是有一定地位的,我们在解题时可以使用哈希表快速完成一些匹配的关系,比如罗马数字转整数中的循环比较队列。枚举的方式;电话号码的字母组合题型总结1. 使用数组的方法数组有两个方法:双指针和前缀和。可以使用双指针中的滑动窗口。1.1【例题】 字符串的排列

2021-09-11 16:31:02 106

原创 【刷题】数组部分总结

首尾指针:范围查找,比如二分搜索等滑动窗口:指针处在数组同一方向,根据条件移动左右指针,用于获取范围和等快慢指针: 多用于链表计算时,判断是否有环等滑动窗口和大于等于 target 的最短子数组问题特质:连续片段(尽量不用动态规划,用一个total就可以记录)解题方法:专门设置有left, right, total等复杂度:O(n)乘积小于 K 的子数组这个题和上一个的区别是要计算,这样的数组出现的个数前缀和问题特质:连续片段[i][j]之间的和可以用前缀d

2021-09-10 10:05:38 82 2

原创 【juc】1.8源码学习 ReentrantLock

基本结构ReetrantLock实现了lock接口。里面包含三个内部类:abstract static class Sync extends AbstractQueuedSynchronizer;static final class NonfairSync extends Sync 实现了Sync中的lock方法static final class FairSync extends Sync 实现了Sync中的lock方法根据参数决定构造的是公平还是非公平(NonfairSync 还是 Fa

2021-09-06 20:21:19 81

原创 【java】list

初始化List<String> languages = new ArrayList<>();languages.add("Java");languages.add("PHP");languages.add("Python");System.out.println(languages);// 或者languages.add(new ArrayList<>(Arrays.asList(1, 2, 3, 6))); result.add(new

2021-09-06 15:44:50 58

原创 【juc】源码1.8学习day2 AQS

AQS 队列同步器构建锁和同步器的框架。可以提供给mutex, retrantLock等使用作用定义了很多同步state的获取和释放的方法来提供同步组件使用,一般用来被继承。提供了一些方法例如getState, setState compareAndSetState支持共享Share和独占两种方式。提供了一些需要被重写的方法,然后就可以将同步器组合在自定义的同步组建中实现了。重写的方法有tryActuire : 独占获取同步状态,判断是否符合预期,tryRelease:独占获取释放状态,

2021-09-03 12:02:25 93

原创 《大话设计模式》读笔之工厂模式&策略模式

《大话设计模式》读笔简单工厂模式解决的是对象的创建问题。使用一个Factory类,根据功能判断具体用的是父类的哪个子类。然后返回这个子类。客户端(main)承接工厂传递的子类后,调用子类中的override公共方法。Operator ope; ope = AddOperator(); return ope;(图片来此此书)策略模式(图片来此此书)以特定方式执行一个操作(或一组操作), 多态地更改类的行为。策略模式可以和工厂模式结合,可以在创建后进行一个执行的操作。封装了一系列算

2021-09-02 17:18:39 69 1

原创 【juc】源码1.8学习day1 LockSupport

参考博文以及源码LockSupport主要提供了park, unpark以及park的一些兄弟:parkNano, parkUniti等,当然这些兄弟和park的功能都类似,就是在锁的时间上做了一些限制。LockSupport简介用来创建锁和其他同步类的基本线程阻塞原语核心函数LockSupport.park(boolean isAbsolute, long time): 线程阻塞. time为等待时间,超过时间自动释放锁LockSupport.unpark: // 不安全,要确保线程依旧存活

2021-09-01 21:59:55 59

原创 【juc】源码1.8学习day1 Atomic* 和 CAS

参考网址 以及源码unsafeJAVA原子类基于unsafe实现,用于提供不安全操作的方法,例如访问系统内存. 返回数组元素内存大小,返回内存页大小,实现CAS,等。像今天提到的AtomicInteger AtomicLong等类以及CAS的原理都是利用了unsafe类的方法。(例如getAndAddInt, addAndGet等)Unsafe类提供了3总CAS方法。compareAndSwapObject, compareAndSwapInt, compareAndSwapLong。底层实现co

2021-09-01 21:52:26 45

原创 【微服务】入门知识点总结

1 微服务1.1 微服务是什么1 将一个单体应用拆分成了一组微小的服务组件。这些组件以业务为中心2 每个组件运行在自己的进程上。组件之间通过轻量级机制进行交互。3 独立部署:使用自动化部署机制部署这些组件。4 独立语言or数据库:采用不同的语言及存储1.2 为什么使用微服务伸缩性(scalable)每个服务都可以在横向和纵向上扩展X轴扩展:负载均衡后,运行多份拷贝,来分摊负载(每个拷贝运行1/n的负载)。Y: 业务扩展:划分成了多个不同的服务,一个服务负责一个或者一部分的功能。Z:

2021-08-30 16:20:48 288

原创 【并发】java知识点总结

知识脉络并发问题的根源:保证线程安全的三要素可见性:CPU缓存引起一个线程对共享变量的修改,另一个线程能立即看见。现象:一个线程1修改一个变量,会先把变量放到cpu缓存中,但这时,另一个线程(对应的cpu不相同!so 缓存不同)需要读取这个变量,从内存中读取出来的结果不一样。解决方案:1 JMM(java内存模型)提供来volatile 2 synchronized,lockvolatile: 当一个共享变量被volatile修饰时,保证修改的值立即被更新到主存。synchroniz

2021-08-30 16:19:56 82

原创 【java基础知识】总结

借鉴自java基本类型:booleancharlongshortintfloatdoublebyte所占存储空间大小不变java关键字abstract class extends final implements interface nativenew static strictfp synchronized transient volatile 1. abstract 声明抽象abstract关键字可以修改类或方法。abstract类:(为了被子类重写)可以扩展(增加子

2021-08-30 16:19:13 89

原创 【mysql】知识点总结

范式关键字事物的ACID引擎并发的问题事物的隔离级别索引7.1. 1. MyISAM7.2. 2. innoDB7.2.1. 主索引和辅助索引:7.2.2. 索引覆盖7.2.3. 添加索引的方法7.2.4. 37. 优化mysql语句的知识点1. 范式1NF:符合原子特性,不可再分。这个字段只能是一个值,不能再分为多个其他的字段了2NF:消除非候选集对码的部分函数依赖(比如姓名依赖于学号,姓名依赖于身...

2021-08-30 16:18:45 91

知识点+作业.rar

程序设计语言原理 平时作业+知识点总结

2021-01-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除