您的位置:首页 > 编程语言 > Java开发

JAVA基本数据类型、数据类型转换

2017-09-01 19:38 190 查看

JAVA中数据类型

一、基本数据类型

数值型

整型

byte 字节型 占一个字节 用8位存储数据 范围:-128~127 默认值0

short 短整型 占2个字节 2^15 范围:-32768~32767 默认值:0

Int 整型 占四个字节 范围:-2^31~2^31-1

从JDK1.7开始,允许数字中间插入_分隔数字,在编译时,自动省略。

java 中整数默认为Int,默认值是0.

long 长整形 占8个字节 需要在后面加L作为标识,默认为0L。

浮点型

float 单精度 占4个字节 在后面加f作为标识 默认值:0.0F

double 双精度 占8个字节 java中小数的默认类型 默认值:0.0

字符型

char 占2个字节 0~65535

编码:阿斯科玛表—ASCII 0-127 西欧码表—ISO8859-1 0-255 GB2312—2个字节表示一个汉字 —GBK Unicode编码体系—UTF-8—3个字节表示一个字符—万国码表

转义字符:\t 制表符 \r 回车 \n 换行 \ 反斜杠 \’单引号 \”双引号

默认值: ‘\u0000’—以\u开头表示这个字符是它对应的UTF-8的编码

布尔型

boolean true|false

注:

java中数值类型都是有符号的。

二、引用数据类型

类—class 接口—interface 数组—[]

三、数据类型的转换

隐式转换/自动类型转换

转换规律一:byte->short->int->long

long l = 34;//34默认是int类型,int类型的值可以赋值给long类型—在int类型的而取值范围内,将值直接赋值给long类型,可以不加L

float f = 3.2f;

double d = f;

转换规律二:float->double

int i = 3;

float f = i;

转换规律三:int->float,可能会产生精度损失

float f = -25;//true

float f = 25.0;//false

long l = 34;

float f = l ;—->true

转换规律四:任何一个整型都可以赋值给浮点型的变量,但是可能产生精度损失

int->double—>会产生精度损失

char c = ‘e’;

int i = c;

转换规律五:char -> int

//这两种写法在编译时期就已经转换成了对应的形式了

char c = 98;–true–> char c = ‘b’;

short s = ‘b’;–true—> short s = 98;

char c = -1; //编译报错

//分开编译的,编译完了char c = ‘b’; ‘b’已经以字符形式存在了内存中

//由于两句话是分开编译的,所以现在JVM已经不确定c变量所表示表示的字符是否在short类型的取值范围内了。

char c = ‘b’;

short s = c;–false

//编译完成之后s的取值已经存入内存中了,再次使用s的时候,不能按照对应的码表转换成字符,能确定这个数字是否在码表的范围内吗?

short s = 100;

char c = s;

因为两句话是分开编译的,所以无法确定范围。

注:各个基本类型之间是平等的,不存在大小或者说是父子关系。

2. 显示转换/强制类型转换

1. 当把大的类型转换为小的类型的时候,需要强制转换
float f = 3;->3.0f
int i = (int)f;
double d = 3.8;
int i = (int)d;-> i = 3;
当把浮点型数据转换为整型变量的时候,需要强制类型的转换。小数转换成整数的时候,不是四舍五入,而是舍弃掉小数部分。因此,小数转换整数的时候,也会产生精度损失。


注意:在计算机中,绝大部分小数是没办法精确保存的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java