this的含义:

1.区分成员变量和局部变量;

2.谁调用这个this就指向谁;

public class Person{

 private String name;

 private int age;

 public void setAge(int age){

        this.age=age;

 }

 public int getAge(){

  return age;

 }

 public void eat(){

  System.out.println(name+"正在吃饭,他今年"+

   age);

 }

 public static void main(String[] args) {

  Person p=new Person();

  p.setAge(10);

  System.out.println(p.getAge);

 }

}

this的内存分析:

1.说明: 普通方法和main要入栈内存,堆中存放new的对象。

2.说明:首先main方法是程序入口,并且它在栈内存中,此时

Person p就在栈中,而new Person()在堆中,且初始状态下,

堆中开辟了内存空间,且name=null 、age=0.    此时若这个

堆内存地址为111,则栈中Person p也有该地址值并指向堆中

对象new Person()。当执行到“p.setAge(10);”这个方法时,

this.age=age;<==>p.age=age;并将堆中age=0改为age=10;

执行到“System.out.println(p.getAge);”这里的时候就直接调

用了p.age方法,并从堆中获取该值,eat方法分析类似。

关键点:1.从main开始执行 2.当前对象p调用this,则this

就等价于p;  3.当普通方法进入到栈中,执行了相应的操作后,

会在栈中销毁。

构造器的内存分析:未完待补充

this和构造器的内存分析(***)的更多相关文章

  1. 乐字节Java构造器(构造方法|构造函数)、方法与内存分析

    一. 构造器(构造方法|构造函数) 在创建对象时(new),必会调用一个特殊的方法,这个方法是初始化对象信息的为new服务的.这个方法称为“构造器” 使用 new + 构造方法创建一个新的对象. 构造 ...

  2. Eclipse中的快捷键快速生成常用代码(例如无参、带参构造,set、get方法),以及Java中重要的内存分析(栈、堆、方法区、常量池)

    (一)Eclipse中的快捷键:  ctrl+shift+f自动整理选择的java代码 alt+/ 生成无参构造器或者提升信息 alt+shift+s+o 生成带参构造 ctrl+shift+o快速导 ...

  3. Java面向对象内存分析

    title: Java面向对象内存分析 date: 2018-07-28 11:12:50 tags: JavaSE categories: - Java - JavaSE 一.Java虚拟机的内存区 ...

  4. 第42天学习打卡(Class类 Class类的常用方法 内存分析 类的加载过程 类加载器 反射操作泛型 反射操作注解)

    Class类 对象照镜子后得到的信息:某个类的属性.方法和构造器.某个类到底实现了哪些接口.对于每个类而言,JRE都为其保留一个不变的Class类型的对象.一个Class对象包含了特定某个结构(cla ...

  5. Java内置内存分析

    Java内存分析 package com.chao.reflection; public class Test05 { public static void main(String[] args) { ...

  6. iOS app内存分析套路

    iOS app内存分析套路 Xcode下查看app内存使用情况有2中方法: Navigator导航栏中的Debug navigator中的Memory Instruments 一.Debug navi ...

  7. 【Android端 APP 内存分析】使用工具进行APP的内存分析

    Android端可以通过adb 命令直接获取内存信息,当然Android studio也提供了对内存的监控分析工具,并且后续可以结合MAT做分析 今天介绍的是通过Android studio和MAT工 ...

  8. Chrome开发者工具之JavaScript内存分析

    阅读目录 对象大小(Object sizes) 对象的占用总内存树 支配对象(Dominators) V8介绍 Chrome 任务管理器 通过DevTools Timeline来定位内存问题 内存回收 ...

  9. Eclipse CDT Linux下内存分析 补记

    常用工具汇总 http://www.ibm.com/developerworks/cn/linux/l-cn-memleak/ 常用的内存分析工具 http://en.wikipedia.org/wi ...

随机推荐

  1. syslog-ng 学习

    摘要:http://luyongxin88.blog.163.com/blog/static/925580720112275183903/ 因为工作的需要,涉及到了syslog-ng.现在看来,在外包 ...

  2. CentOS里alias命令

    alias命令 功能描述:我们在进行系统的管理工作一定会有一些我们经常固定使用,但又很长的命令.那我们可以给这些这一长串的命令起一个别名.之后还需要这一长串命令时就可以直接以别名来替代了.系统中已经有 ...

  3. word2vec 评测 sg=0 sg=1 size=100 window=3

    1.评价sg=0与sg=1的区别    结果原文:sg_difference.txt sg=0     sg=1 绑定                         1 关联            ...

  4. 【LeetCode每天一题】Pow(x, n)(平方)

    Implement pow(x, n), which calculates x raised to the power n (x,n). Example 1:                 Inpu ...

  5. 15个Node.js项目列表

    前言: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台,是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascri ...

  6. react native 使用TabNavigator编写APP底部导航

    第一步,下载依赖 npm install react-native-tab-navigator --save 第二步,引入 import TabNavigator from 'react-native ...

  7. 只使用处理I/O的printDigit方法,编写一种方法一输出任意的double型量(可以是负的)

    /** * Question:只使用处理IO的printDigit函数,编写一个过程以输出任意double型量(可以为负) * @author wulei * 这道题我的理解是使用最基本的System ...

  8. MySQL.Linux.安装

    Linux 7.x.安装 MySQL 环境: linux是安装在虚拟机中的,宿主机是:win10系统.安装MySQL的时候,首先需要网络是通的(宿主机和虚拟机之间通信).相关配置,参见:虚拟机和宿主机 ...

  9. 搭建私有仓库Harbor

    搭建Harbor企业级docker仓库   搭建Harbor企业级docker仓库 一.Harbor简介 1.Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry ...

  10. factory源码分析——component_registry和object_registry

    registry类主要是为object和component提供一个轻量级的代理(lightweight proxy)来方便factory实现: registry class从uvm_object_wr ...