面向对象内存的分析: 一:内存的分类 1:栈(tack) 2:堆(heop) 3: 静态区 4:代码区 二:引用数据类型内存特点 三:引用数据类型传值的特点 四:引用数据类型在作为参数时的特点 面向对象的基础 一:三大特征 1:封装(抽象)(封装就是定义一个类,然后给该类的属性和方法加上访问控制修饰 ...
分类:
编程语言 时间:
2019-12-02 00:26:16
阅读次数:
95
区别: “==” 比较的是两个引用在内存中指向的是不是同一对象(即同一内存空间),也就是说在内存空间中的存储位置是否一致。(引用类型) 如果两个对象的引用相同时(指向同一对象时),“==”操作符返回true,否则返回flase。 注:如果有对内存分配及变量存储位置(堆、栈、方法区常量池、方法区静态区 ...
分类:
编程语言 时间:
2019-11-30 19:37:51
阅读次数:
113
1 #define IOS ios_base::sync_with_stdio(0); cin.tie(0); 2 #include <cstdio>//sprintf islower isupper 3 #include <cstdlib>//malloc exit strcat itoa sys ...
分类:
其他好文 时间:
2019-11-22 19:13:32
阅读次数:
70
① 格式 : 1》 static修饰的,称为静态成员,非static修饰的,称为非静态成员。 ② 内存位置: 1》static修饰的,在方法区的静态区中,非static修饰的,在堆中的对象里。 ③ 生命周期: 1》 static修饰的 ,随着类的加载而加载,随着类的消亡而消亡,非static随着对象 ...
分类:
其他好文 时间:
2019-11-16 00:36:21
阅读次数:
50
package cn.gl.ObjectLearn; /** * 静态修饰符: * 由static修饰的变量、常量和方法被称作静态变量、静态常量和静态方法, 他们都存放在内存的“静态区”中, * 这些变量和方法有独立的生存周期。 * 内存中的静态区在整个程序运行结束之后才会释放,所以用静态修饰的代码 ...
分类:
其他好文 时间:
2019-11-09 13:42:08
阅读次数:
79
如有乱码,请点击。 题目背景 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1)O(1) 题目描述 给定一个长度为 NN 的数列,和 MM 次询问,求出每一次询问的区间内数字的最大值。 输入格式 第一行包含两个整数 N, M ...
分类:
其他好文 时间:
2019-11-09 13:21:30
阅读次数:
111
https://loj.ac/problem/10119 题目描述 给出一个序列,有$M$个询问,每次输出区间$[l,r]$中的最大值 思路 简单的区间最值问题,不涉及修改操作,属于静态区间,显然可以用ST表维护。设$a$为原序列,那么维护的数组$f[ ...
分类:
其他好文 时间:
2019-10-29 19:38:00
阅读次数:
112
变量的可见性又叫做作用域。 一般来说变量如果是在栈上分配的,那么变量的可见性和生命周期是一样的。但在堆区,静态区,常量区的变量声明周期大于变量的可见性(如果理解有误,请大佬们指出)。 即指针对应的是可见性,而指针所指向的对象(也即指针所指向的内存)对应的是生命期。因为指针是在栈上分配存储的(指针也是 ...
分类:
其他好文 时间:
2019-10-26 10:42:56
阅读次数:
103
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一
分类:
编程语言 时间:
2019-10-24 09:45:25
阅读次数:
80
代码段、数据段、bss段1、(1)编译器在编译程序的时候,将程序中的所有元素分成了一些组成部分,各部分构成一个段,所以说 段是可执行程序的组成部分。(2)代码段:代码段就是程序中的可执行部分,直观理解代码段就是函数堆叠组成的。(3)数据段(也被称为数据区、静态数据区、静态区):数据段就是程序中的数据 ...
分类:
其他好文 时间:
2019-10-10 22:15:28
阅读次数:
100