我的理解:栈内存中一般都是存储指向其他更复杂、更大的存储区域的地址。比如:在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。而堆内存中存放比较复杂的数据结构,比如由new创建的对象和数组。 由于构造函数和普通函数中都可以创建数组、变量,所以函数中定义的变量是存储在栈内存中,数组中具体的值存储在堆内存中。相比堆内存,栈存储速度更快些,存储的数据共享程度高,但是灵活性较弱。
构造函数和一般函数的区别在视频教程中有比较详细的介绍,这里再赘述下:
1.构造函数的命名必须和类名完全相同
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰
3.构造函数只能在类初始化时被调用一次,此后不能被直接重复调用。
4.如果没有显式的声明构造函数,系统会提供默认的无参数的构造函数。
5.多个构造函数间是通过重载的方式实现的。欢迎补充。。。 |