在说参数传递之前,先说一下栈和堆。其实我对它们也不是很了解-_-|||,不过我们可以去问度娘,所以我这里简单说一下,栈相当于缓存,堆相当于内存。
Java中参数传递包括两种,一种是值传递,一种是引用传递。
先说值传递。
八种数据类型(byte short int long float double char Boolean)和 String 类储存于栈中,即在栈中直接开辟出相应数据类型大小的空间,存储下这个值。当一个值传给这个值时,就该为传入的值,例如:
int n;//定义整型n,此时n被默认为0
n = 10;//10传给n,在栈中被储存的数据n值被改变,此时为10
再如:
int n;
int m = 10;
n = m;//m中存储的数据传给n,n此时为10
从上面两个例子,我们发现参数传递就是传递原始参数的值。n和m之间互不干扰,这很容易理解,n是n,m是m,其中哪一个改变也不会影响另一个。
引用传递
Java中引用传递只适用于对象类型和数组。
实际上在实例化对象的时候,new关键字在堆中开辟了与该类对应的空间,而对象名在栈中,此时对象名储存的不是对象中的属性和方法,而是对象在堆中的地址。
假设我们已经通过同一个类创建好对象obj1 和obj2,:
obj1 = obj2;
这时,obj2 传给obj1 的就是obj2 所储存的地址,也就是说obj1 此时储存的是obj2 的地址,这时候通过obj1 来调用方法和属性,都是obj2 的方法和属性。这时候obj2 就相当于两个对象名,而obj1 对象此时没有地址指向它。
对于数组也是如此。
相关推荐
《JAVA入门到精通——30天学通JAVA》是一本专为初学者设计的Java编程教程,旨在帮助读者在短短的30天内快速掌握Java编程基础,从而踏入编程世界的大门。Java作为一种广泛应用于互联网、移动应用、企业级开发等领域的...
在Java语言程序设计的入门部分,先介绍了Java语言的基本概念和特性。Java具备跨平台执行能力,即一次编写,到处运行(WORA)的特性。它通过Java虚拟机(JVM)来实现在不同操作系统上的运行。Java程序通常需要编写源...
面向对象编程是Java语言的核心概念之一,Java 7版本的教程为读者提供了一个系统的学习路径。本章重点介绍面向对象编程的基本概念,包括类的定义、对象的创建以及对象之间的关系。同时,本章还涵盖了Java中基本数据...
本篇文章将深入解析“Android新手入门1——项目源码”所涵盖的知识点,包括Android项目的创建、活动(Activity)的创建与管理、按钮的使用、页面跳转、页面间的消息传递以及Menu菜单的前端实现。 首先,Android项目...
以上是对“Java_Web快速入门——全十讲”的部分知识点进行了详细的总结,这些知识点涵盖了 Java Web 技术的基础概念、核心技术和实践应用,对于初学者来说是非常宝贵的参考资料。接下来的几讲会继续深入探讨更高级的...
一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...
Java 中参数传递方式详解是 Java 新手入门面临的一个经典的话题。本文意在终结这个话题,Java 中有说法:Java 里面参数传递都是按值传递,怎么理解这句话? 按值传递和按引用传递是来自 C++ 语言的概念。引用不是...
7. **方法**:函数的定义与调用,参数传递,方法重载和重写。 8. **异常处理**:理解异常的产生,学习try-catch语句块,以及finally块的使用。 9. **IO流**:学习输入输出流,包括文件操作,字符流与字节流,以及...
2. **控件**:TextView、EditText、Button、ImageView等是常见的UI元素,通过XML或Java代码进行定义和操作。 3. **主题和样式**:通过styles.xml文件设置全局主题和控件样式,提高界面一致性。 四、程序调试 1. **...
"Java入门123(第二版)PPT.rar" 提供了一套完整的Java初学者教程,通过一系列PPT课件来帮助学习者掌握Java的基础知识。下面我们将深入探讨其中涉及的重要知识点。 1. **第一章:让自己的第一个Java程序跑起来!** ...
综上所述,“Java语言程序设计——基础篇”这本书全面地介绍了Java语言的基础知识,适合Java初学者作为入门指南。通过系统学习这些知识点,读者可以掌握Java编程的基本技能,并为进一步深入学习打下坚实的基础。
### JAVA入门教程核心知识点解析 #### 一、Java语言概览 Java自1995年由Sun Microsystems公司推出以来,迅速成为了全球范围内最受欢迎的编程语言之一。作为一种纯面向对象的编程语言,Java不仅具备强大的功能,还...
本书《Java实战入门[一个资深Java培训老师倾力收藏]》为Java初学者提供了一条从零基础到实战开发的学习路径,涵盖了Java编程语言的多个重要方面。全书共分为二十一章,每章都围绕着具体的知识点和项目实践进行讲解,...
### 经典Java趣味入门——Java基础与应用实践 #### 一、Java源文件与基本概念 本章节从创建Java源文件入手,介绍了Java源文件的基本结构及其组成元素,为初学者提供了Java语言的基础概念。 ##### 2.1 创建Java...
一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...
在"入门学习struts——合同管理系统"中,你将有机会深入理解Struts1的核心概念和工作原理,同时通过一个实际的合同管理系统的开发过程,提升你的Java Web开发技能。 该系统可能包含了以下组件和知识点: 1. **...
本资料“Android编程快速入门——字节跳动”旨在帮助新手理解Android开发的基础概念,并提供实际操作的指导。 一、Android简介 Android是由Google领导的开放源代码操作系统,广泛应用于智能手机和平板电脑。它基于...
6. **函数**:学习函数的定义、参数传递和返回值,以及如何使用内置函数和自定义函数。 7. **面向对象编程**:深入理解类、对象、封装、继承和多态等核心概念,这是Java的重要特性。 8. **异常处理**:学习如何...