马士兵视频学习第二天总结

来源:互联网 发布:mac怎么取消下载 编辑:程序博客网 时间:2024/05/21 06:41

Java总结之引用

java中除了基本类型的变量其他的都是引用类型变量,比如:String,还有自己定义的类所实例化的对象。引用类型的变量在内存中占有两块区域,一块是在定义时分配的区域,比如:String s;则在内存中分配了一块区域名字为s里面的值为null,当s被实例化的时候会在堆(heap)中分配一块区域存储s的值,比如s = "I'm so cool",则在heap中会分配一块区域存储"I'm so cool",然后定义时分配的区域(名字为s的区域)记录"I'm so cool"在heap中的地址,从而实现了引用类型变量的内存分配,其实就是指针,换汤不换药而已。

Java总结之定义变量时的内存分配

在定义一个引用类型的变量的时候,如果在类中含有构造函数,那么在实例化一个参数时,比如:Student s = new Student("Zeko", 23);在栈中会新建3块内存,一块是参数名s,其中的值为null,剩下的两块是构造函数的两个形参,比如构造函数是Student(String _name, int _age);那么一块内存名字为_name,值为"Zeko",另一块内存名字为_age,值为23,在new了一个对象之后,会在heap中分配空间用来存储实例化的参数,在heap中也分配两块空间一块是成员变量name,一块是成员变量age,把栈中的_name和_age的值分别传到对应的name和age中,然后栈中的_name和_age区域会被自动释放,而s内存会记录heap中实例化的参数的地址,即指向实例化的对象。

 Java总结之包的引用

java.lang包可以直接使用不需要使用imort引用

Java总结之继承的构造函数

在子类的构造函数中必须调用父类的构造函数,如果没有显式的调用(super)那么系统将自动查找父类中参数为空的构造函数,如果即没有显示的定义构造函数父类中又没有参数为空的构造函数,那么编译出错