什么是数据结构?什么是算法 广义 数据结构:一组数据的存储结构 算法:操作数据的一组方法 例子:图书馆对书籍的分门别类存储=数据结构,查找一本书的方法=算法 狭义 著名的数据结构和算法:队列,栈,堆,二分查找,动态规划 重点:复杂度分析 10个常用的数据结构:数组、链表、栈、队列、散列表、二叉树、堆 ...
分类:
编程语言 时间:
2020-03-29 01:14:09
阅读次数:
70
[toc] js 单线程模型 JavaScript 是单线程、非阻塞的一种语言,只有一个主线程,同时只能执行一个任务。 js 使用单线程是为了简单化 js 中的栈、堆和消息队列 栈 存放的是调用函数的记录——调用帧 堆 存放的是对象 消息队列 + 包含待处理消息的队列 + 每个消息都关联了一个回调函 ...
分类:
其他好文 时间:
2020-03-22 14:07:15
阅读次数:
86
1.JMM Java内存模型 每条线程都有自己的工作内存[Working Memory] 线程的工作内存保存了被该线程使用的变量的主内存副本拷贝 线程对变量的所有线程之间也无法直接访问对方工作内存的变量,线程间变量值的传递均需要通过主内存来完成。 2.java的堆和栈 1)堆 heap:可动态申请的 ...
分类:
编程语言 时间:
2020-03-22 13:37:10
阅读次数:
86
基本概念 1.操作系统中 heap 和 stack 的区别 1.heap是堆,stack是栈; 2.堆的空间由系统自动分配和释放,栈的空间需要申请和手动释放,所以栈的存取速度快; 3.堆的空间是很大的自由区,栈的空间有限; 4.堆内存主要用于存储实例化对象和jre classes,栈内存存储基本变量 ...
分类:
编程语言 时间:
2020-03-19 13:37:54
阅读次数:
99
程序计数器 虚拟机栈 本地方法栈 堆 (新生代和老生代) 新生代(eden,two survivor) 老生代(永久代(现在变成元数据)) 元数据->类的字节流,常量,静态方法 (metaSpace的默认值在64位中20.75M)当第一次满的时候回触发GC; GC的算法: 引用计数法,标识清理法,复 ...
分类:
其他好文 时间:
2020-03-17 19:24:31
阅读次数:
72
---方法区内存:在类加载的时候,class字节码代码段被加载到该内存空间中---栈内存(局部变量):方法代码段片段执行的时候,会给该方法分配内存空间,在栈内存中压栈---堆内存(实例变量):new的对象在堆内存中存储.publicclassHello{publicstaticvoidmain(String[]args){inta=100;intb=200;intres=sum(a,b);Syst
分类:
其他好文 时间:
2020-03-06 19:55:01
阅读次数:
66
摘自:https://www.cnblogs.com/Spider-spiders/p/8884729.html 简介 我们程序运行的时候都是放在内存里的、根据静态、成员函数、代码段、对象、等等、放在不同的内存分块里、大概分为5块 1 栈 2 堆 3 BSS段-全局区-(静态区) 4 代码段 5 数 ...
分类:
其他好文 时间:
2020-02-29 12:52:26
阅读次数:
67
堆和栈 Stack(栈) 栈的结构: 下面是数据结构的集中类型: 顺序结构的栈: //栈顶的元素 出栈判空 入栈判满 data = S data[S top 1]; // 1 2 3 4 5 6 7 8 9 10 链式结构的栈: 注意: 循环队列 队列满 头尾重合 队列的大小 size 或者num ...
分类:
其他好文 时间:
2020-02-23 22:31:37
阅读次数:
68
进程线程针对系统而言的和数据结构无关。进程是一段代码,是操作系统资源分配基本概念、是调度和运行的基本单位,进程可以有多个任务每个任务是一个线程; 堆栈针对的是数据结构。栈是右进右出函数变量、局部变量都属于栈,堆是树形结构类似于字典的目录对象数组都属于堆,线程中会用到栈和堆。 ...
分类:
编程语言 时间:
2020-02-17 20:19:23
阅读次数:
98
c语言有五大内存分区,分别是栈,堆,全局区,常量区,代码区。 代码区 程序被操作系统加载到内存的时候,所有的可执行代码都加载到代码区,也叫代码段,这块内存是不可以在运行期间修改的。 代码区中所有的内容在程序加载到内存的时候就确定了,运行期间不可以修改,只可以执行。 常量区 常量在系统一运行被创建,常 ...
分类:
其他好文 时间:
2020-02-10 22:28:46
阅读次数:
72