zoukankan      html  css  js  c++  java
  • 【java基础】成员变量和局部变量02

    成员变量和局部变量(2)

    成员变量的初始化和内存中的运行机制

            当系统加载类或者创建类的实例的时候,系统会自动为成员变量分配内存空间,并自动指定初始值。

    package object;  
      
    public class Person {  
        //定义一个静态的变量  
        public static String city;  
        //定义一个非静态的变量  
        public String name;  
          
        public static void main(String[] args) {  
              
            /*当person类加载的时候,静态变量就已经存在了,在堆内存中*/  
            //实例化person对象 在堆内存中创建一个person对象   
            //里面有一个属性name = null;  
            //在栈内存中有一个p指向这个对象  
            Person p = new Person();  
            //给name属性赋值  
            p.name="郑小辉";  
            //通过类名给city赋值  
            Person.city="合肥";  
            //通过对象给city赋值  
            p.city="蚌埠";  
            //创建一个新的person对象  
            Person p1 = new Person();  
            //给name赋值  
            p1.name="郑大钱";  
        }  
    }  

    局部变量的初始化和内存中的运行机制

            局部变量(除了形参)必须要显性初始化后才能使用,系统不会为局部变量执行初始化,也就是定义了局部变量之后,系统不会给这个变量分配内存空间,直到程序为变量赋初始值之后,系统才会给他分配内存空间并将初始值保存在里面。

            局部变量不属于任何类或实例,所以总是会保存在所在方法的栈内存中,基本数据类型保存的是数据本身,引用数据类型保存的是引用

            栈内存中的变量无需系统垃圾回收,局部变量只保存基本数据类型的值或对象的引用,所以占得内存区通常比较小。

  • 相关阅读:
    CAP理论中的P到底是个什么意思?
    网络分区是什么
    SQL中的where条件,在数据库中提取与应用浅析
    golang 数据库开发神器 sqlx使用指南
    2017-07-08( bzip2 bunzip mount)
    2017-07-07(zip unzip gzip gunzip)
    2017-07-06(grep man apropos )
    2017-07-05 (whereis which find)
    001
    009-变量测试
  • 原文地址:https://www.cnblogs.com/zhengchenhui/p/5762988.html
Copyright © 2011-2022 走看看