基本类型和引用类型变量
上两次课我们知道了,java语言中的两种数据类型。这节课呢,我们对上两次课做一个补充,也加深一下理论知识的学习。理论的东西是很有用的啊。这节课介绍基本类型变量和引用类型变量。
Java中数据类型分为两大类,是基本类型和对象类型。相应的,变量也就有两种类型:基本类型和引用类型。基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。引用类型,可是引用类型呢?它是一个对象类型的啊,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。很好理解吧,因为一个对象,比如说一个人,不可能是个数字也不可能是个字符啊,所以要想找它的话只能找它的地址了。
我们在学习计算机的过程中,所谓的难的东西,就是以前没有听过的概念,和不常用的思想。像是这个引用类型的概念就是以前不常用的,基本类型当然好理解不讲大家也知道。所以我们对于这样陌生的概念我们只要多琢磨一下就会明白的。
我们废话少说,接下来看看这两种类型变量的不同处理吧。基本类型自然是简单,声明是自然系统就给它空间了。例如,
int baijq;
baijq=250; //声明变量baijq的同时,系统给baijq分配了空间。
引用类型就不是了,只给变量分配了引用空间,数据空间没有分配,因为谁都不知道数据是什么啊,整数,字符?我们看一个错误的例子:
MyDate today;
today.day = 4; //发生错误,因为today对象的数据空间未分配。
那我们怎么给它赋值啊?引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。举个例子:
MyDate today; //将变量分配一个保存引用的空间
today = new MyDate(); //这句话是2步,首先执行new MyDate(),给today变量开辟数据空间,然后再执行赋值操作。
小总结:
刚才说了一大堆,其实就是一件事。如果是引用类型的变量,必须先得new一个对象出来。不new哪来的对象啊,不new哪有数据空间啊?没有数据空间怎么能访问呢?这回明白了吧!
我们还有个问题没有说,引用类型变量怎么赋值?这个就不是很难了。举个例子:
MyDate a,b; //在内存开辟两个引用空间
a = new MyDate(); //开辟MyDate对象的数据空间,并把该空间的首地址赋给a
b = a; //将a存储空间中的地址写到b的存储空间中
分享到:
相关推荐
Java 中的基本类型和引用类型变量的区别 Java 中的基本类型和引用类型变量是两个不同的概念,它们在内存分配、变量赋值和函数传递等方面有着本质的区别。 基本类型是 Java 中的八种基本类型,包括 byte、short、...
引用类型变量实际上存储的是一个指向堆内存中对象的指针,而不是实际的对象。因此,引用类型可以被赋予新的值,也可以被赋予新的属性和方法。 二、基本类型的值是不可变得 基本类型的值不可变,意味着一旦一个变量...
3. `M n`在栈(内存的另一部分,存储基本类型和引用)上创建了一个M类型的引用变量n。 4. `=`操作符将新创建的对象的地址赋值给n,使得n能够指向这个对象。此时,n就是一个指向M类对象的引用。 值得注意的是,引用...
总之,理解Java中基本类型和引用类型变量在内存中的位置关系,以及它们如何复制,是编写高效、无错代码的关键。掌握这些基础知识可以帮助你更好地设计和优化程序,避免潜在的性能问题和并发问题。
在力控软件中,变量和点是两个核心概念,它们在功能和使用上有所区别。 1. 力控的变量: - **中间变量**:这是临时性的变量,没有自己的数据源,通常用作存储临时计算结果。它的作用域覆盖整个应用程序,而在不同...
在C#编程语言中,类型系统是其核心组成部分,它主要分为两大类:引用类型和值类型。这两种类型的差异在程序设计与优化中扮演着关键角色,了解它们的区别对于提高代码质量和性能至关重要。 ### 引用类型 引用类型在...
- 当声明一个引用类型变量时,系统只分配了引用的内存空间,没有创建实际的对象。通过`new`关键字实例化对象后,对象才存在于堆内存中,引用变量存储的是对象的地址。 5. **String与StringBuffer** - `String`类...
在前端开发中,理解基本类型和引用类型的概念至关重要,因为它们决定了变量如何存储、操作以及如何相互作用。让我们深入探讨这两种类型。 首先,基本类型包括Undefined、Null、Boolean、Number和String。这些类型在...
引用类型变量实际上存储的是指向对象实例的引用,而非对象本身。这些引用存储在堆上,堆是内存中用于存储复杂对象的大块区域。当传递或赋值引用类型时,只复制引用,而不是整个对象。 - 特性: - 存储在堆中,访问...
当一个引用类型变量被赋值给另一个变量时,两个变量都指向同一个内存位置。因此,对其中一个变量的修改会影响到另一个。例如: ```csharp class Person { public string Name; } Person p1 = new Person(); p1....
当一个引用类型变量赋值给另一个变量时,两个变量会指向同一块内存区域。因此,修改一个变量会影响到所有引用该对象的其他变量。例如: ```csharp class Person { public string Name { get; set; } } Person ...
ECMAScript变量包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值是简单的数据段,而引用类型值指那些可能由多个值构成的对象。 在将一个值赋给变量时,解析器必须确定这个值是基本类型还是引用类型。...
本讲重点探讨C#中的值类型,尤其是变量和常量的使用。 1. **变量与常量** - **变量** 是程序中用于存储数据的容器,具有存储位置、数据类型、名称和值四个属性。变量的值在程序运行过程中可以改变。在C#中,变量在...
引用类型变量并不直接存储实际数据,而是存储一个指向堆(heap)上数据的引用或指针。当一个引用类型变量被赋值给另一个变量时,只复制了引用,而不是整个对象。因此,两个引用变量可以指向同一个堆上的对象,修改...
当创建一个引用类型变量时,实际上创建的是对内存中对象的引用,而不是对象本身。例如,`string str = "Hello";`声明了一个字符串变量str,它指向内存中包含"Hello"的字符串对象。 变量是存储数据的容器,它们在...
2. 当引用类型变量被赋值时,只复制引用,而不是整个对象。这意味着多个变量可以指向同一个对象,改变一个会影响所有引用该对象的变量。 3. 引用类型支持继承和多态性,可以创建复杂的面向对象层次结构。 4. 引用...
在Java编程语言中,对于引用类型变量的理解及其实现方式一直是开发者们容易混淆的地方。尤其是当涉及到方法调用过程中引用变量的传递时,更是如此。本文将通过两个具体的例子来探讨Java中引用变量传递时的一些常见...
本文将深入探讨C#中的核心概念:值类型和引用类型。这两种类型在内存管理和数据处理上有着显著的区别,理解它们对于编写高效且无错的代码至关重要。 值类型(Value Types)包括基本类型如整型(int)、浮点型...
在这个"winform 值类型引用类型比较源码"中,我们将会深入探讨值类型和引用类型这两种基本的编程概念,以及它们在.NET编程中的应用。值类型和引用类型是C#(以及大部分面向对象语言)中的核心概念,理解它们的区别...