java-对象的创建和使用

it2023-06-07  73

student s=new student();

通过一个类可以实例化N个对象 语法: new 类名() new 是java 语言当中的一个运算浮 new 运算符的作用是创建对象,在jvm堆内存当中开辟新的空间 方法代码片段执行的时候,会给该方法分配内存空间,在栈中压栈 堆内存:new的对象在堆内存中存储 student 是一个引用数据类型 s 是一个变量名 new student 学生对象 s 是一个局部变量【在栈内存分配】 s就是引用,java中只能引用访问堆内存当中对象内部的实例变量 - 什么是对象? new 运算符在对内存中开辟的内存空间称为对象 - 什么是引用? 引用是一个变量,只不过这个变量中保存了其他java对象的内存地址

- 访问实例变量的语法格式: 读取数据:引用.变量名 修改数据:引用.变量名=值

System.out.println(s.name);

局部变量在栈内存储 成员变量中的实例变量在对内存的java对象内存存储, 实例变量是一个对象一份 实例变量: 例如:

class Text{ //static 修饰的为静态成员变量 //没有static 为成员变量 public static int num; public int temp; }

Text b=new Text(); b.temp; 实例成员变量

Text.num; 类成员变量,对于类成员变量,所有对象共享一个变量。

总结: 1.jvm(java虚拟机)主要包括3块内存:栈内存,推内存,方法区内存 2.堆内存和方法区内存各有一个,一个线程一个栈内存 3.方法调用的时候,会给该方法分配内存空间,在栈中压栈;执行结束后,内存空间会释放,称为弹栈 4.占中主要存储的是方法体中的局部变量 5.方法的代码片段以及整个类的代码片段都会存储到方法区内存中,在类加载的时候会载入。 6.在程序执行中使用new运算符创建的java对象,存储在堆内存中,对象内部有实例变量,所以实例变量存储在堆内存中 7.变量分类:

局部变量【方法体中声明】成员变量【方法体声明】 - 实例变量【前面修饰符没有static】 - 静态变量【前面修饰符有static】 8.静态变量存储在方法去内存中 9.三块内存中变化最频繁的是栈内存,最先有数据的是方法区内存,垃圾回收器主要针对堆内存 10.自动垃圾回收机制 GC机制 - 当堆内存中的Java对象成为垃圾数据的时候,会被回收机制回收 当数据不被引用时,就是垃圾数据

空指针异常

Customer c=new Customer(); System.out.println(c.id);//0 c=null; //以下程序编译可以通过 //程序运行时空指针异常 //空引用访问“实例”相关的数据一定会出现空指针异常 //java.lang.NullPointerException System.out.println(c.id); //“实例”相关的数据:这个数据访问的时候必须有对象的参与,这种数据就是实力相关的数据 }

实例变量必须先创建对象,通过引用.的方式访问,不能直接使用类名.的方式访问`

class Product { int production; String productions; } public class text { public static void main(String[] args) { Product A=new Product(); A.production; A.productions; //错误:Product .production; } }
最新回复(0)