2016 - 2024

感恩一路有你

java java定义一个Person类,包括成员变量name(姓名)、sex(性别)、age(年龄)和成员方法p?

浏览量:1496 时间:2021-04-15 02:00:14 作者:admin

java定义一个Person类,包括成员变量name(姓名)、sex(性别)、age(年龄)和成员方法p?

是字母a吗?成员变量a=1:编译成类后,a和1两个字符都在常量池(类文件中的一个区域)中。类加载后,在实例化之前,整个类的信息将在方法区域(JVM中)中找到。如果找不到,将重新加载。将在堆中打开一段内存来存储实例化的对象。a和1都在堆中。结论:A和1存在于由实例对象分配的堆内存中。局部变量的a=1:method调用在JVM堆栈中。默认的javac编译不包括局部变量名。字母仅在源代码中,而不在编译的类文件中。由变量位置操作(反编译后一般为VAR1,例如a=1编译成类后反编译。此操作的字节码指令是icon Stş1ş将常量1(1表示常量值)iStore推到堆栈顶部ş将堆栈顶部元素存储到局部变量1(1表示第一个int类型的局部变量)。如果通过javac-G调试参数进行编译,编译时会将局部变量信息写入局部变量表,反编译后可以看到名称。结论:对于未经调试编译的源文件,字符a不存在。A(名称不见了,但变量在)和1都在堆栈中,上面提到了这两个符号。如果它只是一个变量,则等号左侧的公共成员变量在堆中,局部变量在堆栈右侧。如果基本类型位于等号的右侧,则位置与左侧相同。对象类型都在堆中,等号的左边只是一个引用

首先,内部类和外部类处于同一级别,内部类在方法中定义,所以在方法执行后不会被销毁。问题是,如果外部类的方法中的变量没有定义final,那么在执行外部类的方法时,局部变量将是GC。但是,在执行内部类的方法之前,找不到它引用的外部变量。如果它被定义为final,Java将复制这个变量并将它作为成员变量构建到内部类中。这样,因为final修改的值不能更改,所以该变量指向的内存区域不会更改。

java java局部变量和成员变量 java中方法的定义

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。