- Java面向对象编程知识点总结。
一:构造代码块。
-
为对象进行初始化,而且优先于构造函数执行。
-
为所有对象进行统一初始化,而构造函数是为不同对象进行不同的初始化。
实例如下:
class Person {{
System.out.print(“共性初始化”);
Void eat (){
System.out.println(“生下来就吃饭”);
}
}//只要建立对象,该区代码将首先被执行。
Person (int age)
{
this.age= age;
}
}
二.this的用法1.用于区分局部变量和成员变量的同名问题。
2.用于代表本对象,代表所在函数对所属对象的引用。
3.构造函数之间或普通函数之间调用使用,this();调用默认构造函数。
4.this语句只能写在函数的第一行位置,因为初始化要首先使用this语句。
示例如下:
class Test
{
{
System.out.println("构造代码块");
}
private int a;
private String name;
Test(){
this.print();
System.out.println("第一个构造函数");
}
Test(String name){
this();
System.out.println(name);
}
Test(int a){
this.a=a;
}
public void print(){
System.out.println("第一个构造函数调用。私有变量a ="+a);
}
}
class GouZao{
public static void main(String[] args)
{
Test ts = new Test("调用第二个构造函数");
}
}
运行结果:三.static(静态)关键字的使用:
1.用于修饰成员变量和成员方法。
2.随着类的加载而加载,消失而消失。
3.静态先存在,对象后存在。
4.静态方法只能调用静态变量。
5.静态方法中不可以使用this、super关键字,因为静态方法先于对象出现。
6.什么时候使用静态修饰符:
1.当对象中出现共享数据时。
2.定义静态函数:当方法中没有访问到非静态数据时,方法可以定义成静态。
7.静态代码块:
Static
{
静态代码块中的代码、、、、、
静态代码块随着类的加载而加载,只执行一次,用于给类进行初始化,优先于主函数执行。
}
静态变量的提取如下图所示:
四.主函数。1.是一个特殊的函数,可以作为程序的入口,被JVM调用。
2.public表示:访问权限最大。
3.static表示主函数随着类的加载而加载。
4.main可以被JVM识别。
五.
Java中的内存结构。Java在运行时需对内存进行分配操作,为了提高效率,对内存空间进行了区域的划分,因此每一片区域都有自己的特点的处理数据方法和内存管理机制。
-
栈内存用于存储基本数据类型变量和对象句柄,存在于栈中的数据可以共享(存储局部变量,当使用完后,所占空间会自动释放)。
-
堆内存,数组和对象,通过new创建的实例都存放堆内存中,每一个实例都有内存地址值,实例的变量都有默认的初始化值,当实例不在被使用,会在不确定的时间被垃圾回收器回收。
-
方法区:用于存储类中的自定义方法和static静态成员变量。
六.对象初始化。
1.初始化过程:1.通过JVM加载类到内存中,并开辟方法区初始化静态属性。
2.执行类中的static静态代码块,给类进行初始化。
3.在堆内存中开辟空间,分配内存地址。
4.在堆内存中建立对象的特有属性,并进行默认初始化,使用构造函数进行初始化。
5.执行构造函数中的其他语句。