上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 69 下一页

2023年7月15日

HashMap和ConcurrentHashMap

摘要: HashMap 结构桶数组+单链表+红黑树(JDK1.8引入) 容量是2的幂的原因寻找位置时,(n - 1)& hashCode值等价于hash%n,但是&比%具有更高的效率。得到key的hashCode值后,通过二次hash(第一次hash时右移 16 位,hashCode值高16位与低16位异或 阅读全文

posted @ 2023-07-15 15:24 王景迁 阅读(25) 评论(0) 推荐(0)

JVM内存模型和类加载

摘要: 内存模型 JVM内存模型主要分为堆、程序计数器、方法区、虚拟机栈和本地方法栈。 堆 堆中包含了字符串常量池。 程序计数器 记录线程执行的字节码的地址。 方法区 存放已被虚拟机加载的类相关信息,包括类信息、运行时常量池(存放编译生成的字面量和符号引用)。当类加载到内存后,JVM把类文件常量池中的内容存 阅读全文

posted @ 2023-07-15 15:21 王景迁 阅读(18) 评论(0) 推荐(0)

JVM垃圾收集

摘要: 默认垃圾收集器 JDK1.7和JDK1.8默认垃圾收集器都是ParallelScavenge(新生代)+ParallelOld(老年代)JDK1.9默认垃圾收集器G1 查看命令:java -XX:+PrintCommandLineFlags -version G1 JDK 1.7推出的垃圾收集器,特 阅读全文

posted @ 2023-07-15 15:15 王景迁 阅读(61) 评论(0) 推荐(0)

Java基础

摘要: 跨平台原理 Java的跨平台基于编译器和JVM。编译器把源文件编译成与平台无关的字节码class文件,JVM把该文件解释成与平台有关的机器码指令,在平台上执行。 Java面向对象的4个特征 1 抽象提取对象的共性,构成抽象类或接口,由继承抽象类的类或接口的实现类来重写抽象方法。2 继承子类继承父类( 阅读全文

posted @ 2023-07-15 15:06 王景迁 阅读(20) 评论(0) 推荐(0)

go 时间错误

摘要: invalid operation: n * time.Second (mismatched types int and time.Duration) package main import "time" func main() { n := 1 time.Sleep(n * time.Second 阅读全文

posted @ 2023-07-15 10:28 王景迁 阅读(79) 评论(0) 推荐(0)

go panic

摘要: panic可能原因 1. 空指针2. 直接调用panic函数3. 数组越界4. map读写并发(recover不能恢复) core dump程序出现段错误时出现的错误文件,通过该文件确认错误的位置。程序因段错误异常终止时打印堆栈信息// 开启core dump功能,不限制core文件大小ulimit 阅读全文

posted @ 2023-07-15 10:24 王景迁 阅读(115) 评论(0) 推荐(0)

go strings.Builder

摘要: 字符串拼接和strings.Buffer缺点 Go里面的字符串是常量,对字符串的修改会重新申请内存地址。虽然bytes.Buffer避免了字符串修改过程中的内存申请,但是最后从[]byte转成字符串时会重新内存申请。从Go 1.10开始,提供了性能更好的方法strings.Builder,与byte 阅读全文

posted @ 2023-07-15 10:20 王景迁 阅读(250) 评论(0) 推荐(0)

patrickmn.gocache

摘要: 一句话概括 基于内存的KV缓存,支持删除和过期以及持久化到文件并恢复。 使用示例 go.mod增加依赖require github.com/patrickmn/go-cache v2.1.0+incompatible package main import ( "log" "time" "githu 阅读全文

posted @ 2023-07-15 10:15 王景迁 阅读(78) 评论(0) 推荐(0)

切片

摘要: 结构体定义 runtime/slice.go文件中 type slice struct { array unsafe.Pointer // 数组的指针 len int cap int } 扩容 通过append方法添加数据,返回一个新的slice对象,地址和之前不一样。但是原来元素地址是不变的,直到 阅读全文

posted @ 2023-07-15 10:11 王景迁 阅读(39) 评论(0) 推荐(0)

go map

摘要: map内存模型 // A header for a Go map. type hmap struct { // 元素个数,调用 len(map) 时,直接返回此值 count int flags uint8 // buckets 的对数 log_2 B uint8 // overflow 的 buc 阅读全文

posted @ 2023-07-15 10:08 王景迁 阅读(56) 评论(0) 推荐(0)

上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 69 下一页

导航