• 2024-07-04JVM专题之G1垃圾收集器下
    索引(记录)的源码的工作流程图如下:CSet(CollectionSet回收集合)收集集合(CSet)代表每次GC暂停时回收的一系列目标分区。在任意一次收集暂停中,CSet所有分区都会被释放,内部存活的对象都会被转移到分配的空闲分区中。因此无论是年轻代收集,还是混合收集,工作的机制都是一致的。年轻
  • 2024-07-03聊聊C++20的三向比较运算符 `<=>`
    C++20标准引入了许多新特性,其中之一是三向比较运算符<=>,也被称为太空船运算符。这个新运算符为C++程序员提供了一种全新的比较对象的方式,它能有效简化比较逻辑,避免编写多个比较运算符重载的情况。为什么需要三向比较运算符?在C++20之前,如果要完整地定义一个类型的比较行为
  • 2024-06-17C++11智能指针 unique_ptr、shared_ptr、weak_ptr与定制删除器
    目录智能指针场景引入-为什么需要智能指针?内存泄漏什么是内存泄漏内存泄漏的危害内存泄漏分类如何避免内存泄漏智能指针的使用及原理RAII简易例程智能指针的原理智能指针的拷贝问题智能指针的发展历史std::auto_ptr模拟实现auto_ptr例程:这种方案存在的问题:Boost库中的智能指针
  • 2024-06-16C++智能指针
    std::unique_ptr:独特所有权模型,一个std::unique_ptr在同一时间内只允许有一个对象实例。它不允许被复制,但可以被移动。std::shared_ptr:共享所有权模型,多个std::shared_ptr可以指向同一对象,通过引用计数机制来管理对象的生命周期。当最后一个指向对象的std::shared_ptr被销毁时,对
  • 2024-06-04_weak c语言在实际使用中有什么核心作用
    C语言中__weak关键字的核心作用在C语言中,__weak关键字通常用于声明弱符号,它允许在链接阶段出现多个同名函数的情况下,选择性地指定某个函数具有较低的优先级。如果在代码中使用了__weak修饰的函数,并且在链接时没有找到其他同名的强符号函数,那么编译器会自动链接到这个弱符号函
  • 2024-05-31[论文阅读] Aligner@ Achieving Efficient Alignment through Weak-to-Strong Correction
    Pretitle:Aligner:AchievingEfficientAlignmentthroughWeak-to-StrongCorrectionsource:Arxiv2024paper:https://arxiv.org/abs/2402.02416code:https://aligner2024.github.io/ref:https://mp.weixin.qq.com/s/O9PP4Oc_Ee3R_HxKyd31Qg关键词:LLM,align,fin
  • 2024-05-30DVWA-Weak Session IDs
    用户登录之后,服务端会创建一个session,里面存储用户的状态和相关信息。而为了缓和客户端的存储压力,客户端只存储一个session_id,一般session_id放在cookie中。如果session_id被劫持,黑客可以使用其登录直接登录到目标账户。题目有点没看懂拿HighLevel举例,只拿到PHPSESSID就
  • 2024-05-28智能指针一些实现分析
    智能指针一些实现分析提供值传递但是指针语义的功能。通过指针占用并且对管理对象,在离开作用域时释放该对象。在使用上还有另外一个很好用的功能,精简了代码复杂度,管理的对象类可以省略以下的函数默认构造函数复制构造函数复制赋值函数比如有一个类Fd用于管理fd,并且拥
  • 2024-05-17UES-07-Set 和 Map
    之前的Set和Map对象模拟Set:letobj=Object.create(null);//创建的对象原型为nullobj.v=true;if(obj.v)//判断值是否存在模拟Map:letobj=Object.create(null);obj.key="value";letv=obj.key;//"value"变通方法问题对象使用的任何类型的属性(
  • 2024-04-25[题解]CF61E Enemy is weak
    CF61EEnemyisweak如下图,第\(i\)行\(j\)列表示第\(j\)个数结尾,向前长度为\(i\)的逆序子序列个数。递推方式见下图。第一行全为\(1\)。要填第\(2\)行的值,就往前找所有\(>\)当前元素的位置,把它们第\(1\)行的值加起来。要填第\(3\)行的值,就往前找所有\(>\)当前元素的位置,把
  • 2024-04-07C++智能指针学习——小谈引用计数
    目录前言控制块简介共享控制块引用计数与弱引用计数创建过程__shared_ptr__shared_count_Sp_counted_base弱引用计数增加过程再谈共享控制块__weak_count引用计数增加过程弱引用计数的减少过程弱引用计数减为0引用计数的减少过程引用计数减为0参考文章前言本文结合源码讨论std::
  • 2024-04-06智能指针详解
    目录自己管理指针会有什么潜在的问题智能指针的作用share_ptr(共享智能指针)初始化的方式shared_ptr获取原始指针weak_ptr(弱引用智能指针)初始化的方式use_count()expired()lock()reset()返回管理this的shared_ptr循环引用问题图释循环引用:​编辑解决方法:
  • 2024-04-03上电时间计算
    前言:CH573/582上电到运行第一个初始化的时间最快约53ms左右;592最快约22ms左右。注意将串口免按键功能关闭。思路:上电之后从启动文件启动,直接跳转到60M主频进行运行,然后在main函数中翻转io进行判断时间。测试工具,使用功耗计测试(可以看到上电的波形和运行到翻转io的波形)。代码
  • 2024-03-14为什么weak_ptr可以解决循环引用问题
    weak_ptr可以解决循环引用问题的主要原因在于它不会增加对象的引用计数,从而不会导致对象无法被销毁。在循环引用中,两个或多个对象相互持有对方的shared_ptr,导致对象的引用计数始终不为零,即使程序不再使用这些对象,它们也无法被销毁,从而造成内存泄漏。weak_ptr的引入可以打破这
  • 2024-03-02shared_ptr, unique_ptr,weak_ptr
    #include<iostream>#include<memory>classMyClass{public:MyClass(){std::cout<<"MyClassconstructed"<<std::endl;}~MyClass(){std::cout<<"MyClassdestructed"<<std::endl;}v
  • 2024-02-26C++内存管理
    关于C++内存和分配的学习笔记C++内存和分配很容易出问题,为了编写高质量的CPP代码,我们必须了解幕后的工作原理。1.内存泄漏例如:voidleaky(){newint;//这里就是内存泄漏cout<<"我泄漏了一个int的内存!"<<endl;}自由存储区中的数据库无法被栈或者间接访问,这块内存被
  • 2024-02-25__weak关键字和__attribute__ --20240225
    __weak关键字__weak是一个c/c++编译器关键字,用于定义一个弱化符号。弱化符号是一种在链接阶段可以被覆盖的符号,允许多个同名符号存在于不同的目标文件中,而不会产生冲突。 当一个符号被声明为__weak时,它具有两个特性:1、如果该符号在某个目标文件中被定义,那么这个定义将成为默
  • 2024-01-13C++ --- 智能指针
    一、智能指针存在的意义智能指针主要解决以下问题:(1)内存泄漏:内存手动释放,使用智能指针可以自动释放。(2)共享所有权指针的传播和释放,比如多线程使用同一个对象时析构问题。 智能指针的实现依赖于C++语言的RAII(资源获取即初始化)技术,即资源的获取和释放应该与对象的构造和析构分
  • 2023-12-18万字长文全面详解现代C++智能指针:原理、应用和陷阱
    现代C++智能指针详解:原理、应用和陷阱智能指针是C++11引入的新特性。本篇文章详细介绍了C++智能指针的原理、应用与陷阱,通过丰富的代码实例介绍了三种智能指针:std::unique_ptr、std::shared_ptr和std::weak_ptr的原理、使用方法和适用场景,还介绍了智能指针的线程安全性、使用陷阱
  • 2023-12-06unique_ptr 和 shared_ptr
    unique_ptr和shared_ptr是C++标准库中的智能指针,用于管理动态分配的对象的生命周期,以避免内存泄漏和手动资源管理的问题。unique_ptr:std::unique_ptr是一个独占所有权的智能指针,确保在任何时候只有一个unique_ptr拥有对动态分配的对象的所有权。当unique_ptr被销
  • 2023-11-15在ARC(自动引用计数)下,IBOutlets 应该是强引用(strong)还是弱引用(weak)?
    内容来自DOChttps://q.houxu6.top/?s=在ARC(自动引用计数)下,IBOutlets应该是强引用(strong)还是弱引用(weak)?我正在使用ARC(自动引用计数)专门为iOS5进行开发。在这种情况下,指向UIView(及其子类)的IBOutlet应该是strong还是weak?以下是示例:@property(nonatomic,weak)IBO
  • 2023-10-27GCC嵌入式开发
    1.编译器和IDE介绍最早刚入门单片机开发的时候,用的最多的就是KEIL开发,但是随着现在的编辑软件不断丰富,类似于KEIL这种偏上世纪的界面编写代码的时候已经十分不优雅了。而仔细刨析下KEIL可以发现,KEIL主要是由一个名为ARMCC的编译器搭建起来的IDE(以下KEIL主要已MDK-ARM说明,C51版本
  • 2023-09-18DVWA靶场通关-Weak Session IDs(弱会话IDs)
    当用户登录后,在服务器就会创建一个会话(session),叫做会话控制,接着访问页面的时候就不用登录,只需要携带Sesion去访问。Session利用的实质:由于SessionID是用户登录之后才持有的唯一认证凭证,因此黑客不需要再攻击登陆过程(比如密码),就可以轻易获取访问权限,无需登录密码直接进入特
  • 2023-09-15C++11中的智能指针shared_ptr、weak_ptr源码解析
    https://www.jb51.net/article/224028.htm−目录1、前言2、源码准备3、智能指针概念4、源码解析4.1、shared_ptr解析4.1.1、shared_ptr4.1.2、__shared_ptr4.1.3、__shared_count4.1.4、_Sp_counted_base4.1.5、_Sp_counted_ptr4.1.6、shared_ptr总结4.2、weak
  • 2023-09-01线程安全的对象生命期管理
     编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的mutex保护。racecondition:在即将析构一个对象时,从何而知此刻是否有别的线程正在执行该对象的成员函数?如何保证在执行成员函数期间,对象不会在另一个线程被析构?在调用某个对象的