java:引用数据类型
一、什么是引用数据类型
数组,类,接口被称为引用数据类型,共同特点是,他们的字面值并不是一个“值”而是一段地址。
二、定义(创建)
过程如下(以数组为例)
由上可知,引用变量存储的是一个地址,地址指向堆中存储arr实际内容的一片区域(虽然java中并没有指针,但不代表java不使用指针,指针只是被封装在java编译器内部,我们无法窥见而已。)由于存储的是一个地址,所以无论是数组还是类和接口,他们的长度都是一样的,是一个地址的长度(一个地址多长呢?如果是64bit的jdk就是64bit,如果是32bit的jdk就是32bit)
三、调用
1、先说基本类型变量的调用,对于基本数据变量来说,对变量的操作一般是对变量的“值”的操作。例如赋值:i1 = i2,变化的是变量的值。
2、再看引用类型变量,引用变量的调用分两种,一种是对引用变量本身的调用,一种是对引用变量的元素的调用。
对于引用变量本身的调用,调用的是引用变量的地址值,也可以理解为引用变量的值就是地址值。
对于引用变量的元素的调用,也要分情况:一种是调用的元素本身也是一个引用变量,那么按调用引用变量本身来算;如果调用的是元素是基本变量类型,那么按照调用基本变量类型来算。
四、特殊的String
有一个说法String是一种特殊的引用变量类型,特殊在哪里呢?说他是引用变量,是因为它的内存方式,说它特殊也在它的内存方式。
如果我们想改变字符串的内容,系统会首先查看常量池内是否有我们要改成的字符串,如果有就直接把地址改过去,如果没有,就创造一串新的字符,并把地址改过去。
因此说String是引用变量,是因为它存储的是地址,地址指向一段字符串,说它特殊是因为对字符串内容进行改动时,一定会影响到字符串的地址,也就是字符串的值。
java:引用数据类型相关推荐
- Java引用数据类型String详解
Java引用数据类型(String) 引用数据类型概述 引用数据类型与基本数据类型的差别(举例说明) 引用数据类型概述 说到引用数据类型,那么何为引用数据类型? 引用类型,都可以用null值作为值,也 ...
- Java学习笔记之:Java引用数据类型之字符串
一.简介 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串最简单的方式如下: String greeting = "H ...
- java引用数据类型可以更改类型_java,基本数据类型和引用数据类型
java中的数据类型分为基本数据类型和引用数据类型 基本数据类型 整型:byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用数据类型 ...
- java引用数据类型可以更改类型_Java改变引用数据类型的值
Java改变引用数据类型的值 在Java中,引用数据类型的数据传递的是值(地址)的拷贝 对于以下代码 class BirthDate { private int day; private int mo ...
- java 引用数据类型Scanner类 Random类
Scanner类是属于引用数据类型 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式. 基本数据类型定义:数据类型 变量名 = 值; 引用 ...
- JAVA基础第2.5章 JAVA引用数据类型
(一)Java变量 1.Java中有两种数据类型:基本数据类型和引用数据类型 基本数据类有8种:byte, short, int, long, char, boolean, float, double ...
- Java引用数据类型(类)+案例
引用数据类型(类) 自定义类也是一种数据类型.只是自定义类型并非Java为我们预先提供好的类型,而是我们自己定义的一种引用数据类型用来描述一个事物. 类的定义格式 创建java文件,与类名相同 pub ...
- java引用数据类型之数组
首先我们都知道在编程中赋值运算"="的意思是把右边的值赋给左边. 如图所示,当b=a时,实际上就是把a的值赋值给b. 但是在数组中,可不是这么回事 如图所示,先定义一个数组变量a, ...
- java引用数据类型
一.定义 1.类似c的指针,引用类型存放的时对象的引用 2.引用变量再声明时被指定位一个特定的类型,一旦声明后,类型就不能被改变 3.引用类型包括:类,接口,数组,枚举,注解 4.所以的引用类型的默认 ...
- Java程序员的春天!java引用数据类型和基本数据类型区别
正文 这次写一下springboot与redis的结合,这里使用的是redis集群模式(主从),主从环境的搭建,请参考redis集群搭建 搭建完redis集群环境后,开始springboot之旅 1. ...
最新文章
- Unity网络多玩家游戏开发教程(上册)
- MySQL删除普通用户
- 组件化开发实战_一篇文章搞懂什么是前端“组件化”开发
- 漫谈LiteOS之开发板-GPIO(基于GD32450i-EVAL)
- 【Es】Es 集群设置分片很大导致集群无法选举主节点异常等
- 在C#中有效地使用列表作为字典键
- 常用c语言函数实现,常用的C语言库函数实现
- 信息安全系统设计基础实验三:实时系统的移植
- 探讨e.target与e.currentTarget
- [矩阵论] 上三角阵的逆(如果有)则也是上三角阵
- 51单片机简单计算器
- SPSS中如何进行快速聚类分析
- js的延迟执行 async defer/ js的数据类型全/ null和undefined区别/=、==、===的区别/js中的宏任务和微任务js的作用域附带试题有答案
- 用阿里云短信服务--通过Web接口发送短信
- android 弹幕 计算碰撞轨道,GitHub - imtaotao/danmuku: 高度自定义弹幕样式,碰撞检测,你值得拥有 ...
- Kuangbin 带你飞-线段树专题 题解
- 主流安全大漏洞:隐私空间泄密
- 【那些年,我们一起追得女孩】第十五章
- 系统程序员成长计划-管道过滤器(Pipe-And-Filter)模式
- A.O.史密斯创新精品净水热饮机 净水热饮无需等待