Java定义了哪些基本数据类型?基本数据类型和引用数据类型的特点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java定义了哪些基本数据类型?基本数据类型和引用数据类型的特点?相关的知识,希望对你有一定的参考价值。

1、布尔型 - boolean

1)boolean类型适用于逻辑运算,一般用于程序流程控制;
2)boolean类型数据只允许true或false,0或非0的整数不能替代true和false。

2、字符型 - char

1)char型数据用来表示通常意义上的“字符”;
2)字符常量为用单引号括起来的单个字符;
3)Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示;
4)Java语言中还允许使用转义字符'\'来将其后的字符转变为其它的含义。

3、整型 - int、short、long、byte

1)Java各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性;
2)Java语言整数常量的三种表示形式:

1)十进制整数;
2)八进制整数,要求以0开头;
3)十六进制整数,要求以0x或0X开头。
3)Java语言的整型常量默认为int类型,声明long类型常量可以后加'l'或'L';
4)Java语言中,所有数都是带符号的(正、负)。

类型

存储空间

取值范围

byte

1字节

-128 ~ 127

short

2字节

-215 ~ 215-1

int

4字节

-231 ~ 231-1

long

8字节

-263 ~ 263-1

4、浮点型 - float、double

1)与整数类型类似,Java浮点类型有固定的表数范围和字段长度;
2)Java浮点类型常量有两种表示形式:
1)十进制数形式;
2)科学计数法形式;
3)Java浮点类型常量默认为double类型,如要声明一个常量为float类型,则需要在数字后面加'f'或'F';
4)float类型的精度为6-7位,double类型的精度为15位。

类型

存储空间

取值范围

float

4字节

-3.403E38 ~ 3.403E38

double

8字节

-1.798E308 ~ 1.798E308
参考技术A 数据类型 大小 范围 默认值

byte(字节) 8 -128 - 127 0
shot(短整型) 16 -32768 - 32768 0
int(整型) 32 -2147483648-2147483648 0
long(长整型) 64 -9233372036854477808-9233372036854477808 0
float(浮点型) 32 -3.40292347E+38-3.40292347E+38 0.0f
double(双精度) 64 -1.79769313486231570E+308-1.79769313486231570E+308 0.0d
char(字符型) 16 ‘ \u0000 - u\ffff ’ ‘\u0000 ’
boolean(布尔型) 1 true/false false

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

参考技术A a 声明变量时不同的内存分配: 
1)原始值:存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。
这是因为这些原始类型占据的空间是固定的,所以可将他们存储在较小的内存区域 – 栈中。这样存储便于迅速查寻变量的值。
2)引用值:存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存地址。
这是因为:引用值的大小会改变,所以不能把它放在栈中,否则会降低变量查寻的速度。相反,放在变量的栈空间中的值是该对象存储在堆中的地址。
地址的大小是固定的,所以把它存储在栈中对变量性能无任何负面影响。
b 不同的内存分配机制也带来了不同的访问机制

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

c 复制变量时的不同

1)原始值:在将一个保存着原始值的变量复制给另一个变量时,会将原始值的副本赋值给新变量,此后这两个变量是完全独立的,他们只是拥有相同的value而已。
2)引用值:在将一个保存着对象内存地址的变量复制给另一个变量时,会把这个内存地址赋值给新变量,
也就是说这两个变量都指向了堆内存中的同一个对象,他们中任何一个作出的改变都会反映在另一个身上。
(这里要理解的一点就是,复制对象时并不会在堆内存中新生成一个一模一样的对象,只是多了一个保存指向这个对象指针的变量罢了)。多了一个指针

d 参数传递的不同(把实参复制给形参的过程)

首先我们应该明确一点:ECMAScript中所有函数的参数都是按值来传递的。
但是为什么涉及到原始类型与引用类型的值时仍然有区别呢?还不就是因为内存分配时的差别。  
1)原始值:只是把变量里的值传递给参数,之后参数和这个变量互不影响。
2)引用值:对象变量它里面的值是这个对象在堆内存中的内存地址,这一点你要时刻铭记在心!
因此它传递的值也就是这个内存地址,这也就是为什么函数内部对这个参数的修改会体现在外部的原因了,因为它们都指向同一个对象。

以上是关于Java定义了哪些基本数据类型?基本数据类型和引用数据类型的特点?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA都有哪些基本数据类型啊

java语言的所有基本数据类型指的啥 ?引用数据类型指的啥?

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

java中基本数据类型和引用数据类型在内存分配上有啥不同

java中的基本数据类型都有哪些

java中引用数据类型都有哪些?