- 博客(11)
- 收藏
- 关注
原创 List中Add()与AddAll()的区别
当存在两个集合List1和List2的时候:List1.Add(List2)是将List2集合这个整体作为一个整体元素添加到List1中;而List1.AddAll(List2)是将List2这个集合中的每一个元素都作为一个独立的个体元素添加到List1中;
2022-12-14 21:43:35 595 1
原创 synchronized(使用方法+内部原理+死锁)
造成死锁的原因是:第一把锁能够加锁成功,但是在对第二把锁进行加锁的时候,因为锁已经被占用了,所以会产生阻塞等待,要等待第一把锁解锁之后,第二把锁才能加锁成功。在初始使用的时候,是乐观锁/轻量级锁/自旋锁,如果竞争不激烈,就处于上述状态不变,如果竞争激烈,synchronized会自动升级为悲观锁/重量级锁/挂起等待锁。在使用synchronized关键字的时候,不必关心这个锁对象究竟是谁,是哪种形态,只是关心两个线程是否锁的是同一个对象,锁同一个对象就会产生锁竞争,锁的不是同一个对象就不会产生锁竞争。
2022-11-17 09:39:38 2384
原创 进程与线程(基础版上)
针对进程1和进程2来说,两个进程能访问的内存空间都是0x0~0xFFFF这一段,如果进程不小心访问了更大的内存空间,在MMU映射的时候,MMU就能及时发现,从而避免对物理内存产生影响。所以,创建进程势必要占用内存空间,线程占用的内存空间上会有各种区域,有的区域用来放指令,有的区域用来放数据,还有的数据用来维护进程运行状态。在并发执行的过程中,一个进程在CPU上执行了一会之后,要切换给别的进程,就要对当前的进程进行一个存档的操作,下次再轮到它执行的时候,就直接读档,恢复之前的进程状态,继续往下执行。
2022-11-10 22:16:40 149
原创 深入理解计算机系统—计算机系统漫游1.1
从今天开始,就要每天给自己加点餐了~从今天开始,会慢吞吞的开始啃《深入理解计算机系统》这本书了~从今天开始,每天的输入内容都会在C站上进行分享、输出了~每天的内容不多,日积月累下来,希望我的读者和我都会有一个大的突破~计算机系统是由硬件和系统软件组成的,硬件和软件二者相互配合、共同工作来运行应用程序。当今技术迭代非常快,计算机系统的具体实现方式也随着时间不断发生改变。但是系统内在的概念却并没有改变。所有的计算机系统都有相似的硬件和软件组件,它们执行着相似的功能。1.1 信息就是.
2022-05-12 21:22:38 246
原创 C语言动态内存管理(详解版)
文章重点:1.为什么存在动态内存分配。 2.动态内存函数的使用(malloc、free、calloc、realloc)。 3.常见的动态内存错误。 4.举例几个经典的笔试题。 5.柔性数组的概念。6.使用C语言动态内存管理来实现通讯录小程序。 1.为什么存在动态内存分配??? ...
2022-04-15 16:38:31 2171 2
原创 C语言中关键字const、typedef
const:const是C语言的一个关键字,是用来定义常量的。const是常属性的意思,当一个变量被const修饰之后,其值不能再被改变了,但它仍然是一个变量,只不过有了常属性。我们如何才能验证这一点呢?我们知道,在C99标准中规定了在指定数组大小的时候可以使用变量来进行初始化,但当我们在不支持C99标准的VS2022下使用变量来初始化数组的大小时,编译器会报错,这就说明了:一个变量虽然被const修饰,但其仍然是一个变量,只不过具有了常属性,再被修饰之后就不能再次被修改了。下面我们来介绍关键字co
2022-04-04 17:09:55 1526 3
原创 指针笔试题详解
本次文章将讲述几道关于指针的笔试题,每道题都以画图的形式为主,这样会方便我们更加细致的理解。在看问题之前我们要先区分在指针中一个最关键的概念:数组名的意义:1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。3.除此之外所有的数组名都表示首元素的地址。笔试题1:在这道题中 &a 代表整个数组a的地址,将其赋给指针变量ptr中,ptr本应该是一个数组指针,却被强制类型转换为
2022-03-20 15:47:00 481 1
原创 求一个整数在内存中存储的二进制序列中1的个数的三种思路
先将代码敲出来方法一:#include<stdio.h>int main(){ int n = 0; scanf("%d", &n); int i = 0; int count = 0; for (i = 0; i <= 31; i++) { if (1 & (n >> i)) count++; } printf("%d", count); return 0;}也是最常规的一种方法,将这个整数的二进制序列按位与上1
2022-03-07 22:06:04 429 2
原创 数据在内存中的存储
文章重点:1.数据类型详细介绍 2.整形在内存中的存储 3.大小端字节序介绍及判断(将会在下一节文章中介绍浮点型在内存中的存储)1.数据类型的详细介绍:c语言中基本的内置类型有:char:字符数据类型 short:短整型 int:整形 long:长整型 long long:更长的整形 float:单精度浮点数 double:双精度浮点数如果想要知道它们所占存储空间的大小,可以在编译器上运行如下代码:其中sizeof是一个操作符,是用来计算操作数的类型长度,并且是以字节为单位的。.
2022-03-06 10:20:26 691 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人