内存区域:由这张图我们可以看到程序在内存中的分布,不同的变量存放在不同的区域,而内核空间是用户无法进行读写的用来存储有关的信息。要注意栈向下生长,堆向上生长,堆栈相对而生,我们今天主要谈在堆上申请空间的相关知识,我们知道在c语言中想要在堆上申请空间需要用到malloc、realloc、calloc这类函数,关于这些函数的相同与不同点大家可以参考我的另一篇博客。在c++中我们用心的关键字new、de
分类:
编程语言 时间:
2019-10-11 00:29:26
阅读次数:
113
Java虚拟机概念 Java虚拟机(JavaVirtualMachine,JVM)是一个抽象的计算机,和实际的计算机一样,通过模拟仿真来实现计算机功能。Java虚拟机不仅有自己本身的硬件架构,如处理器、堆栈、寄存器,还具有相应的指令系统。 Java的运行机制 Java的跨平台是它的主要特性之一,而Java虚拟机是实现这一特性的关键。Java程序的整个执行过程包括编译阶段与运行阶段,其中涉及
分类:
编程语言 时间:
2019-10-10 22:28:10
阅读次数:
134
栈,又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。 向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为 ...
分类:
编程语言 时间:
2019-10-10 15:54:12
阅读次数:
86
基础数据类型(Value type)直接在栈(stack)空间分配,方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。 引用数据类型,需要用new来创建,既在栈空间分配一个地址空间(reference),又在堆空间分配对象的类变量(object)。 方法的引用参数,在栈空间分配一个地址 ...
分类:
其他好文 时间:
2019-10-10 11:25:38
阅读次数:
151
C语言内存四区:代码区、数据区、栈区、堆区 1.代码区(.text):代码区中主要存放程序中的代码(二进制),属性是只读。 2.数据区(静态存储区):主要包括静态全局区和常量区,如果要站在汇编角度细分的话还可以分为很多小的区。 A.全局区(静态区,static):全局变量和静态变量的存储是放在一块的 ...
分类:
其他好文 时间:
2019-10-10 11:20:52
阅读次数:
116
uC/OS系统的任务一般都放在最开始介绍,我放在第四章主要是对模糊的概念作清晰的讲解。 从用户的角度来看,uC/OS-III 中的任务可以分为5 种状态,分别是休眠态、就绪态、运行态、挂起态和中断态,如下表所示。 任务状态之间的具体切换情况如下图所示。 也就是说,任务有五个状态,分别是休眠态、就绪态 ...
分类:
其他好文 时间:
2019-10-08 21:54:15
阅读次数:
353
背景: 之前做了一个项目,需要在容器内访问宿主机提供的Redis 服务(这是一个比较常见的应用场景哈), 常规方案: ① 主机网络(docker run --network=host): 完全应用主机网络堆栈,在容器内localhost就是指向宿主机 ② 网桥网络(docker run --netw ...
分类:
系统相关 时间:
2019-10-08 19:18:04
阅读次数:
161
最近公司项目经常出现OOM,dump出堆栈信息发现User对象占了80%的内存, 检查代码未发现有查询全量用户信息的地方,该现象连续出现了一个星期,都是User对象引起的, 仔细查看日志发现有一个接口调用异常频繁,再结合代码分析发现在接口层上一级有一个拦截器,校验session里面的用户信息, 可以 ...
分类:
其他好文 时间:
2019-10-08 14:24:50
阅读次数:
100
计算机基础知识 一、为何要学习计算机基础? 好多人觉得自己有点基础就都想着直接敲代码,觉得基础知识很容易,很简单,就不怎么用心去学。然而,我觉得基础知识很 ...
分类:
其他好文 时间:
2019-10-06 20:20:09
阅读次数:
102
栈生长方向指的就是执行push、pop命令后,堆栈指针sp(esp)所指向的地址是增大还是减小。 栈向上生长:执行push指令后sp(esp)所指地址增大; 栈向下生长:执行push指令后sp(esp)所指地址减小; 栈生长方向指的就是执行push、pop命令后,堆栈指针sp(esp)所指向的地址是 ...
分类:
其他好文 时间:
2019-10-06 12:57:52
阅读次数:
172