Java教程

java的数据类型

本文主要是介绍java的数据类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、java的8种数据类型

Java是一种强数据类型,其本质就是在内存中开辟不同形式的内存空间。
整型:byte,short,int,long
浮点型:float,double
布尔型:boolean
字符型:char

二、整型及浮点型的存储范围

类型字节长度取值范围
int4-2147483648~2147483647
short2-32768~32767
long8-9223372036854775808~9223372036854775807
byte1-128~127
float4
double8

三、为什么byte类型127+1是-128

public static void main(String[]args){
byte a=127;
byte b=(byte)(a+1);
System.out.println(b);

}

1.计算机中以补码存储数据
(以byte类型进行讨论)
原码:
45 00101101
-45 10101101
反码:
45 00101101
-45 11010010
补码:
45 00101101
-45 11010011
针对正数:正数的原码=反码=补码
针对负数:负数的反码=除符号位外其余位按位取反;
负数的补码=反码+1

2.为什么要计算反码

因为在计算机中只有加法,没有减法,在进行减法运算时,实质上是认为加上一个负数,这样可以减少计算电路的复杂度。
使用原码进行减法运算会出错:
例如,计算1-1,在计算机中默认转换为1+(-1),
=【00000001】原+【10000001】原=【10000010】原=-2
结果与实际运算不符

使用反码进行减法运算:
=【00000001】原+【10000001】原=【00000001】反+【11111110】反=【11111111】反=【10000000】原
=-0
00000000可以表示+0,10000000可以表示-0,二者是一样的,用2个编码其实浪费了资源。

使用补码进行减法运算:
=【00000001】原+【10000001】原=【00000001】补+【11111111】补
=【00000000】补
=【00000000】原
这样0可以用【00000000】表示,而之前出现的-0问题也就不存在了。

反码是为了解决减法问题,而补码是为了解决反码产生的±0的问题

四、数据转换时的精度损失

从int型数据转换为float型存在精度丢失,

从int型数据转换为double型存在精度丢失,

从long型数据转换为float型存在精度丢失,

强制类型转换:括号中表明强制转换类型

例如:将int型数据转换为byte型数据
int a=56788;
byte b=(byte)a;

五、关系运算符

常见的关系运算符:

关系运算符含义
==相等运算符
>=大于或等于运算符
<=小于或等于运算符
!=不等于运算符
>大于运算符
<小于运算符
这篇关于java的数据类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!