java三大变量——静态变量、实例变量、局部变量
文章目录
- 前言
- 一、java中变量分类
- 二、三者的区别与联系
- 1.静态变量、实例变量、局部变量区别
- 2.成员变量的两种细分类型的区别
- 总结
前言
变量是内存当中存储数据最基本的单元,将数据(字面量)放到内存当中,给这块内存空间起一个名字,这就是变量。
变量就是内存当中的一块空间,这块空间有名字、有类型、有值,这也是变量必须具备的三要素。
一、java中变量分类
java中的变量可分为三类:局部变量、静态变量、实例变量。
首先,变量根据声明的位置不同可以分为:局部变量和成员变量。在方法体当中声明的变量以及方法的每一个参数都是局部变量。在方法体外,类体内声明的变量称为成员变量,成员变量声明时如果使用 static 关键字修饰的为静态成员变量(简称静态变量),如果没有 static 关键字修饰则称为实例成员变量(简称实例变量)
示例:
public class VarTest {int x1; // 实例变量,声明时可以不用赋值,有默认值int x2 = 10; // 实例变量static int y1 = 20; // 静态变量,声明时可以不用赋值,有默认值static int y2 = 20; // 静态变量public static void sum(int a, int b){ // 局部变量 a 和 bint num = 100; // 局部变量,声明时必须赋值}
}
二、三者的区别与联系
1.静态变量、实例变量、局部变量区别
静态变量:成员变量的一种,定义在类中方法外,用static修饰,在JVM中属于方法区,声明时有默认的初始化值。
实例变量:成员变量的一种,定义在类中方法外,在JVM中属于方堆中,声明时有默认的初始化值。
局部变量:定义在类中方法中,在JVM中属于栈中,声明时没有默认的初始值,初始化时必须手动赋值。
2.成员变量的两种细分类型的区别
静态变量和局部变量都属于成员变量,那么如何选择合适的类型呢?下面就来谈一下这两者的区别和使用方法。
静态变量,顾名思义就是静止不变的变量,在对象中对于同一个成员变量的数值都一样时,例如定义一个中国人类,每个人的国籍都是中国,就没必要每一个对象中存一份,这样就可以把数据抽离出来将其用静态变量表示,用static修饰。
调用方式:
实例变量只能通过对象名调用,静态变量可以使用类名调用,也可以使用对象名调用,但是不推荐使用对象名调用。
如下(示例):
public class Chinese{String name;//每个人名字不同int age;//每个人的年龄也不同static String nationality = "Chinese";//每个人的国籍相同Chinese(String name,int age){this.name = name;this.age = age;}
}public class Test{Chinese xiaofang = new Chinese("小芳",18);String name = xiaofang.name;String age= xiaofang.age;String nationality = xiaofang.nationality;//不推荐这样写String nationality = Chinese.nationality;
}
总结
变量在使用过程中还需注意以下几点:
定义同名问题:
同一个域中局部变量不能定义为相同的名字,会报错;
同一个域中成员变量也不能定义为相同的名字,会报错
局部变量和成员变量定义的名字可以相同,使用过程中遵循就近原则;
作用域问题
变量的有效范围以大括号为标准,在定义的大括号范围内有效,出了大括号就不认识了。
java三大变量——静态变量、实例变量、局部变量相关推荐
- JAVA中 成员变量和和实例变量区别
java语言支持的变量类型 类变量:独立于方法之外的变量,用 static 修饰. 局部变量:类的方法中的变量. 实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰. publi ...
- java静态变量和实例变量的区别6_java静态变量的与实例变量的区别
下面的为代码实现 /** * */ package com.b510.test; /** * 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象, * 其中的实例变量才会被分配空间,才 ...
- Java中类变量(静态变量)和实例变量区别
实例 public class scope {static int a;int b;public static void main(String[] args) {// TODO 自动生成的方法存根a ...
- java 中静态变量(类变量)与实例变量 静态方法与实例方法
静态变量: 在类内部中,方法的外部声明的对象而且加上static; 实例变量: 在类内部中,声明不需要加static; 比如: 1 public class Demo{ 2 3 int i1=0; 4 ...
- Java单例模式个人总结(实例变量和类变量)
Java单例模式 背景知识:Static关键字. 在对于定义类的变量,分为两种,是否具有static修饰的变量: 没有static修饰的变量,通过类的实例化(对象)引用,改变量称为实例变量: 使用st ...
- 静态与实例变量的区别——(面试题)
静态变量与实例变量(方法)的区别 这道题主要考察的是我们对于static静态关键字是如何理解的(分为以下三点) 一.语法区别: 静态变量前要加static关键字,实例则不用 二.隶属区别: 实例变量属 ...
- 静态与实例变量的区别——(概述)
静态变量与实例变量(方法)的区别 这道题主要考察的是我们对于static静态关键字是如何理解的(分为以下三点) 一.语法区别: 静态变量前要加static关键字,实例则不用 二.隶属区别: 实例变量属 ...
- Java中的类变量和实例变量的区别
类变量也叫静态变量,也就是在变量前加了static 的变量: 实例变量也叫对象变量,即没加static 的变量: 区别在于: 类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变, ...
- java 多态性 变量_java – 与实例变量的多态性
参见英文答案 > Overriding member variables in Java 10个 这是我写的三个类: pub ...
- Java 基础之实例方法,实例变量,类方法,类变量
实例变量(instance variable) 实例变量:或叫实例域.实例字段(instance field),或叫成员变量(member variable).实例的变量,每个实例的变量可能不同. 实 ...
最新文章
- 使用 XML 时尽量避免使用的技术
- RESTful Web 服务 - Java (JAX-RS)
- xcode w情ndows版,xcode Windows版安装使用介绍
- A - 顺序表应用1:多余元素删除之移位算法
- 11.Axis客户端接收不同参数类型
- 商店管理系统——小组分工及索引卡
- url传值的一个问题解决
- CorelDRAWX4的VBA插件开发(十三)一键转曲(转全部页面)
- a byte of python2微盘_《A Byte of Python》与《简明 Python 教程》PDF版
- 微软服务器补丁管理软件,微软IT的补丁管理-MicrosoftDownloadCenter.PDF
- reviewboard升级
- 【读书笔记】浪潮之巅——方法论篇
- 自上而下 or 自下而上?企业部署RPA的2种策略
- 推荐2个适合程序员使用的显示器
- RLS算法-公式初探
- 怎么解决云电脑卡顿的问题?
- 用计算机作文教学设计,小学电脑的教案设计
- Crypto++库实现AES和RSA加密解密
- 北大青鸟 JQuery制作特效 第二章 (上机练习
- 数据要素市场的发展及运行
热门文章
- 在Delphi中可用FormatDateTime函数的用法
- 1.echarts中提示框 series中的pictorialBar的backgroundColor设置图片时不起作用?
- 淘宝CDN大规模并发优化学习和点评
- 2023春 哈工大计算机系统大作业
- 【愚公系列】2023年07月 Pandas数据分析之展示
- 解决 Acer 4736ZG 笔记本接投影仪死机的问题
- Latex jpg转eps
- 某程序员吐槽:买房自己家出400万首付,女朋友家里一分不出还要求加名字,怎么说服女朋友放弃写名?...
- 采集练习(十一) php 获得电视节目预告---数据来自电视猫
- 开源ThinkMusic搭建音乐网站,并实现公网连接