zoukankan      html  css  js  c++  java
  • JAVA_SE基础——26.[深入解析]局部变量与成员变量的差别

    黑马程序猿入学blog ...


    假设这章节非常难懂的话应该返回去先看  JAVA_SE基础——10.变量的作用域

    定义的位置上差别:
    1. 成员变量是定义在方法之外,类之内的。


    2. 局部变量是定义在方法之内。



    作用上的差别:
    1. 成员变量的作用是用于描写叙述一类事物的公共 属性的。
    2. 局部变量的作用就是提供一个变量给方法内部使用而已。

    生命周期差别:
    1. 随着对象 的创建而存在。随着对象的消失而消失。
    2. 局部变量在调用了相应的方法时运行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域
    那么立即从内存中消失。



    初始值的差别:
    1. 成员变量是有默认的初始值。
    数据类型     默认的初始值
    int                0
    float              0.0f
    double              0.0
    boolean            false
    char                 ' '
    String(引用数据类型) null

    2. 局部变量是没有默认的初始值的,必需要先初始化才干使用。


    以下来看个样例:

    //人类
    class Person {
    	
    	String name; //成员变量
    
    	public void eat(){
    		int age ;
    
    		age = 12;
    		for(int i =  0 ; i< 5 ; i++){
    			System.out.println("hello world"+ age);
    		}
    	}
    
    }
    
    
    
    class Demo3 
    {
    	public static void main(String[] args) 
    	{
    		Person p1 =  new Person();
    		p1.eat();
    
    	}
    }
    结果:
    hello world12
    hello world12
    hello world12
    hello world12
    hello world12


    以下是内存中代码的运行图




    首先内存整体分为了五个部分,包含 stack segment(栈内存)、heap segmentheap segment(堆内存)、code segment(方法区)、data segment(静态代码块)、执行时常量池(Runtime Constant Pool)是方法区的一部分




        当中我们程序中用keywordnew出来的东西都是存放在heap segment(堆内存)。


        程序中的局部变量存放在stack segment(栈内存),这些局部变量是在详细方法运行结束之后,系统自己主动释放内存资源(而heap segment中的资源须要java垃圾回收机制来处理)。




        程序中的方法。是内存中的code segment(方法区)中的,并且是多个对象 共享一个代码空间区域。


        static静态变量。须要放在内存中的data segment(静态代码块)中。


    执行时常量池。储存常量。



    关于内存机制 ,等我弄懂些再发表文章。都怪我太菜哭

  • 相关阅读:
    DL/T 467-2019 电站磨煤机及制粉系统性能试验
    fidlder-05(拦截并修改数据)
    fiddler-04(怎么对APP抓包)
    Redis5设计与源码分析读后感(二)简单动态字符串SDS
    Jedis连接搭建在阿里云服务器上的Redis,基于Linux(CentOS7)
    centos7下安装redis6.0版本+3种启动方式
    Linux下端口被占用的解决方法
    Linux卸载Nginx
    linux中普通用户修改密码出现(passwd:Authentication token manipulation error)
    linux重置密码提示与用户名相似该怎么解决?
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7357411.html
Copyright © 2011-2022 走看看