Java基本数据类型?

Python013

Java基本数据类型?,第1张

一、基本数据类型

byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0

short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0

int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0

long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L

float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0

double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0

char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空

boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false

二、Java数据类型基本概念:

数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式。接触每种语言的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都需要在学习初期去了解,Java是强类型语言,所以Java对于数据类型的规范会相对严格。数据类型是语言的抽象原子概念,可以说是语言中最基本的单元定义,在Java里面,本质上讲将数据类型分为两种:基本类型和引用数据类型。

基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。

引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。

三、Java中的数据类型与内存的关系

在Java中,每个存放数据的变量都是有类型的,如:

charchfloatxinta,b,c

ch是字符型的,就会分配到2个字节内存。不同类型的变量在内存中分配的字节数不同,同时存储方式也是不同的。

所以给变量赋值前需要先确定变量的类型,确定了变量的类型,即确定了数据需分配内存空间的大小,数据在内存的存储方式。

四、Java数据类型在内存中的存储:

1)基本数据类型的存储原理:所有的简单数据类型不存在“引用”的概念,基本数据类型都是直接存储在内存中的内存栈上的,数据本身的值就是存储在栈空间里面,而Java语言里面八种数据类型是这种存储模型

2)引用类型的存储原理:引用类型继承于Object类(也是引用类型)都是按照Java里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,昆明北大青鸟http://www.kmbdqn.cn/认为“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的。

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