java学习day03---(八种基本数据类型)

一、八种数据类型

整数类型

类型               范围                   占用字节数

byte            -128到127                     1

short            正负3万                        2

int                 21亿                            4

long              最大                            8

浮点数类型

float    单精度         4字节

double  双精度       8字节

字符类型

char     能表示0~65535的整数      2字节

布尔型

booleam   只表示true和false     1字节

二、八种数据类型详解

四种变量声明赋值:

声明和赋值一起的:int a=1;     声明了,再赋值:int a;a=1;     声明多个变量并赋值:int a=10,b=16,c=18;        声明多个变量,再赋值:int a,b,c;a=10;b=15;c=18;

 

一个变量赋值的过程:

整数类型的系统默认值是int,浮点类型的默认值是double。

long  a=10;  赋值的过程为:1、系统会先把10转换成默认类型int类型。2、再把10(int类型)转换成long型。

short a=10;不会报错的原因是系统默认加了强制类型转换,实际在运行中是这样的 short a=(short)10; 如果赋值超过了类型的最大范围系统就会报错。

long b=2200000000;这赋值会报错,因为赋值的过程中系统会把22亿先存储到int类型的容器中,但int最大范围是21亿。因此需要把22亿直接赋值到long类型的容器中

可以在22亿后面加L:long b=2200000000L   这样22亿会直接赋值在long类型的容器中,我认为和强制类型转换:long b=(long)2200000000;是差不多的。

float的赋值也是需要在后面加F,因为float类型比int类型大。

double不能做加减乘除  会丢失精度。

char存储数字时输出的是ascii码对应的图形,如果用的是utf-8编码则就是其对应的图形,utf8的中文字符占3个字节。

三、数据类型转换

数据类型的容量大小:double>float>long>int>short(char)>byte

自动类型转换(小转换成大)

不会出现问题,整数变成小数会补.0。如:int  a=100;long  b=a;

强制类型转换(大转换成小)

需要加强制类型转换符,如果超出范围系统不会报错(因为语法没有错误),但运行出来会丢失数据

如 int  a=10;  byte b=a; 此时会报错,因为a为int类型比b是byte类型大,需要加强制类型转换符:byte b=(byte)a;

但强制类型转换不一定非要和转换的数据类型一样,可以比转换的数据类型小,如:int a=(short)b;是正确的。

精度缺失:小数部分全部舍去(小错误)

精度溢出:转换时数据打过转换类型的最大范围,数据会错乱 (重大错误,工作中要避免)

两个类型不同的数据相加,结果的类型是数据大的类型,需要注意强制转换

char和short之间的转换 在公共区间需要加强制类型转换 其他会溢出

 

posted @ 2021-07-05 21:30  墨衣i  阅读(107)  评论(0)    收藏  举报