java-对象的创建和使用

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值