服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - java中this的内存原理以及成员变量和局部变量

java中this的内存原理以及成员变量和局部变量

2023-05-13 01:03未知服务器之家 Java教程

大家好,我是筱筱,这里主要分享的是个人日常学习java中this的内存原理以及成员变量和局部变量的随笔,如果您对本篇有不同的方法和建议,欢迎您在评论区留言指正,您们的留言和点赞是我继续学习和分享的动力,非常感谢您

大家好,我是筱筱,这里主要分享的是个人日常学习java中this的内存原理以及成员变量和局部变量的随笔,如果您对本篇有不同的方法和建议,欢迎您在评论区留言指正,您们的留言和点赞是我继续学习和分享的动力,非常感谢您的观看!

this的内存原理

1、this的作用:

区分局部变量和成员变量

eg:

public class Student{
		private int age;
		public void method(){
		int age = 10;
		System.out.println(age);//10
		System.out.println(this.age);//0使用this.可以直接使用成员变量的age
		}
}

2、this的本质:

代表所在方法调用者的地址值

3、区分的原理:

java中this的内存原理以及成员变量和局部变量

代表所在方法调用者的地址值:

此时main方法里面的调用者是s,s记录的地址值是001;this的本质是方法调用者的地址值,所以this指向的地址值是001。

this的内存原理:

java中this的内存原理以及成员变量和局部变量

解析:

等号的右边name出发了就近原则,表示setName里面形参string name里面的参数,而形参里面接收的是s1.setname里面的竹小玲,所以等号右边就是竹小玲,等号左边用this调用的name是s1指向的地址值001。该句话意思就是把竹小玲赋值给等号左边001里面的name。此时方法执行完毕,进行出栈

java中this的内存原理以及成员变量和局部变量



成员变量和局部变量的区别

1、成员变量:

类中mian方法外的变量(没有上下规定,在代码中为了方便阅读,把成员变量放在最上面)

2、局部变量:

main方法里面的变量

3、成员变量和局部变量的区别:

(1)类中位置不同:

成员变量:类中,方法外

局部变量:类中,方法里面

(2)初始化值不同:

成员变量:有默认初始化值(一般是null和0)

局部变量:使用之前需要完成赋值

(3)内存位置不同:

成员变量:存储在堆内存对象里面

局部变量:存储在栈内存方法里面

(4)生命周期不同:

成员变量:随着对象的创建而存在,随着对象的消失而消失

局部变量:随着方法的调用而存在,随着方法的运行结束而消失

(5)作用域:

成员变量:整个类中有效

局部变量:仅在当前方法中有效

java中this的内存原理以及成员变量和局部变量

延伸 · 阅读

精彩推荐
  • Java教程Java中HttpServletResponse响应中文出现乱码问题

    Java中HttpServletResponse响应中文出现乱码问题

    这篇文章主要介绍了Java中HttpServletResponse响应中文出现乱码问题的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 ...

    一扇窗7262020-05-21
  • Java教程使用Enumeration和Iterator遍历集合类详解

    使用Enumeration和Iterator遍历集合类详解

    Enumeration和Iterator接口功能相似,而且Iterator的功能还比Enumeration多,那么为什么还要使用Enumeration ...

    java之家4202019-10-13
  • Java教程Hibernate中load方法与get方法的区别

    Hibernate中load方法与get方法的区别

    Hibernate中有两个极为相似的方法get()与load(),他们都可以通过指定的实体类与ID从数据库中读取数据,并返回对应的实例,但Hibernate不会搞两个完全一样的方法的...

    mdxy-dxy4892020-03-20
  • Java教程Java注解Annotation解析

    Java注解Annotation解析

    这篇文章主要为大家详细介绍了Java注解Annotation,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    xiaohanluo5012020-06-15
  • Java教程Mybatis中@Param的用法和作用详解

    Mybatis中@Param的用法和作用详解

    这篇文章主要介绍了Mybatis中@Param的用法和作用,在文中给大家补充了spring中@param和mybatis中@param使用区别,需要的朋友可以参考下...

    szu_lg5782021-01-13
  • Java教程Mybatis 中的sql批量修改方法实现

    Mybatis 中的sql批量修改方法实现

    在项目中遇到需要批量更新的功能,原本想的是在Java中用循环访问数据库去更新,但是心里总觉得这样做会不会太频繁了,太耗费资源了,效率也很低,查...

    JURcion4742020-07-31
  • Java教程hibernate的分页模糊查询功能

    hibernate的分页模糊查询功能

    在web项目中,显示数据一般采用分页显示的,在分页的同时,用户可能还有搜索的需求,也就是模糊查询,所以,我们要在dao写一个可以分页并且可以动态...

    廖海的博客4732020-08-20
  • Java教程Spring计时器stopwatch使用详解

    Spring计时器stopwatch使用详解

    这篇文章主要介绍了Spring计时器stopwatch使用详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    一个不二12422021-11-16