在Java中的引用类型,是指除了基本的变量类型之外的所有类型,所有的类型在内存中都会分配一定的存储空间(形参在使用的时候也会分配存储空间,方法调用完成之后,这块存储空间自动消失),
基本的变量类型只有一块存储空间(分配在stack中)
引用类型有两块存储空间(一块在stack中,一块在heap中),
方法形参的值传递(引用)是指形参和传进来的参数指向同一个值的内存(heap)中;
1) 简单类型是按值传递的
以参数形式传递简单类型的变量时,实际上是将参数的值作了一个拷贝传进方法函数的,那么在方法函数里再怎么改变其值,其结果都是只改变了拷贝的值,而不是源值
一个方法不能够修改一个基本类型的实参的值
public class SimpleTypeTest { public static void changeMethod(int simpleData){ simpleData = 456; System.out.println("inside method--"+simpleData); } public static void main(String[] args){ int simpleData = 123; System.out.println("before call--"+simpleData); changeMethod(simpleData); System.out.println("after call--"+simpleData); } }
before call--123
inside method--456
after call--123
1) 引用类型
引用其实就像是一个对象的名字或者别名,一个对象在内存中会请求一块空间来保存数据,根据对象的大小,它可能需要占用的空间大小也不等。访问对象的时候,我们不会直接是访问对象在内存中的数据,而是通过引用去访问
引用是一种数据类型,保存了对象在内存中的地址
不同的引用可能指向同一个对象
一个方法可以改变对象的状态
一个方法不能让实参引用指向另一个对象
public class ReferenceTypeTest { public static void changeMethod(StringBuffer sbuffer){ sbuffer.append(" World"); sbuffer = new StringBuffer("My new Object"); System.out.println("inside method--"+sbuffer.toString()); } public static void main(String[] args){ StringBuffer sb = new StringBuffer("Hello"); System.out.println("before call--"+sb.toString()); changeMethod(sb); System.out.println("after call--"+sb.toString()); } }
before call--Hello
inside method--My new Object
after call--Hello World
形参sbuffer指向实参sb所指向的对象,之后让sbuffer指向changeMethod中新建的对象,实参只是在开始起了作用,后面便没有用到
相关推荐
Your author likes to read reference manuals (believe it or not)—at least if they are reasonably complete—on the grounds that this is the most efficient way to absorb a language quickly.
Java in a Nutshell Java Language Reference Java AWT Reference Java Fundamental Classes Reference Exploring Java Combined Index Combined Search Web Version Credits
### Neo4j Java Reference 3.0:深入理解图数据库扩展与高级应用 #### 概述 《Neo4j Java Reference 3.0》是一本详细介绍如何使用Java语言来开发和扩展Neo4j图数据库的专业指南。本书不仅覆盖了Neo4j的核心功能,...
### 伯克利:A Java Reference —— Java概述与基础知识详解 #### 1. Java概述 本章节提供了Java编程语言的基础介绍,从程序结构、编译执行到简单值与表达式的处理进行了详尽的讲解。 ##### 1.1 基本程序结构 ...
Java reference sheet
Java Reference源码解析 Java Reference是Java语言的一种机制,用于追踪对象的可达性和垃圾回收。Java Reference源码解析主要为大家详细解析了Java Reference源码,具有一定的参考价值,感兴趣的小伙伴们可以参考...
Java: The Complete Reference, Eleventh Edition By 作者: Herbert Schildt ISBN-10 书号: 1260440230 ISBN-13 书号: 9781260440232 Edition 版本: 11 出版日期: 2018-12-12 pages 页数: (1955) The Definitive ...
在Java编程语言中,`Reference`类是一个非常特殊且重要的概念,它超出了常规的引用类型,如`Object`或数组引用。`Reference`类及其子类主要用于处理对象的软引用、弱引用和虚引用,这些引用类型在内存管理,特别是...
Java The Complete Reference, 11th Edition 9781260440232 c.pdf Java The Complete Reference, 11th Edition 9781260440232 c.pdf Java The Complete Reference, 11th Edition 9781260440232 c.pdf
在Neo4j-java-reference-3.3这份参考指南中,涵盖了多个关于如何在Java环境中使用和扩展Neo4j数据库的高级主题。文档内容涉及到如何嵌入Neo4j到Java应用中、使用Neo4j的遍历框架、手动索引、事务管理、在线备份以及...
Java The Complete Reference 10th Edition Java9 编程官方参考(第10版) 带书签 文字版
Neo4j的Java参考文档版本3.3详细介绍了如何在Java应用程序中嵌入Neo4j,扩展Neo4j的功能,并且介绍了如何使用REST API进行授权规则设置、远程调试配置、事务管理、手动索引、在线备份以及监控Neo4j的JMX指标。...
Java自发布以来,已经经历了多个版本的迭代,目前最新的稳定版为Java 14,但本文档提及的《Java The Complete Reference 9th》涉及的Java版本是第九版对应的Java技术标准。 提到的《Java The Complete Reference 9...
### Java AWT(Abstract Window Toolkit)详解:掌握Java图形用户界面设计的核心技能 #### 引言:Java AWT——构建用户界面的基石 在Java的世界里,Abstract Window Toolkit(AWT)扮演着至关重要的角色,它为Java...
在Java编程语言中,"reference"是一个至关重要的概念,它涉及到对象的引用和内存管理。在Java的世界里,"Everything is Object",这意味着所有的数据都以对象的形式存在,而reference则是连接这些对象与程序代码的...
这将是一个Java Swing应用程序,它将用作Java API名称的快速参考。 它将具有增量搜索和过滤功能,从而提高了搜索效率。 这将是非常简单并且是统计分析Java api的好方法。
《Java The Complete Reference 第九版源代码》是一个深入学习Java编程语言的重要资源。这个压缩包包含的源代码是作者在书中讲解各种Java概念和技术时所使用的示例程序,旨在帮助读者更好地理解和应用Java编程知识。...
这个压缩包中的源代码文件名为"javareference",很可能是该章节所有示例的集合。 在Java编程中,源代码是用Java语言编写的程序文本,包含了类定义、方法、变量和控制流程等元素。这些源代码经过Java编译器的处理,...
《neo4j-java-reference-3.1》是Neo4j官方发布的针对Java开发者的详细指南,旨在帮助开发者熟练地利用Java API与Neo4j图形数据库进行交互。这本书涵盖了从安装配置到高级特性的方方面面,是Java程序员在 Neo4j 领域...