问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

原始数据类型和引用数据类型(原始类型和引用类型有什么区别)

发布网友 发布时间:2024-09-26 16:43

我来回答

1个回答

热心网友 时间:2024-10-04 23:32

基本数据类型和引用类型的区别是什么?

一、含义不同:

基本数据类型存放的是一个值,而引用类型存放的是一个(对象)地址。

二、影响不同:

基本数据类型由于在内存中的一个地址存放的是这些变量的值,所以调用函数,函数里的形参,就是复制这些变量的值,以后对形参值的变化,不会影响到原来变量的值;

引用数据类型由于在内存中是引用他的一个内存地址而不是具体的值,所以调用函数,函数里的形参,就是复制这些变量的值的地址,当对形参的值进行修改的时候,就等于是对这些变量的值,进行修改,所以会影响到原来变量的值。

引用的规则

(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。

(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。

(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。

以下示例程序中,k被初始化为i的引用。

语句k=j并不能将k修改成为j的引用,只是把k的值改变成为6。

由于k是i的引用,所以i的值也变成了6。

以上内容参考:百度百科-引用类型

Java基本数据类型都有什么呢?

变量就是用来储存值而保留的内存位置。这就意味着当你创建一个变量时就会在内存中占用一定的空间。

基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字字母。

Java中有两种有效地数据类型:原始数据类型,引用数据类型。

1.原始数据类型

Java支持8种原始数据类型。原始数据类型是由该语言预先定义的并用关键词命名的。下面让我们深入学习一下这8种数据类型。

字节型

byte

字节型是一种8位有正负的二进制整数

最小值是-128(-2^7)

最大值是127(2^7-1)

默认值为0

字节型数据类型主要是为了在大型数组内节省空间,主要是替代整数由于字节型比整数小4倍。

例如:bytea=100,byteb=-50

短整形

short

短整数是一种16位有正负的二进制整数

最小值是-32768(-2^15)

最大值是32767(2^15-1)

短整数类型的数据也可以像字节型一样用于节省空间。短整数比整数小两倍

默认值为0

例如:shorts=10000,shortr=-20000

整数型

int

整数型是一种32位有正负的二进制整数

最小值是-2,147,483,648(-2^31)

最大值是2,147,483,647(2^31-1)

整数型一般默认被应用于整数值除非担心内存不够用。

默认值为0

例如:inta=100000,intb=-200000

长整形

long

长整型是一种64位有正负的二进制整数

最小值是-9,223,372,036,854,775,808(-2^63)

最大值是9,223,372,036,854,775,807(2^63-1)

这种数据类型一般是在需要比整数型范围更大时应用。

默认值为0L

例如:longa=100000L,intb=-200000L

浮点型

float

浮点型数据是一种单精度的32位IEEE754标准下的浮点数据。

浮点型数据主要是为了在大型浮点数字数组中节约内存。

默认值是0.0f。

浮点型数据不能用于如货币这样的精确数据。

例如:floatf1=234.5f

双精度型

double

双精度型数据是一种双精度的64位IEEE754标准下的浮点数据。

这种数据类型主要是默认被用于表示小数的值,一般是默认的选择。

双精度型数据不能用于如货币这样的精确数据。

默认值是0.0d

例如:doubled1=123.4

布尔型

boolean

布尔型数据代表一个信息比特。

它只有两个可能的值:真(true)和假(false)

这种数据类型用于真假条件下的简单标记。

默认值是假(false)

例如:booleanone=true

字符型

char

字符型数据是简单的16位Unicode标准下的字符。

最小值是:'\u0000'(或0)。

最大值是:'\uffff'(或65,535)。

字符型数据可以用来储存任意字母。

例如:charletterA(字符型的字母A)='A'

2.引用数据类型

引用数据类型是由类的编辑器定义的。他们是用于访问对象的。这些变量被定义为不可更改的特定类型。例如:Employee,Puppy等等。

类对象和数组变量就是这种引用数据类型。

任何引用数据类型的默认值都为空。

一个引用数据类型可以被用于任何声明类型和兼容类型的对象。

例如:Animalanimal=newAnimal("giraffe");

Java常量

常量是代表固定值的源代码。他们直接以代码的形式代表而没有任何估计。常量可以被分配给任意的原始变量类型。例如:

bytea=68;chara='A';

字节型,整数型,长整型和短整型也可以由十进制,十六进制和八进制计数系统表示。

当用这些技术系统表示直接量时,前缀0是为了标明八进制,前缀0x是为了标明十六进制。例如:

intdecimal=100;intoctal=0144;inthexa=0x64;

Java中的字符串型常量的规定和其他大多数语言一样,也是要写在双引号中间。字符串型直接量的例子如下:

"HelloWorld""two\nlines""\"Thisisinquotes\""""

字符和字符串型常量可以包含任意的Unicode字母。例如:

chara='\u0001';Stringa=""\u0001"";

Java语言也支持一些特殊的转义序列的字符和字符串直接量。他们是:

转义字符??????含义

\n?????????换行(0x0a)

\r?????????回车(0x0d)

\f?????????换页(0x0c)

\b?????????退格(0x08)

\s?????????空格(0x20)

\t??????????tab

\""?????????双引号

\'??????????单引号?

\??????????反斜杠????

\uxxxx??????十六进制UNICODE字符(xxxx)

欢迎想学习Java的小伙伴加入Java学习交流群,群号码:495273252?【长按复制】?我们一起学Java!

java原始数据类型有哪些

JAVA数据类型分基本数据类型和引用数据类型。

基本数据类型

Java里面包含8个基本数据类型,分别是:

boolean、byte、char、short、int、float、douboe、long

byte字节

byte是JAVA中最小的数据类型,它在内存中占8位(8个bit),取值范围从-128到127

赋值:byteI=127

short短整型

short类型在内存中占2个字节,取值范围从-32768到32767

赋值:shorti=32767;

char字符型

char类型在内存中占2个字节。表示一个字符,也可以使用ASCII码范围内的值来给char型的变量赋值。由于字符在内存中的取值不存在负数范围,所有取值范围从0到65535

赋值:chari=‘a’;或者chari=97;

int整型

int型在内存中占4个字节。取值范围从-2147483648到2147483647

赋值:inti=10;

float单精度浮点型

float型在内存中占4个字节。取值范围从-3.4E38到3.4E38

赋值:floati=1.0f;

long长整型

long型在内存中占8个字节。取值范围从-9223372036854775808到9223372036854775807

double双精度浮点型

double型在内存中占8个字节。取值范围从-1.7E308到1.7E308

boolean布尔型

boolean类型只有两个值:true和false。

基本数据类型的相互转换

转型规则

JAVA中所有的数字变量都是有符号(正负)的。

JAVA不允许类型的随意转换。只有数字变量可以进行转换,但是不能随意。

带有小数点的数字变量默认都为double型。定义float型必须进行强制类型转换。

所占字节数小的数字型变量赋值给所占字节数比它大的类型时不用强制类型转换,此时是自动转型。

int型变量赋值给char型变量时,JVM会以int型变量值到ASCII码表中查找出所对应的字符,再赋值给char型变量。反之也是。但是遵循第4条规则。

初始化简单数据类型时要注意赋值的范围,超出则会产生编译错误。

基本数据类型默认初值

类型初始值

booleanfalse

byte0

char0

short0

int0

float0.0

double0.0

long0

基本数据类型默认初值表

引用数据类型

JAVA中,非简单数据类型的类型都是引用数据类型。

基本数据类型和引用类型的区别

基本数据类型和引用类型的区别如下:

一、声明变量时内存分配不同

基本类型:在栈中,因为占据空间是固定的,可以将他们存在较小的内存中-栈中,这样便于迅速查询变量的值。

二、不同的内存分配带来不同的访问机制

在javascript中是不允许直接访问保存在堆内存中的对象的,所以在访问一个对象时,首先得到的是这个对象在堆内存中的地址,然后再按照这个地址去获得这个对象中的值,这就是传说中的按引用访问。?而原始类型的值则是可以直接访问到的。

三、参数传递的不同

原始值:只是把变量里的值传递给参数,之后参数和这个变量互不影响。

引用值:对象变量它里面的值是这个对象在堆内存中的内存地址,这一点你要时刻铭记在心!

四、复制变量时的不同

原始值:在将一个保存着原始值的变量复制给另一个变量时,会将原始值的副本赋值给新变量,此后这两个变量是完全独立的,他们只是拥有相同的value而已。

引用值:在将一个保存着对象内存地址的变量复制给另一个变量时,会把这个内存地址赋值给新变量,也就是说这两个变量都指向了堆内存中的同一个对象,他们中任何一个作出的改变都会反映在另一个身上。

在java中,怎么理解原生数据类型和引用数据类型。原生数据类型有哪些,引用数据类型有哪些。

你可以这样理解,基本数据类型:int

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
sometimesome timesometimessome times的区别 瓜地的午餐怎么造句 夏季宝宝不吃饭应该怎么办 狼人杀里面的白狼王模式怎么玩? 狼人杀白狼王和骑士:操作至上的高效玩法指南 狼人杀手游白狼王怎么玩 详细玩法攻略 狼人杀 狼人杀的白狼王怎么玩? 国产轮毂品牌有哪些 国产轮毂品牌哪个品牌好 国内轮毂有哪些品牌 岗位和职务怎么填 python3有多少内置函数(2023年最新分享) 从赤峰去静安寺开车怎么走 汽车下线是什么意思? roadmate是什么牌子 买了一双褐色的路伴鞋,遇到水变成黑色,晒干了又变回原来颜色,可是鞋上... 路伴鞋,很厚重的那`种是什么皮子,怎么清洁, 项目控制分类 无花果鸭制作方法 无花果鸭子汤做法 无花果鸭肉汤无花果鸭肉汤做法 嗓子一夜之间变得不如从前了,说不上嘶哑,但不如从前好听。救命啊!_百 ... 您好! 我今年11岁。 我一夜之间嗓子就哑了,没感冒,但我扁桃体很大(哑后... 除了书上的电脑住宅还有什么功能? 30电脑住宅主要讲了什么,用简短的语言来说 华为Mate30 Pro屏幕碎了多少钱? 电脑住宅:大门外的风向标上的电脑有什么功能 超意神探结尾是什么 主板换了里面的东西会没吗? 换主板时,硬盘里的数据会保留吗? 门锁关不上一推就开怎么办 抖音那就让情绪决定听呼吸频率是什么歌-呼吸决定歌词分享 什么植物用风传播种子除了蒲公英 为什么酷派8729手机按音量键加关机键进不去recovery 酷派8729,使用微信进行视频聊天时,不到五分钟就死机。请问是什么原因... 从上海虹口区赤峰路的上外宾馆怎么去上海财经大学(国定路校区)?_百度... 酷派4g手机8729怎么效正屏幕 酷派8729开不了机,贴住电池中间两个触头就一直震动是什么原因 被鸟屎淋头是什么征兆? 被鸟粪淋着有没有寓意,就是做在家里,然后被鸟粪淋了,无缘无故的,_百度... 郁闷,被鸟屎击中,会发生什么不好的事吗? 华为智慧屏上观看电视频道怎么设置 “ld”代表什么? 鸟屎掉在手臂上是什么征兆??? 在家里被鸟屎淋在肩头是什么意思啊有什么预兆吗 机顶盒的声音可以从音响里输出吗? 电视接音箱怎么接 不属于夫妻共同财产的有哪几种 兽王·复活之路作者简介 雨魔·兽王现出书籍简介 少康:夏朝第六任帝王,开创了少康中兴