【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制

简介: 【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制



1. 局部变量与成员变量的区别:

  • 局部变量与成员变量的区别:
  • ①声明的位置
  • 局部变量:方法体{}内,形参,代码块{}中
  • 成员变量:类中方法外
  • 类变量:有static修饰
  • 实例变量:没有static修饰
  • ②修饰符
  • 局部变量:final
  • 成员变量:public、protected、private、final、static、volatile、transient
  • ③值存储的位置
  • 局部变量,虚拟机栈,用于存储局部变量表等,存放编译器可知长度的各种基本数据类型、对象引用。方法执行完自动释放。
  • 实例变量,此内存区域的唯一目的就是存放对象实例,几乎所有对象实例都在这里分配内存。Java虚拟机规范中描述——所有的对象实例以及数组都要在堆上分配。
  • 类变量方法区,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
  • 作用域:
  • 局部变量:从声明处开始,到所属的}结束。
  • 实例变量:在当前类中“this.”(有时this.可省略),在其它类中“对象名.”访问。
  • 类变量:在当前类中“类名.”(有时类名.可以省略),在其他类中“类名.”,或“对象名.”访问。
  • ⑤生命周期:
  • 局部变量:每一个线程,每一次调用执行都是新的生命周期。
  • 实例变量:随着对象的创建而初始化,随着对象的被回收而消亡,每个对象的实例变量都是独立的。




2. 方法的参数传递机制

  • 方法的参数传递机制(实参给形参赋值):
  • ①实参是基本数据类型
  • 传递数据值
  • ②实参是引用数据类型
  • 传递地址值
  • 特殊的类型:String、包装类等对象不可变性(不做修改只做新增)
  • 例题:




目录
相关文章
|
2月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
129 4
|
2月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
216 5
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
202 1
|
2月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
260 1
|
2月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
208 0
|
9月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
197 13
|
9月前
|
存储 传感器 缓存
java变量与数据类型:整型、浮点型与字符类型
### Java数据类型全景表简介 本文详细介绍了Java的基本数据类型和引用数据类型,涵盖每种类型的存储空间、默认值、取值范围及使用场景。特别强调了`byte`、`int`、`long`、`float`、`double`等基本类型在不同应用场景中的选择与优化,如文件流处理、金融计算等。引用数据类型部分则解析了`String`、数组、类对象、接口和枚举的内存分配机制。
334 15
|
存储 Java
02 Java基础语法(变量+数据类型+运算符)(下)
02 Java基础语法(变量+数据类型+运算符)
115 5
|
存储 Java
02 Java基础语法(变量+数据类型+运算符)(上)
02 Java基础语法(变量+数据类型+运算符)
135 4
|
存储 Java
Java变量、数据类型和运算符 2
Java变量、数据类型和运算符
175 0