java中局部变量和全局变量

全局变量:有默认设置,没有给值也能使用,全局变量默认值 double型:0.0,Boolean型:false,int型:0,char型:空字符

局部变量:必须设置默认值,只有赋值了在栈中才有了自己的空间

​ 局部变量用来临时保存数据(在类的方法中定义),只能在当前方法中使用,没有默认值,所以必须赋值,在该方法当中不可以出现拥有相圃名称的局部变量;

只要不是static修饰的方法都是对象方法,必须new出来对象来使用。

Test中的非静态方法,在 Test1类中必须new出Test的对象才能使用add()的方法。

在这里插入图片描述

在这里插入图片描述

jvm原理

只有main方法才能调用其他的静态方法,是一个主方法,入口
image-20220324104316135

只有main方法(静态)才能调用其他的静态方法**

在这里插入图片描述
在这里插入图片描述

局部变量:方法调用完就失效**

static 的作用

(加static是类属性)

(不加static是对象属性) 都叫成员变量

static boolean don;  //(加static是类属性)

boolean don;//(不加static是对象属性) 都叫成员变量

使用Test对象属性时:Test中必须要有static age属性才能使用

Test test = new Test();
System.out.println("age:"+test.age);

使用成员变量时:必须new创建一个age的对象,才能使用age的值

注意:全局变量和局部变量同名时

当全局变量和局部变量同名时,main方法中调用该方法时,局部变量会覆盖全局变量。

在这里插入图片描述

常量:final

static final int count=10; //例如 PI=3.14不可变

值不可变,且定义的时候必须要给初始值,全局和局部都可以设置

和static资源一样,不需要new对象出来时才使用。

注意:局部常量也存在常量池中,堆中的方法中有常量(例final int a)存着的是a的地址,值在常量池中。
特点:

  1. 使用finnal该关键字来定义常量

  2. 常量定义时必须赋值

  3. 值一旦定义不可修改

  4. 用大写定义常量,多个单词时用下划线来衔接

例如:对象里面的局部常量调取过程
在这里插入图片描述


版权声明:本文为qq_45830276原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_45830276/article/details/123708029