- 博客(16)
- 收藏
- 关注
原创 Java学习笔记:初次学习Java
xxx.java 通过在当前文件目录下的cmd形成xxx.class的字节码二进制文件,xxx.class 文件最后通过形成 程序运行,运行结果在cmd上打印;这里需要了解JDK、JRE、JVM之间的关联:JDK:Java开发包,包含了JRE:Java运行时环境,包含了;
2026-05-20 23:07:12
341
原创 Linux学习笔记:基础IO篇
3.当执行下面的代码创建子进程后,正常执行./属于向显示器输出(刷新方式为行刷新),也就是说当遇到“\n”时,打印内容就已经刷新,属于正常打印;但执行重定向命令后,刷新方式的改变,导致库函数的内容不能及时刷新,程序遇到fork()时,会发生。引入缓冲区的目的:减少磁盘的读写次数,再加上计算机对缓冲区的操作远远快于对磁盘的操作。在我们的电脑中,有显卡、网卡、键盘、鼠标、麦克风等外设,它们都是。Linux操作系统在管理文件的过程中,其实是文件的描述为。,进程都结束后刷新,所以log.txt中的内容,
2026-05-14 23:12:24
381
原创 C++学习笔记:AVL树实现
AVL是一颗空树,或者具备下列性质的二叉搜索树:它的左右子树都是AVL树,且左右子树的高度差的绝对值不超过1AVL是一颗高度平衡搜索二叉树,通过控制高度差去控制平衡。AVL树实现这里我们引入一个平衡因子的概念,每个结点都有一个平衡因子,任何结点的平衡因子等于右子树的高度-左子树的高度。AVL树的整体结构与完全二叉树类似,高度可以控制在logN,让其增删查改的效率可以控制在O(logN)。AVL树的实现AVL树的结构。
2026-02-08 10:00:38
888
原创 C++学习笔记:二叉搜索树
二叉搜索树又称二叉排序树,它或者是⼀棵空树,或者是具有以下性质的二叉树:1.若它的左⼦树不为空,则的值都小于等于根结点的值;2.若它的右⼦树不为空,则的值都⼤于等于根结点的值;3.每个父节点的左右子树也是二叉搜索树;4.⼆叉搜索树中可以⽀持插⼊相等的值,也可以不⽀持插⼊相等的值,可能在map/set部分有展示;
2026-02-02 09:25:59
235
原创 C++学习笔记:继承、组合场景
在继承情景下,Person是父类(基类),Student是子类(派生类)在继承情景下,继承方式也影响着派生类访问基类成员的方式方便记忆:给定三个限定符的关系:public >protected>private;如果基类成员不想在类外直接被访问,但需要在派⽣类 中能访问,就定义为protected。可以看出保护成员限定符是因继承才出现的;// stack和vector的关系,既符合is-a,也符合has-apublic:// 基类是类模板时,需要指定⼀下类域,
2026-01-31 13:54:00
865
原创 算法学习篇:双指针专题(2026_1_17)
这边需要注意,当数据遍历后dest+=2后dest可能等于n;这种情况只可能是cur指向的最后一个数据为0,导致dest=n;所以这边要对dest=n-2,arr[n-1]=0;以dest为界限划分数组非零区域和为零区域,以cur为界限划分数组处理和未处理区域;在没有注意前提下,想到的是再创建一个数组,当原数组中指针指向的是非零数时,尾插;dest初始化为-1是无数据情况下,保证第一次插入数据时dest的下标为0;等cur遍历完后,dest未到达数组最后位置,说明剩下的数据都是0;
2026-01-31 11:27:28
295
原创 学习笔记:类与对象(中)
定义:默认成员函数就是用户没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数;默认成员函数有:构造函数析构函数拷贝构造函数赋值运算符重载取地址运算符重载等....学习成员函数这个部分总是要思考:1.这个函数能实现什么功能,是否满足我的需求?2.如果它不能实现那我要怎么改进?
2026-01-17 19:13:36
654
原创 学习笔记(步入C++):命名空间、C++输入与输出、函数重载现象和相关问题
存在价值:在全局作用域中,某些变量、函数、类的名称会因重复使用而产生冲突,因此C++定义命名空间的作用是限定这些变量、函数、类的作用域来减少命名冲突问题。函数声明和定义分离时,缺省参数不能在函数声明和定义中同时出现,规定必须函数声明给缺省 值;在调⽤该函数时,如果没有指定实参 则采⽤该形参的缺省值,否则使⽤指定的实参;带缺省参数的函数调⽤,C++规定必须从左到右依次给实参,不能跳跃给实参;这是一个简单的命名空间的定义:可见在此空间中可以定义变量、函数、结构体。那么如何应用这些变量、函数、结构体呢?
2025-12-18 00:49:24
395
原创 学习笔记:枚举类型和动态内存分配
枚举顾名思义就是⼀⼀列举图片中展示的enum为枚举类型的关键字,而enum color为自定义的类型名关于枚举类型定义需要注意的几个点:1.枚举中定义的常量不能被更改;2.取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值注意:赋值在C语⾔中是可以的,但是在C++是不⾏的,C++的类型检查⽐较严格;赋予图片理解枚举类型的优点为什么使⽤枚举?我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举?枚举的优点:1. 增加代码的可读性和可维护性;
2025-10-30 14:34:23
936
原创 学习笔记:浮点数在数据内存是如何存储的?
举例:signed char类型在计算机内存存储中,char类型占内存中1byte(字节),即8bit(比特位)在八个数位中,第一位被当作符号位,这里拿127举例127转化成二进制的前八位为:01111111127+1=128128转化成二进制的前八位为:10000000但因为数据类型为有符号数,所以“1”被当作符号位表示负数,即128被处理成0所以同理我们可以得到有符号数和无符号数的char类型的数据的取值范围分别为:(其中还涉及原码、反码、补码)1. -128~~~~127;2.
2025-10-28 21:35:49
563
原创 学习笔记:函数栈帧的创建和摧毁
大概能够知道上述的两个寄存器帮助着main函数建立着自己的栈帧,然后将其栈帧里的内存赋值为ccccccccccc...........此处提到的ebp,esp寄存器会有很大的用处,主要是帮助函数栈帧的创建和地址的传值和移动;:1.压栈:给栈顶放一个元素(在接下来的操作里帮助着main函数和add函数之间的传参)2.add函数销毁时不会将寄存在寄存器里的结果30销毁,而是将累加结果传回main函数。2:出栈:从栈顶删除一个元素(该操作出现在函数栈帧的销毁)图片中完成的是参数的传值和add里指令的执行。
2025-10-28 19:43:41
366
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅