for循环的另一种写法,在这里记录一下。但这里还有一点可以优化的地方,循环中的int x是一个临时变量,在每一次循环中,var都会给x重新复制,也就需要重新开辟一个空间存放var的值。如果这个临时变量存放在栈区,函数执行结束由系统回收的话,for循环的空间复杂度就是O(n)。可使用如下方式: 使用引 ...
分类:
其他好文 时间:
2019-02-03 19:47:54
阅读次数:
617
java校招一些面试的题目 java校招一些面试的题目 java校招一些面试的题目 java校招一些面试的题目 数组和链表的区别 数组静态分配内存,链表动态分配内存; 数组在内存中连续,链表不一定连续; 数组元素在栈区,链表元素在堆区; 数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度 ...
分类:
其他好文 时间:
2019-01-30 21:40:26
阅读次数:
157
说明:阅读本文章,请参考之前的block文章加以理解; 一、栈区block分析 //代码 //打印 分析: <1>block代码内部引用的Person实例对象先于输出语句销毁,因为per仅限于大括号内,但此时block销毁了没有?往下看; <2>上述block代码块并没有被指针持有,接下来看看指针持 ...
分类:
其他好文 时间:
2019-01-15 14:23:45
阅读次数:
177
一、基础篇JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别 Java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final 垃圾回收 内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 JVM参数及调优 Java对象模型 oop-klass、对象头 ...
分类:
编程语言 时间:
2019-01-08 10:48:52
阅读次数:
254
局部变量存放在栈区,函数return以后申请的这块栈区就被回收(C++编译器把这段内存析构了),所以在函数内声明的局部变量,函数外不能使用该局部变量的内存地址。下面用代码说明: #define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include <s ...
分类:
其他好文 时间:
2019-01-05 12:09:56
阅读次数:
186
01 课程回顾 1.指针数组 注意: 对于数组来说,在使用sizeof的时候a和&a[0]是不一样的, 虽然以%x打印出来他们都是地址 2.值传递 int a; fun(a); int *****p; fun(p); // 这个也是值传递,把p的值传过去了 所以是值传递,并没有取地址 3.栈区和字符 ...
分类:
编程语言 时间:
2019-01-05 00:11:05
阅读次数:
221
变量的生命周期是怎么管理的? 一 内存四区 C/C++程序占用的内存分为四个区: 栈区,堆区,数据区,代码区。 1 栈区 存放函数的参数值,局部变量的值等。如 int a; int *p; 这儿的a和p都存放在栈中。 由编译器自动分配释放。 2 堆区 存放由程序员动态申请的变量。(malloc, n ...
分类:
其他好文 时间:
2019-01-04 21:59:49
阅读次数:
193
描述 Given a sequence, we define the seqence's value equals the difference between the largest element and the smallest element in the sequence. As an e ...
分类:
其他好文 时间:
2018-12-30 17:34:19
阅读次数:
213
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身栈区 ...
分类:
其他好文 时间:
2018-12-26 20:06:05
阅读次数:
125
2018/12/18 周二 1. C++内存布局分为几个区域,每个区域有什么特点? 主要可以分为 5 个区域, (1) 栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 (2) 堆区:由程序员分配释放。 (3) 全局/静态区:全局变量和静态变量的存储是放 ...
分类:
编程语言 时间:
2018-12-21 01:00:28
阅读次数:
215