`

Java引用类型和基本类型

    博客分类:
  • Java
阅读更多

Java中有8个基本类型, 而其他,包括数组,枚举和自定义类都是引用类型。

基本类型:

 

String aaa = "aaaaaa";
String bbb = aaa;

 

执行完后, 变量 bbb 会含有和aaa一样的值,而且在JVM中,会有2个独立的字符串变量"aaaaaa"。

 

Point aa = new Point();

Point bb = aa;

执行后,JVM只有一个Point对象, bb 也是指向这个内存区域的 。

 

所以,代码的测试结果:

 

		String aaa = "aaaaaa";
		String bbb = "bbbbbb";
		
		List tlist = new ArrayList();
		tlist.add(aaa);
		tlist.add(bbb);
		
		aaa = "111111";
		bbb = "222222";
		
		System.out.println(tlist.get(0));
		System.out.println(tlist.get(1));

 执行结果:

aaaaaa

bbbbbb

 

 

		{
		Point aa = new Point();
		
		aa.changeValue(0, 1);
		
		testChange(aa);
		
		System.out.println(aa.x + "," +aa.y);
		}


	private static void testChange(Point aa){
		aa.changeValue(3, 4);
	}
	


class Point{
	int x;
	int y;
	public void changeValue(int x , int y){
		this.x = x;
		this.y = y;
	}
}

  执行结果: 3,4

 

 

数组,枚举, 自定义类结果都是这个。

 

 如果想通过复制的方法, 不改变原对象的值,可以使用 clone() 方法。

 

这个需要对象实现 Cloneable 接口。

 

数组类型可以直接调用这个 clone() 方法。

 

 

在引用传递中, 必须是有了确切的引用, (新建了对象, 初始化了值) , 复合类型的引用才会被传递到方法中去 . .

 

如果在方法中, 对象新建了值, 那么就会丢失原来的引用地址 . . . .

 

以HASHMAP 为例 :  

 

public class Test {

	public static void testMap(Map map){
		//map = new HashMap();      此时,对象的引用被修改了,外部方法将丢失它的值.
		map.put("aaa", "ggg");
	}
	
	
	public static void main(String[] args){
		System.out.println("Haha");

		Map testMap = new HashMap();
		testMap(testMap);
		
		String a = testMap==null?"null":"have";
	}
 

 

 

分享到:
评论

相关推荐

    Java中的基本类型和引用类型变量的区别

    Java 中的基本类型和引用类型变量的区别 Java 中的基本类型和引用类型变量是两个不同的概念,它们在内存分配、变量赋值和函数传递等方面有着本质的区别。 基本类型是 Java 中的八种基本类型,包括 byte、short、...

    java教程课件5基本数据类型与引用类型

    Java教程中的核心知识点主要涉及Java的基本数据类型、引用类型、常用包、对象的内存分配以及字符串操作。下面将对这些内容进行详细的阐述。 1. **基本数据类型与引用类型** - Java的基本数据类型包括布尔型`...

    浅析Java引用类型和方法参数传递

    ### 浅析Java引用类型和方法参数传递 #### 一、引言 在Java编程语言中,理解数据类型的处理方式对于编写高效、可维护的代码至关重要。本文将深入探讨Java中的引用类型及其如何影响方法参数的传递机制。通过具体实例...

    JAVA数据类型思维导图

    本资源“JAVA数据类型思维导图”提供了一种直观的方式来理解和记忆Java中的数据类型,包括基本数据类型和引用数据类型。下面将对这两个主要的数据类型进行详细解释。 1. 基本数据类型(Primitive Data Types) - ...

    JAVA数据类型与Hibernate的类型映射

    在Java编程语言中,数据类型分为两种:基本数据类型(如int、char)和引用数据类型(如类、接口、数组)。而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据...

    Java引用类型编程开发技术共13页.pdf.zip

    以上知识点涵盖了Java引用类型的基础概念和高级特性。在实际开发中,理解并熟练运用这些知识可以编写出高效、安全的Java代码。如果想要深入学习,可以查阅这13页的PDF文档,它可能会提供更具体的应用示例和实战技巧...

    java中基本类型及string类型

    掌握Java中的基本类型和String类型对于编程至关重要。理解每种类型的特点、适用场景以及如何在不同类型间进行转换,能够帮助开发者写出更加高效、安全的代码。同时,熟练运用`String`类的各种方法,可以在处理文本...

    JAVA数据类型和运算符

    Java中的数据类型分为两大类:基本数据类型和引用数据类型。 1. 基本数据类型包括布尔型(boolean)、字节型(byte)、短整型(short)、整型(int)、长整型(long)、字符型(char)、浮点型(float)和双精度浮点...

    Java中数据类型和MYSQL中数据类型的对比

    首先,Java 有两类数据类型:基本数据类型(如 int、char、float)和引用数据类型(如类、接口、数组)。基本数据类型是预定义的,它们的大小和值的范围是固定的。例如,`int` 在 Java 中占用 4 个字节,可存储 -2^...

    JAVA原始类型和引用类型有哪些区别?[定义].pdf

    Java编程语言中有两种基本的数据类型:原始类型(Primitive Types)和引用类型(Reference Types),它们在行为、存储和使用上存在显著的区别。 1. **原始类型(Primitive Types)**: - Java的原始类型包括布尔型...

    java的基本类型详解

    Java是一种静态类型语言,它提供了8种基本数据类型,用于存储原始数据。以下是对Java基本数据类型的简要概述: 基本数据类型直接存储数据,不存储引用。 每种类型有固定的内存大小和取值范围。 它们具有默认值,未...

    java引用 对象 属性等数据类型知识

    Java有两大类数据类型:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。 - 基本数据类型包括:整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型...

    JAVA中值类型和引用类型的区别

    在Java编程语言中,值类型和引用类型是两种基本的数据类型分类,它们在内存管理和数据处理上有显著的差异。理解这些区别对于编写高效且无错误的代码至关重要。 **值类型**,也称为基本数据类型,包括四类共八种:...

    Java基本数据类型

    Java中的数据类型主要分为两大类:简单类型(也称为基本数据类型)和复杂类型。 ##### 1.1 数据类型的基本概念 数据类型是对内存位置的一种抽象表达方式。在Java中,数据类型是语言中最基本的单元定义,它们用来...

    java基本类型数据

    ### Java基本类型数据 #### 一、概述 Java是一种广泛使用的面向对象的编程语言,它在设计时就考虑到了安全性、可移植性和易用性。Java语言中的数据类型分为两大类:基本数据类型(primitive data types)和引用...

    java数据类型汇总

    - **包装类转换**:Java 提供了六个基本数据类型的包装类,用于在基本类型和对象之间转换。例如,`float f = 100.0f; Float F = new Float(f); Double d = F.doubleValue();` 2. **字符串与其他数据类型的转换** ...

    Java数值类型

    在Java中,数据类型分为两大类:基本数据类型和引用数据类型。其中,基本数据类型又进一步分为数值类型、字符型和布尔型。 #### 二、Java数值类型 ##### 1. 取值范围 Java中的数值类型主要包括整数型和浮点型。每...

    Java数据类型,Hibernate数据类型,标准sql数据类型之间的对应表

    总而言之,Java数据类型、Hibernate映射类型和SQL数据类型之间的对应关系是Java开发者尤其是进行数据库交互的开发者必须掌握的基础知识。通过深入理解并熟练运用这些映射规则,我们可以更好地实现Java应用与数据库...

    抽象类与接口的区别-java中值类型和引用类型的区别.docx

    ### Java中值类型和引用类型的区别 #### 值类型 1. **存储位置**:值类型通常被分配在栈上。当声明一个值类型变量时,实际的值会被直接存放在该变量的内存空间中。 2. **实例化**:值类型变量直接包含了实例的数据...

Global site tag (gtag.js) - Google Analytics