从内存的角度考虑,不同情况下的C++类有什么区别呢?下面从空类、具有不同变量/函数、具有静态变量、继承、多态、虚拟继承等情况分析C++对象的内存空间大小和内存布局。本文讨论没有继承的情况,下一篇讨论有继承的情况 如无特别说明,本文代码均在64位机器上的VS2019运行。 无继承 一、内存空间占用情况 ...
分类:
编程语言 时间:
2019-11-24 15:33:13
阅读次数:
79
父类的静态域 子类的静态域 父类的非静态域 父类的构造函数 子类的非静态域 子类的构造函数 规律就是: 父类先于子类 静态的先于非静态的 其中静态域包含静态代码块与静态方法以及静态变量,这个谁在前面,则先执行谁。 非静态域同理 父类静态域——》子类静态域——》父类成员初始化——》父类构造块——》父类 ...
分类:
其他好文 时间:
2019-11-22 23:52:08
阅读次数:
136
一:静态内部类 1.静态内部类可以等同看做静态变量,内部类的重要作用是可以访问外部类中私有的数据; 2.静态内部类中可以访问外部类中静态的变量和方法,无法访问成员变量和成员方法(静态上下文中无法访问非静态的变量和方法); public class Outerclass{ //静态变量 private ...
分类:
编程语言 时间:
2019-11-20 21:53:28
阅读次数:
69
【公共的存储单元,类里任何一个对象访问它时,取到的都是相同的值】 1 package DemoArea5.copy; 2 3 import org.omg.PortableServer.POAPackage.ServantAlreadyActive; 4 5 public class area5 { ...
分类:
其他好文 时间:
2019-11-20 19:39:11
阅读次数:
82
11.JVM内存分哪几个区,每个区的作用是什么? java虚拟机主要分为以下一个区: 方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载2. 方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器 ...
分类:
其他好文 时间:
2019-11-17 12:53:24
阅读次数:
86
java的线程是不允许启动两次的,如果启动两次会被认为是编程错误,而引发异常 synchronized: 局部变量是不会被修改的,而全局变量则很容易就被修改了,而你却还不知道。 (实战发现,有时候先加,有时候先减) 除了ThreadLocal和局部变量安全以外,静态和实例变量都是不安全的 静态变量: ...
分类:
编程语言 时间:
2019-11-16 11:09:27
阅读次数:
87
Java变量类型 java变量定义:type variablename,[variable name = value]=value ? 局部变量:方法中的变量 ? 局部变量声明在方法中 ? 访问修饰符不能用于局部变量 ? 局部变量在栈上分配 ? 局部变量没有默认值,所以被声明后,必须经过初始化 ? ...
分类:
编程语言 时间:
2019-11-16 10:27:44
阅读次数:
126
一. 细分类的组成成员 之前咱们讲过类大致分两块区域,静态字段部分和方法部分。 每个区域详细划分又可以分为: class A: company = '阿里巴巴' # 静态变量(静态字段) __tel = '400xxxxx' # 私有静态变量(私有静态字段) def __init__(self,na ...
分类:
编程语言 时间:
2019-11-16 00:46:44
阅读次数:
76
单例模式 单例模式的含义: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。 单例模式的三个要素: 1. 保存类唯一实例的静态变量。 2. 构造函数和克隆函数必须是私有的,放在外部去实例 ...
分类:
Web程序 时间:
2019-11-15 22:43:46
阅读次数:
122
函数内的static变量 static静态变量的理解 静态变量 类型说明符是static。 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 ...
分类:
Web程序 时间:
2019-11-15 22:03:42
阅读次数:
110