一。大家都知道,在JAVA中变量有以下两种:
基本类型变量,包括char、byte、short、int、long、float、double、boolean。
引用类型变量,包括类、接口、数组(基本类型数组和对象数组)。
二。具体原理
1.当基本类型的变量被当作参数传递给方法时,JAVA虚拟机所做的工作是把这个值拷贝了一份,然后把拷贝后的值传递到了方法的内部。因此在上面的例子中,在调用
Java代码
// 为方法参数重新赋值
public void change(int i) {
i = 5;
}
方法的情况下,变量i和ParamTest型对象t的属性num具有相同的值,却是两个不同变量。变量i是由JAVA虚拟机创建的作用域在change(int i)方法内的局部变量,在这个方法执行完毕后,它的生命周期就结束了。
2. 那么当引用型变量被当作参数传递给方法时JAVA虚拟机又是怎样处理的呢?同样,它会拷贝一份这个变量所持有的引用,然后把它传递给JAVA虚拟机为方法创建的局部变量,从而这两个变量指向了同一个对象。
三。结论
1.基本类型和基本类型变量被当作参数传递给方法时,是值传递。在方法实体中,无法给原变量重新赋值,也无法改变它的值。
2.对象和引用型变量被当作参数传递给方法时,是引用传递。在方法实体中,无法给原变量重新赋值,但是可以改变它所指向对象的属性。
分享到:
相关推荐
19. **参数传递**:如果要使方法改变实参的值,通常使用对象作为参数,因为Java是传值调用,但对象引用是可以改变的。 20. **布尔类型**:Java的布尔类型是`boolean`,用true和false表示,不是int类型。 以上是对...
数据结构是计算机科学中的核心概念,它涉及到如何有效地组织和存储数据,...在复习资料中,你可能还会遇到更多关于数组、链表、栈、队列、树、图等具体数据结构的概念和实现,这些都是构建复杂算法和系统的关键组件。
### Java基础复习知识点详解 #### 一、Java语言特点 - **高级编程语言**:Java是一种面向对象的高级编程语言,具有以下特点: - **简单性**:语法简洁,易于学习。 - **结构中立**:独立于硬件结构,能够在各种...
这份资料的核心是“JAVA面试题集编程篇.pdf”,它整理了Java编程领域的常见问题和解答,为面试者提供了一个全面的复习平台。 一、基础概念与语法 1. Java的特性:理解Java的面向对象特性,包括封装、继承、多态。 2...
【Java程序设计基础复习提纲】 Java是一种广泛使用的高级编程语言,其强大的功能和跨平台特性使其成为CS(计算机科学)领域的重要组成部分。本复习提纲涵盖了Java的基础知识,包括程序设计类型、标识符和关键字、...
Java编程语言的学习涵盖了许多核心概念,哈理工的Java复习题纲涵盖了面向对象编程的基础到进阶主题。以下是根据提纲详细展开的知识点: 1. **面向对象的三大特征**: - **封装**:它是对象的特性,隐藏内部实现...
- **方法参数传递**:Java中方法参数的传递分为两种:传值(对于基本类型)和传引用(对于对象)。 - **方法重载**:在一个类中可以有多个同名方法,只要它们的参数列表不同即可。 - **字符串**:在Java中,字符串...
6. **方法**:方法的定义、调用,参数传递(传值与传引用),返回值类型,重载与重写。 7. **字符串**:String类的基本操作,如concat、substring、replace等。 8. **异常处理**:try-catch-finally语句,异常的分类...
此外,理解Java中的传递和引用,如传值和引用的区别,以及静态变量、私有变量的管理,还有输入/输出流和序列化的应用,都是面试中常见的技术问题。 面试还可能涉及循环、条件和概率的考察,包括递归算法的理解和...
5. **函数和过程**:章节涉及不同语言中的函数和过程的实现,如传值、传名、引用和指针参数传递机制,分析其优缺点。 6. **程序控制**:这里主要讲解程序流程的控制结构,如顺序控制和异常处理机制,异常处理是程序...
### Java经典笔试题详解 #### 一、填空题解析 1. **面向对象的语言具有__继承...每一道题目不仅考察了应聘者的编程基础知识,还涉及到了对Java语言特性的深入理解,对于求职者来说是一次很好的复习和自我提升的机会。
【计算机二级等级考试知识点】 ...以上知识点涵盖了数据库备份、Java GUI编程、网络通信、网页开发、电子表格操作、内存管理、计算机制作、数据模型、文件处理等多个方面,适用于计算机二级等级考试的复习。
27. **参数传递**:讨论函数调用时参数如何在内存中表示和传递,包括传值、传引用等策略。 这些是编译原理中的核心概念,深入理解和掌握这些知识点对于编写高效、可靠的编译器至关重要。学习编译原理不仅有助于理解...
4. **方法**:定义、调用方法,理解参数传递机制,包括传值和传引用的区别。 5. **类与对象**:了解面向对象的基本概念,如封装、继承和多态。 6. **数组**:掌握单维度和多维度数组的创建和使用。 7. **字符串**:...
6. **函数**:函数是代码的复用单元,可以通过传值、引用(ref)或输出参数(out)的方式传递参数。函数调用是程序执行的重要部分。 7. **面向对象编程**:C#支持面向对象的特性,如类、对象、属性、方法等。类是...
其他选项要么是传值(Func(a)),要么是传指针(Func(&a)、Func(*a)),要么是先取地址再传引用(Func(&(*a))),这些都不符合题目要求。 3. 概率论:甲乙射箭的问题是一个概率问题。因为甲射了101箭,乙射了100箭...
它们可以接受参数并返回值,分为值参数(传值调用)和引用参数(传址调用)。值参数传递的是参数的副本,不会改变原值;引用参数则传递的是参数的地址,可以修改原值。此外,C语言还支持const关键字,用于声明不可变...
从给定的文件标题“C# .NET面试题”及描述来看,这份资料旨在为寻找工作的软件工程专业毕业生提供全面的面试准备素材,涵盖了C# .NET编程的基础知识与实践应用,是求职者不可多得的复习指南。下面将根据题目内容详细...