Java内存管理和变量和属性

在这里插入图片描述
栈是局部变量; 堆是New出来的对象 ,
放在方法中的变量都是局部变量; 放在栈中;
在这里插入图片描述
当方法执行完成之后栈中的变量就会依次出栈,然后进行垃圾回收;
JVM的内存结构
编译完源代码之后,生成一个或者多个字节码文件;
我们使用JVM中的类的加载器和解释器对生成的字节码文件进行解释运行,意味着需要将字节码文件对应的类加载到内存中,在运行的时候才会涉及内存解析
在这里插入图片描述
虚拟机栈;平时提的:将局部变量存储在栈结构中;
堆: 我们将New出来的结构(数组,对象)加载在堆空间中,补充:对象的属性(非static )加载 在堆空间中.
方法区: 类的加载信息;常量池 静态域(static对象)

类的属性和方法
类中只包括属性(成员变量)和局部变量;
局部变量:包括形式参数;在这里插入图片描述

1.相同点:
定义变量的格式:数据类型 变量名称=变量值;
先声明后使用;
变量都有对应的作用域;

2.不同点:
在类的位置不同;
属性:直接定义在方法的{}中
局部变量:在类的方法中的变量;
关于权限修饰符的不同:
属性:可以声明属性时,指明其权限,使用权限修饰符;
private public 缺省 protected —>封装性;
变量:不用写,用类来代替了;
关于默认初始化值的不同
属性:类的属性,根据其类型都有初始化值
在这里插入图片描述
局部变量:没有默认默认赋值;所以局部变量声明后必须赋值;
特别的形式参数在调用的时候赋值就可以;在这里插入图片描述
在内存中的加载位置
属性:加载到堆空间中(非static )
局部变量:加载到栈空间
变量的数据类型
方式一:
在这里插入图片描述
方式二: 按照在类中的声明的位置:
在这里插入图片描述
方法
方法的声明 :
权限修饰符 返回值类型 方法名 (形参列表){
方法体
}
在这里插入图片描述
在这里插入图片描述
引用数据类型
在这里插入图片描述
引用数据类型,不是null 就是值;
Order 02=01; //赋值时候o1和o2用的是一个对象实体;
在这里插入图片描述
方法形参的传递机制:值传递机制(和上个一样)
1.形参:方法定义时,声明的小括号内的参数;
2.实参:在方法调用的时候传递给形参的数据;
在这里插入图片描述
最后没有换成功;为什么呢?
因为在swap中的形参是建立在栈中的(新定义的变量);
在这里插入图片描述
传递机制
如果参数是基本数据类型,此时实参赋值给形参的是是实参真正存储的数据值;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值