- 博客(50)
- 资源 (1)
- 收藏
- 关注
原创 Makefile
Makefile是一个包含了一系列规则和指令的文件,它告诉make工具如何编译和链接程序。直接生成gcc的指令。make是一个在Unix和类Unix系统上广泛使用的构建自动化工具,它能够根据文件的时间戳自动判断哪些文件需要更新,并仅重新编译那些发生变化的部分,从而大大节省构建时间。
2025-01-17 10:37:32
638
原创 锦瑟无端五十弦
所以我不会忘记,我只是过滤出那些美好的幸福的时刻让我学会去珍惜,在老了干不动的时候可以拿出来,配合上现在储存好的情绪慢慢看过夕阳。死亡是最伟大的发明,它让我意识到我们有很长的时间去回忆心绪,而现在,我们活着的时候就好好的活着,以后的自己会是最好的自己,即使没有你,ss。而在2019年10月17日的这天,连规矩也被你打破了,我轻轻的问候也得不到你简单的回答,我隐隐约约觉得出事了。诅咒一下那个心爱的女生:在你未来生下小孩想减肥的时候,总是比希望的体重会多两斤,那是我偷偷放进去的祝福——微胖健康的ss是最美的。
2024-12-19 14:40:29
349
原创 引用、常量引用与赋值、移动构造:深入解析
在C++编程中,常量引用(const reference)和值类型(value type)是两个至关重要的概念,它们在日常编码中频繁出现,尤其是在函数参数传递、变量赋值以及性能优化方面。本文将深入探讨常量引用的特性,以及如何将常量引用赋值给值类型,同时分析这一过程中的注意事项和潜在的性能优势。
2024-12-12 21:00:28
849
原创 分清社保、医保、新农合
1、如果我们购买的是城镇职工医疗保险,公司买的也是城镇职工养老保险,这样我们就不可以只买其中一样。3、如果我们是以城乡居民购买的医疗保险和养老保险,那么就可以分开购买,因为城乡居民养老保险、城乡居民医疗保险两者是没有捆绑在一起的。2、如果我们是以灵活就业人员的身份参加职工社保,这种情况我们也是无法只交医保不交养老的,因为两者之间也是捆绑在一起的;三种社保中,职工社保只要连续或累计缴纳一定年限(比如成都是连续15年或累计20年),就可以在退休后也能免费享受医保。所以医保是一定要缴纳的。
2023-12-04 20:21:18
479
原创 Android 断点调试
点击 Attach debugger to Android process 图标。调试自己写的代码(不在Android源码)Android 调试。
2023-12-01 17:10:06
674
原创 交叉编译gRPC初实践
此时由于设置了CMAKE_FIND_ROOT_PATH_MODE_LIBRARY为ONLY,则此后面使用find_library寻找第三方库的时候,不论是否传入了路径,也不论是否设置了CMAKE_PREFIX_PATH,都无法找到,因为此时find_library只会从CMAKE_FIND_ROOT_PATH设置的路径中寻找。对于CMAKE_FIND_ROOT_PATH_MODE_INCLUDE 之于find_path,同样的道理。二、cmkae生成对应Makefile等编译所需的文件。
2023-07-17 11:26:29
650
原创 升级后,配置文件被清空,导致无法开启WiFi
data/vendor/wifi/wpa/wpa_supplicant.conf 是0字节,导致wpa_supplicant_init_iface缺少”p2p_disabled=1“的配置就会在走错flow到p2p。实验一:在/data/vendor/wifi/wpa/wpa_supplicant.conf 加入”p2p_disabled=1“,并重启,问题消失。实验三:/data/vendor/wifi/wpa/wpa_supplicant.conf 清空内容,确认文件大小为0字节,并重启,问题复现。
2023-06-14 14:12:30
1442
原创 C++编程小技巧
将string转char*,可以使用string提供的c_str()或者data()函数。其中c_str()函数返回一个以’\0’结尾的字符数组,而data()仅返回字符串内容,而不含有结束符’\0’。
2022-12-28 10:30:31
121
原创 gRPC闭包调度器
代码中对这个结构的作用说明是在调用栈上收集数据信息。考虑下面的场景:A,B,C,D为4个依次调用的函数,B执行过程中调度了一个闭包1,并希望其在返回到A时执行。D同样调度了闭包2,也希望返回到A时再执行。这个时候就要使用这个调度器了grpc_schedule_on_exec_ctx....
2022-08-10 16:02:20
365
原创 gRPC基础概念:闭包
closure就是闭包的英文名称.简单的理解,闭包函数将创建闭包时的上下文中的变量与自己绑定在一起,将变量的生存期和作用域延长到闭包函数结束。概念有点儿抽象,下面是python中一个闭包的例子:nonlocal nn+=1print(f(5)) //输出16print(f(5)) //输出17。......
2022-08-10 15:44:36
211
原创 gRPC intro 前言:RPC
Remote Procedure Call(RPC):远程过程调用。当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手段之一。除 RPC 之外,常见的多系统数据交互方案还有分布式消息队列、HTTP 请求调用、数据库和分布式缓存等。其中 RPC 和 HTTP 调用是没有经过中间件的。过程是什么?过程就是业务处理、计算任务,更直白理解,就是程序。(像调用本地方法一样调用远程的过程。)
2022-08-01 17:57:52
476
原创 clssloader与双亲委派
JVM里的有几种classloader,为什么会有多种?什么是双亲委派机制?介绍一些运作过程,双亲委派模型的好处;什么情况下我们需要破坏双亲委派模型;常见的JVM调优方法有哪些?可以具体到调整哪个参数,调成什么值?...
2019-10-20 21:35:02
163
原创 JUC并发容器——跳表
跳表 SkipList跳表是随机化的一个数据结构,以O(logn)的期望时间支持查找和插入。跳表是链表的优化,在有序链表的基础上,它把一维的线性链表做了一些提取,相当于新建了若干层索引,借索引减少比较次数。JDK中没有SkipList的代码实现(和其他数据结构相比,其实并不复杂),但却有Doug Lea书写的ConcurrentSkipList在网上学习了一些材料。https://w...
2019-10-19 17:39:39
355
原创 JUC并发容器——阻塞队列
生产者消费者尽管性能不如并发队列,但阻塞队列更加适合生产消费者的场景,这是因为它支持两个附加操作:支持阻塞的插入方法:当队列满时,队列会阻塞插入元素的线程,直到队列不满。支持阻塞的移除方法:当队列空时,队列会阻塞获取元素的线程,直到队列非空。...
2019-10-19 17:24:46
167
原创 JUC并发容器——ConcurrentLinkedQueue
线程安全的队列阻塞队列:使用一个锁(进队和出队同一个锁)和两个锁(入队和出队用不同的锁)非阻塞队列:ConcurrentLinkedQueueConcurrentLinkedQueue特性:是一个基于链接节点的无界线程安全队列,按先进先出的插入顺序进行排序,它采用“wait-free”算法(CAS算法)实现,具体实现:添加元素时它会添加到队列尾部;获取元素时,它会返回队列头部的...
2019-10-19 17:15:54
123
原创 Android 反编译与防止被反编译
反编译神器:jadx防止反编译防止反编译的几种方法Android ProGuard启用ProGuard在Android专案根目录下,有个「project.properties」档案,找到以下字串,并移除掉前面的「#」,即可启用ProGuard。#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:progua...
2019-10-12 10:35:05
310
原创 JUC并发容器——ConcurrentHashMap
Hashmap(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。如果需要满足线程安全,可以用 Collections的sync...
2019-10-11 09:23:57
192
原创 并发概念基础:并发、同步、阻塞
多线程和并发并发与多线程之间的关系就是目的与手段之间的关系。并发(Concurrent)的反面是串行,串行好比多个车辆行驶在一股车道上,它们只能“鱼贯而行”。而并发好比多个车辆行驶在多股车道上,它们可以“并驾齐驱”。并发的极致就是并行(Parallel)。多线程就是将原本可能是串行的计算“改为”并发(并行)的一种手段、途径或者模型。并行:在操作系统中,一组程序按独立异步的速度执行,无论从...
2019-10-08 10:59:51
383
原创 JVM三大常量池与方法区
版本主线hotspot从1.6到1.8,方法区的实现从永久代转移到元空间。Java 1.7作为过渡版本,率先实现部分区域的转移,分别是:字符串常量池转移到heap静态变量转移到heap(java.lang.Class对象的末尾)把SymbolTable引用的Symbol移动到了native memory1.8在此基础上,将剩余部分一鼓作气转移。静态变量 + 常量 + 类信息(构造...
2019-09-23 17:19:15
489
原创 20170729
周六在家看了一些哲学知识:1. 生活方式和追求这些东西别人无权干涉,包括父母,当然干涉了也会适得其反。每个人都有对生活的理解1. 找到那个热爱的事情,如果不行。就热爱生活,如果不行,就爱身边爱你的人。如果还不行,就好好爱自己,自立,自强,逼迫自己一点点进步。2. 但是要找到这个热爱的事情需要经历,尝试这些经历最需要的是勇气和勇敢,勇敢的力量源泉来源于相信或者叫信仰也可以,要相信自己配得...
2019-09-19 15:59:37
109
原创 罗斯50分
很久没有这样盼着一个人赢了,尽管我不是罗斯的球迷,大抵因为看球太晚,错过了玫瑰绽放的岁月,但他的传闻从来都不绝于耳——史上最年轻MVP,是带脑子的威少…但此后的2000多天里受制于大伤不断,辗转于各支球队,从主力到角色球员到考虑退役。张爱玲说“出名要趁早”,但如果大起大落呢?“眼见他起高楼,眼见他宴宾客,眼见他楼塌了”,此中滋味,如人饮水。来看这场比赛,罗斯40分钟50+4+6,但全都不是熟悉的...
2019-08-16 19:52:58
139
原创 JUC锁框架——CountDownLatch、CyclicBarrier和Semaphore
有用于同步一批线程的行为,分别是CountDownLatch、Semaphore和CyclicBarrier。join方法 // Thread.java中也有一个类似的基础方法 public final synchronized void join(long millis) throws InterruptedException { long base = S...
2019-08-13 14:22:19
175
原创 JUC锁框架——基于AQS的实现,从ReentrantLock认识独占和共享
JDK中有以下基于AQS的实现ReentrantLockCountDownLatchSemaphoreReentrantReadWriteLockCyclicBarrier (委托给ReentrantLock)首先关于源码中经常出现 final ReentrantLock takeLock = this.takeLock 写法:这是一个有关volatile变量的lock-free...
2019-08-12 11:23:41
409
原创 JUC锁框架——初识AQS
AQS:AbstractQueuedSynchronizerSynchronized和ReentrantLock的实现原理是不一致的,Synchronized是依靠java虚拟机的功能实现的。ReentrantLock则是有AQS这样一个背后大Boss在提供帮助啊!Thread.sleep、Object.wait、LockSupport.park 区别...
2019-08-09 17:43:48
198
原创 姿势
姿势有一位同事曾经说过:“一切体育竞技都是合理使用身体来完成标准的姿势。” 窃以为,不只是体育,还包括一部分的工作和生活。 在遇到实实在在的问题时,首先需要调正的是身体状况。全面检查+加强营养+纠正坏习惯(熬夜,不运动,暴饮暴食) 其次应该注意姿势的保持,不只是指正确的站姿、坐姿,还包括一些已经证明可以逆向推到的姿势。 比如,人放松的时候会吃东西,同理可以吃口香糖放松 这种方法可以叫
2018-01-22 16:13:55
311
原创 如何面对别人的帮助?
展现顶级的学习能力,展现前列求助意愿(详细有条理的,已经做过的努力)接受建议后马上心动,给出反馈适合的时机表达自己的感激之情
2017-10-25 21:05:44
364
原创 java 覆盖和隐藏
public class TestOverride{ public static void main(String args[]){ Sup s = new Sub(); Sub ss = new Sub(); s.doit(); s.something(s); s.something(ss); s.anything(); ss.something(s); ss.something
2017-10-24 15:20:51
214
原创 压缩算法核心代码Java
应工作需要,研究了下压缩算法思想,分享如下: 1. Compress radio = compressedSize/origSize 2. 重复现象是具有局部性的,这是压缩算法思想的基础 3. 基础操作: 8bit转byte: Integer i = Integer.parseInt(8bitStr, 2); // byte 与 i
2017-10-13 17:59:41
649
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人