Loading

上一页 1 ··· 6 7 8 9 10
摘要: 数组,字符串 最后一个单词长度 class Solution: def lengthOfLastWord(self, s: str) -> int: end = len(s) - 1 while s[end] == " ": end -= 1 start = end while start >= 0 阅读全文
posted @ 2024-07-04 10:47 Duancf 阅读(21) 评论(0) 推荐(0)
摘要: 报文 三次握手 四次挥手 OSI七层模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 TCP/IP四层模型 应用层 传输层 网络层 网络接口层 全双工 全双工(Full-Duplex)是指在通信中,数据传输能够在两个方向上同时进行,允许双方在同一时间既能发送数据,又能接收数据。这种方 阅读全文
posted @ 2024-07-04 10:20 Duancf 阅读(52) 评论(0) 推荐(0)
摘要: 为什么需要加密? 因为http的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是中间人攻击。所以我们才需要对信息进行加密。最容易理解的就是对称加密 阅读全文
posted @ 2024-07-04 10:17 Duancf 阅读(91) 评论(0) 推荐(0)
摘要: DOS DoS攻击(拒绝服务攻击,Denial of Service Attack)是一种网络攻击手段,旨在使网络服务或资源对合法用户不可用。与分布式拒绝服务攻击(DDoS)相比,DoS攻击通常源自单一的攻击者或系统,而不是像DDoS那样由多个分散的系统协同进行。攻击者的目的是通过超负荷请求或发送特 阅读全文
posted @ 2024-07-04 10:08 Duancf 阅读(113) 评论(0) 推荐(0)
摘要: HTTP/1.0 无状态:服务器不跟踪不记录请求过的状态 无连接:浏览器每次请求都需要建立tcp连接 HTTP/1.0规定浏览器和服务器保持短暂的连接。浏览器的每次请求都需要与服务器建立一个TCP连接,服务器处理完成后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态) 阅读全文
posted @ 2024-07-03 21:41 Duancf 阅读(74) 评论(0) 推荐(0)
摘要: 线程池参数 ThreadPoolExecutor tpe = new ThreadPoolExecutor( 10, 20, 1L, TimeUnit.SECONDS, new ArrayBlockingQueue<>(100), new ThreadPoolExecutor.CallerRunsP 阅读全文
posted @ 2024-07-03 20:43 Duancf 阅读(47) 评论(0) 推荐(0)
摘要: 方法中的 this 在对象中的方法中, this 指向调用它所在方法的对象。 var person = { firstName: "John", lastName : "Doe", id : 5566, fullName : function() { return this.firstName + 阅读全文
posted @ 2024-06-27 21:24 Duancf 阅读(28) 评论(0) 推荐(0)
摘要: package SkipList import ( "fmt" "math/rand" ) const MaxLevel = 10 type Node struct { score int value string next []*Node } func NewNode(score int, val 阅读全文
posted @ 2024-06-23 19:04 Duancf 阅读(21) 评论(0) 推荐(0)
摘要: 手写一个协程池 阅读全文
posted @ 2024-06-23 18:48 Duancf 阅读(17) 评论(0) 推荐(0)
摘要: ThreadLocal 本文参考 参考资料 什么是内存泄漏 内存泄漏指的是,当某一个对象不再有用的时候,占用的内存却不能被回收,这就叫作内存泄漏 因为通常情况下,如果一个对象不再有用,那么我们的垃圾回收器 GC,就应该把这部分内存给清理掉。这样的话,就可以让这部分内存后续重新分配到其他的地方去使用; 阅读全文
posted @ 2024-06-23 16:58 Duancf 阅读(22) 评论(0) 推荐(0)
摘要: Thread源码 构造方法 Thread() Allocates a new Thread object. Thread(Runnable target) Allocates a new Thread object. Thread(Runnable target, String name) Allo 阅读全文
posted @ 2024-06-23 16:57 Duancf 阅读(25) 评论(0) 推荐(0)
摘要: HashMap和ConcurrentHashMap的区别 主要区别就是hashmap线程不安全,ConcurrentHashMap线程安全 HashMap线程不安全,有以下两个问题 put覆盖问题 比如有两个线程A和B,首先A希望插入一个key-value对到HashMap中,首先计算记录所要落到的 阅读全文
posted @ 2024-06-23 16:43 Duancf 阅读(32) 评论(0) 推荐(0)
摘要: String 常量池/运行时常量池 java类编译之后生成的.class文件包含三部分信息, 类的基本信息,常量池,方法的定义 通过javap -v xxxx.class命令可以看到 Constant pool: #1 = Methodref #2.#3 // java/lang/Object."< 阅读全文
posted @ 2024-06-23 16:31 Duancf 阅读(29) 评论(0) 推荐(0)
摘要: 什么是Goroutine Goroutine = Golang + Coroutine。Goroutine是golang实现的协程,是用户级线程。 Goroutine的特点: 相比线程,其启动的代价很小,以很小栈空间启动(2Kb左右)[这个特点使得我们可以在一台机器上并发成千上万的线程] 能够动态地 阅读全文
posted @ 2024-06-23 15:31 Duancf 阅读(85) 评论(0) 推荐(0)
摘要: 动态栈 每一个OS线程都有一个固定大小的内存块(一般会是2MB)来做栈,这个栈会用来存储当前正在被调用或挂起(指在调用其它函数时)的函数的内部变量。这个固定大小的栈同时很大又很小。因为2MB的栈对于一个小小的goroutine来说是很大的内存浪费,比如对于我们用到的,一个只是用来WaitGroup之 阅读全文
posted @ 2024-06-23 14:42 Duancf 阅读(38) 评论(0) 推荐(0)
摘要: 概括 sync.Map的实现原理可概括为: 通过 read 和 dirty 两个字段将读写分离,读取时会先查询 read,不存在再查询 dirty,写入时则只写入 dirty,所以read相当于dirty的缓存。 读取 read 并不需要加锁,而读或写 dirty 都需要加锁。 misses 字段统 阅读全文
posted @ 2024-06-23 11:16 Duancf 阅读(67) 评论(0) 推荐(0)
摘要: 源码 // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LI 阅读全文
posted @ 2024-06-23 11:12 Duancf 阅读(25) 评论(0) 推荐(0)
摘要: 垃圾收集器 Serial ParNew Parallel Scavenge Serial Old Parallel Old CMS G1 收集区域 面向全堆 面向全堆 面向新生代 面向老年代 面向老年代 面向老年代 面向回收集 在新生代上 标记加复制 标记加复制 标记加复制 标记加整理 在老年代上 阅读全文
posted @ 2024-06-18 20:49 Duancf 阅读(54) 评论(0) 推荐(0)
摘要: 切片 切片底层 Slice(切片)代表变长的序列,序列中每个元素都有相同的类型。一个slice类型一般写作[]T,其中T代表slice中元素的类型;slice的语法和数组很像,只是没有固定长度而已。 数组和slice之间有着紧密的联系。一个slice是一个轻量级的数据结构,提供了访问数组子序列(或者 阅读全文
posted @ 2024-06-18 20:36 Duancf 阅读(64) 评论(0) 推荐(0)
摘要: 概述 上一章我们学习了Class文件存储格式的具体细节,在Class文件中描述的各类信息,最终都需要加载到虚拟机中之后才能被运行和使用。而虚拟机如何加载这些Class文件,Class文件中的信息进入到虚拟机后会发生什么变化,这些都是本章将要讲解的内容。 Java虚拟机把描述类的数据从Class文件加 阅读全文
posted @ 2024-06-18 20:16 Duancf 阅读(47) 评论(0) 推荐(0)
摘要: map是并发安全的吗? 首先我们写一段程序验证一下,创建两个goroutine,同时对一个map进行写操作,看看会发生什么吧! func main() { m := make(map[string]int) m["foo"] = 1 var wg sync.WaitGroup wg.Add(2) g 阅读全文
posted @ 2024-06-18 20:11 Duancf 阅读(39) 评论(0) 推荐(0)
摘要: 单例模式 因为之前研究Java比较多,所以当我试着使用go来实现一些设计模式的时候,首先想到的就是照搬Java中的思路,后面对go了解加深之后又增加了一些新的思路。 在Java中实现的单例模式的思路有很多,但是比较好的两个思路是利用类加载机制生成单例对象,check-lock-check机制避免并发 阅读全文
posted @ 2024-06-18 17:25 Duancf 阅读(38) 评论(0) 推荐(0)
摘要: Lab07 递归与函数 1. 正整数的各位数字之和 #include <stdio.h> #include <math.h> int sum(int a); int main() { int a = 0; scanf("%d", &a); printf("%d", sum(a)); return 0 阅读全文
posted @ 2023-11-07 22:19 Duancf 阅读(82) 评论(0) 推荐(0)
摘要: 注意 不要使用\b 条件判断中不要使用isgraph(),建议使用'a'<c && c<'z' 条件判断中不要使用 & 和 | ,系统认为可读性不够好。 不要自己写输出,直接复制原文的输出语句做替换。 Lab07 递归与函数 6. *号构成的菱形图案 输出示例,请务必注意,*之间有空格,所以输出空格 阅读全文
posted @ 2023-11-06 21:58 Duancf 阅读(185) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10