Java 数据类型总结

1.java的数据类型

 

 

Java 数据类型总结_第1张图片

 

8 种类型表示范围如下:

byte:8位,最大存储数据量是256,存放的数据范围是-128~127之间。

short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

float:32位,数据范围在3.4e-45~1.4e38,赋值时可以加上f或F也可以不加。

double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

boolean:只有true和false两个取值。

char:16位,存储Unicode码,用单引号赋值。

 

float f1=12;//可加 可不加
Float f2=12F;//必须加
Float f3=12f;//必须加
        
long l1=12;//可加 可不加
Long l2=12L;//必须加
Long l3=12l;//必须加

 

 

类型 二进制位数 默认值 对应的封装类
byte 8 0 Byte
short 2*8 0 Short
int 4*8 0 Integer
long 8*8 0 Long
float 4*8 0.0 Float
double 8*8 0.0 Double
char 2*8 空格 Character
boolean false Boolean

 

 

 


 

 

 

 

 

 

 

 

 

整型

byte的取值范围为-128~127(-2的7次方到2的7次方-1)

short的取值范围为-32768~32767(-2的15次方到2的15次方-1)

int的取值范围为(-2147483648~2147483647)(-2的31次方到2的31次方-1)

long的取值范围为(-9223372036854774808~9223372036854774807)(-2的63次方到2的63次方-1)

 

 
 

 

 

浮点型

学过计算机原理的应该都知道,这两个类型的区别在于精度不同,double比float精度更高,范围更大。

单精度:float 3.402823e+38 ~ 1.401298e-45

(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)

双精度:double 1.797693e+308~ 4.9000000e-324

 

 

 

 
 

字符型

char是按照字符存储的,在代码中用引号,不管英文还是中文,固定占用占用2个字节,用来储存Unicode字符。范围在0-65536。例如:

char s=‘码’;1

char可以存储中文,那个问题来了:

为什么char型的可以存储utf-8的字符呢?

首先,GBK的汉字是两个字节的,而utf-8是三个字节的。在java的内部存储中,都是以unicode为主,一个汉字转化为unicode是两个字节,当汉字进行存储后,java会把汉字转化成unicode编码,这样子就可以存储进去了。而utf-8,GBK只不是过外在软件的编码格式,并不是内部存储的格式。

其实在存储汉字的时候,utf-16的效果要比utf-8优秀,因为utf-16只需要2byte的大小就行。

 

 

布尔型变量

布尔型变量还有true和false两种,在C语言中可以用1表示true,0表示false,但是在java中是不允许的。

 

 

 

String

 

很多人会把String当成是java的基本来类型之一,其实并不是。String是一个应用数据类型,是java中的一个类。String类型的参数用双引号表示。例如:

 

String s="12345";

 

 

 
 

 

强制类型转化

   自动类型转化:

   byte–>short–>int–>long–>float–>double

   例如:

   int a = 5;long b=a;//这是成立的,反过来byte b=a;就不成立了,需要强制类型转化12

   

   强制类型转化:

 

   例如:

 

   int a = 8;byte b=(byte)a;//强制类型转化是在参数前用括号加上数据类型进行转化12。但是这种方法并不是全    部情况都使用,需要看情况而定,因为这样子

 

   

          1、会损失精度 。

          2、容易超出取值范围出错。

 

 

 

java引用类型

java有5种引用类型,分别是类,接口,数组,枚举,注解,这里不过多介绍

 

 

 

封装类

java的八大数据类型都有对应的封装类。

在实际编程中,基本使用的是基本数据类型来存储数据,这主要是因为如果用封装类,对于程序的开销就会变大,而这在实际中是完全没有必要的。

那为什么还要设置类呢?因为在java中,泛型类包含了预定义的集合,在这里使用的是对象类型,无法直接使用基本数据类型,所以定义了封装类,提供这些基本数据类型的包装容器。而且封装类中提供了有用的方法,可以对进行数据的操作。这里不做过多介绍

 

 

拆箱装箱(Autoboxing and unboxing)

举例:

Integer a = 100; //这是自动装箱(编译器调用的是valueOf(int i)) 

int b = new Integer(100);// 这是自动拆箱

 

 

你可能感兴趣的:(Java,基础)