成员变量和局部变量(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="郑大钱";
}
}

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

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

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

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

【java基础】成员变量和局部变量02的更多相关文章

  1. Java基础-成员变量与局部变量

    Java基础-成员变量与局部变量 1.什么是成员变量与局部变量? public class Student {   String name;   int high;   public void stu ...

  2. java中成员变量,局部变量,静态变量的辨析

    转自百度:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc 1.java中成员变量,局部变量 ...

  3. java 线程---成员变量与局部变量

    关于成员变量与局部变量: 如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,他们对该成员变量是彼此影响的(也就是说一个线程对成员变量的改变会影响到另一个线程) . 如果一个变量是局 ...

  4. Java中成员变量和局部变量的区别

    java面向对象过程中,最基本的两类变量就是成员变量和局部变量 成员变量是写在类中并且写在方法外部,一般写在每个类的头部,用于初始化或者方法操作,作用域是整个类被实例化到被销毁,中间变量都可以被外部方 ...

  5. [ 转载 ] Java中成员变量 和局部变量

    java语言支持的变量类型 类变量:独立于方法之外的变量,用 static 修饰. 局部变量:类的方法中的变量. 实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰. publi ...

  6. java中成员变量和局部变量在内存中的分配

    对于成员变量和局部变量:成员变量就是方法外部,类的内部定义的变量:局部变量就是方法或语句块内部定义的变量.局部变量必须初始化. 形式参数是局部变量,局部变量中基础数据类型的引用和值都存储在栈中,对象引 ...

  7. Java:成员变量、局部变量和静态变量

    梳理一下: 根据定义变量位置的不同,可以将变量分成两大类:成员变量和局部变量. 成员变量(俗称全局变量):在类里定义的变量.又分为实例变量和类变量(也成为静态变量). 实例变量:不以static修饰, ...

  8. 第3章 Java语言基础----成员变量与局部变量

    在对局部变量进行赋值时,不能对非静态字段age进行静态引用,图1错误,加上static后图二正确,图3与图4类似,如下图所示: 图1图2 图3图4 2.成员变量times在类中定义,局部变量times ...

  9. JAVA:成员变量和局部变量的区别

    1.作用于不同: 局部变量的作用域仅限于定义它的方法 成员变量的作用域在整个类的内部都是可见的 2.初始值不同 JAVA会给成员变量一个初始值 JAVA不会给局部变量赋予初始值 3.在同一个方法中,不 ...

随机推荐

  1. JAVA内存管理之堆内存和栈内存

    我们常常做的是将Java内存区域简单的划分为两种:堆内存和栈内存.这种划分比较粗粒度,这种划分是着眼于我们最关注的.与对象内存分配密切相关的两类内存域.其中栈内存指的是虚拟机栈,堆内存指的是java堆 ...

  2. mysql 增删改查最基本用法小结

    目录: 1.新建数据库 2.新建数据表 3.查看表结构 4.增删改查 建立一个数据库students 建立一块数据表class1 内容包括: id 主键 自动编号 无符号位 SMALLINT类型 na ...

  3. 解决Qualcomm Atheros AR8161 Gigabit Ethernet网卡Linux下坏掉的问题

    我的戴尔(Dell)I2330R-168一体电脑的网卡在升级某个内核版本后,网卡就用一会儿就坏了 ifconfig eth0 eth0: flags=<UP,BROADCAST,RUNNING, ...

  4. Apache部署django项目

    在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的w ...

  5. HTTP 错误 500.23 - Internal Server Error

    HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置. IIS8.0详细错误 老版本WEB程序用 VS2013打开时 ...

  6. struts2 的正则表达式验证不起作用解决办法

    在官网上提供的model为: <field-validator type="regex"> <param name="expression"& ...

  7. delphi XE 5 Android 真机调试简易安装教程

    ① FireMonkey[DELPHI XE5]QQ群号:165232328,群内超过1600移动开发爱好者 第一步,打开手机中的USB调试 电脑自动装驱动,但是找不到 去手机官网下载驱动 手动安装驱 ...

  8. 用JavaScript实现的选项卡

    Codes wins arguments! <!DOCTYPE html> <html> <head> <meta charset="utf-8&q ...

  9. Android first---外置内存剩余空间大小

    ####获取外置内存的大小#### public class MainActivity extends Activity { @SuppressWarnings("deprecation&q ...

  10. 【STL】优先队列priority_queue详解+OpenJudge-4980拯救行动

    一.关于优先队列 队列(queue)这种东西广大OIer应该都不陌生,或者说,队列都不会你还学个卵啊(╯‵□′)╯︵┻━┻咳咳,通俗讲,队列是一种只允许从前端(队头)删除元素.从后端(队尾)插入元素的 ...