01 2023 档案
摘要:DRAFT 梳理下我的技能树,要学的太多,学无止境
阅读全文
摘要:最近需要开发一个 Java 的代码生成器,周末看了 2 天廖雪峰的 Java 教程,就能直接上手写 Java。说下自己最明显的感受,用的不多,理解不一定对: 【编译/解释】Java 编译+解释,运行在 JVM,跨平台移植方便,但执行速度/效率比 C++ 低 【编程范式】Java 纯面向对象,除了几个
阅读全文
摘要:单例模式有很多种实现: 懒汉/饿汉 非线程安全 线程安全 每次判空加锁(效率不高) DCL:Double-check lock(繁琐,C++11 之前的最佳实现) Meyers’ singleton:静态变量(简洁,C++11 之后的最佳实践) C++11 规范保证了局部 static 对象的线程安
阅读全文
摘要:考察点 返回值类型 MyClass&,可以连续赋值 参数类型:(const MyClass& rhs) 或者 (MyClass rhs) 值传递(copy-swap) 自赋值安全 无内存泄漏,旧值需要析构 异常安全 参考实现 copy-swap 惯用法 BennyHuo class MyString
阅读全文
摘要:验证局部静态变量 static int cnt 在无锁情况下的 data race: 测试 C 源码: #include <stdio.h> #include <pthread.h> #include <stdlib.h> void* foo(void* args) { static int cnt
阅读全文
摘要:问题描述 交叉编译的可执行文件,无法在 host 上使用 ldd 命令查看其依赖的动态库,可以用交叉编译工具链中的 readelf 来实现类似的功能。 解决方案 假设交叉编译用的 readelf 位于 /usr/bin/aarch64-linux-gnu-readelf(可以换成你所用的交叉编译工具
阅读全文