首页 > 编程语言 > 详细

Java基本数据类型

时间:2019-01-21 18:47:01      阅读:150      评论:0      收藏:0      [点我收藏+]

开始的话

从刚开始接触coding,到现在成为一个coder。我觉得有必要把我生活和工作中,与编程相关的东西。以笔记的形式记录下来。于是我就先开始,记录一下,Java的一些笔记吧。希望能给,其他人或需要的人一些帮助,更渴望,看到我其中有一些错误的地方进行指正。

数据类型数据类型
首先Java的数据类型主要有这么几个:
基本数据类型主要这几个: byte,short,int,long,float,double,char,boolean
同样分成三大类:

  • 数值类型:byte,short,int,long,float,double
  • 字符类型:char
  • 布尔类型:boolean
byte

byte是8位的数据类型,占用1个字节(8bit),默认值是0,它的取值范围是(-2^7) ~ (2^7-1),也就是 -128 ~ 127之间,所以最大存储数据量是255;
byte一般在大型数组中使用,来代替整数,因为byte变量占用的空间只有int的1/4。
byte使用示例: byte a = 10,byte=-10。在使用byte数据类型的时候需要注意取值范围!

short

short是16位的数据类型,占用2个字节,默认值是0,它的取值范围是(-2^15) ~(2^15-1),也就是 -32768 ~ 32767之间,所以最大数据存储量是65536;
short虽然是int型变量所占空间的1/2,但是在实际中却很少用到。在大型数组中也可以节省空间。
short使用示例:short a=100,short b=-200;

int

int是32位的数据类型,占用4个字节,默认值是0,它的取值范围是(-2^31) ~(2^31-1),也就是 -2147483648 ~ 2147483647之间,所以最大数据存储量是2^32-1;
int是数据类型是整型,是我们在项目中用到最多的数据类型之一;
int 使用示例:int a=1000,int b=-2000;

long

long是64位的数据类型,占用8个字节,默认值是0L,它的取值范围是(-2^63) ~(2^63-1),也就是 -9223372036854775808 ~ 9223372036854775808之间,所以最大数据存储量是2^64;
long是数据类型是长整型,是我们在项目中用到最多的数据类型之一。在使用long类型的数据时最好在数值末尾带上大写的L!
long 使用示例:long a=1000L,long b=-2000L;

float

float是32位的数据类型,占用4个字节,默认值是0,它的取值范围是3.4e-45 ~ 1.4e38 之间;
float是数据类型是单精度,在直接赋值时必须在数字后加上f或F;
float使用示例:float a=10.25f, float b=-20.35F;

double

double是64位的数据类型,占用8个字节,默认值是0,它的取值范围是4.9e-324 ~ 1.8e308 之间;
double是数据类型是双精度,在直接赋值的时候最好加上D或d;
double使用示例:double a=10.123d, double b= -10.25644D;

boolean

boolean是布尔类型,占用1个字节,只有两个值,false和true,默认值是 false;
boolean只能用一种标志来记录 true或false,一般和 if 结合使用;
boolean使用示例: boolean a=true,boolean b=false;

char

char是字符类型,占用2个字节,默认值为空,取值范围 为 0~65535,也就是 \u0000 ~ \uffff;
char数据类型可以储存任何字符;
char 使用示例: char a=1,char b=’A’;

数据转换

数值类型的级别从低到高分别为:byte,char,short(这三个平级)——>int——>float——>long——>double

自动转换

其中由低级别转到高级别,是属于自动类型转换,这点是由系统自动转换的。 例如将int类型的数据转为float类型的数据:

实例:

int i=10;
float j=i;
System.out.println("i:"+i+",j:"+j);

结果:
i:10,j:10.0
强制转换

如果由高级别转为低级别,则需要强制转换,也就是强制类型转换。 例如将int类型的数据转换为byte类型的数据:

实例:

int i=127;
int j=128;
byte bye=(byte)i;
byte bye2=(byte)j;
System.out.println("i:"+i+",bye:"+bye);
System.out.println("j:"+j+",bye2:"+bye2);

结果:
i:127,bye:127
j:128,bye2:-128

说明:因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。所以在进行强制类型转换的时候,要注意取值范围!

在强制转换的时候需要注意数据的精确度,否则可能会出现数据精确丢失。 例如 double类型的数据转换为float类型数据。

实例:

double d=10.1111115;
float f=(float) d;
System.out.println("f:"+f+",d:"+d);

结果:
f:10.111112,d:10.1111115

总结
如果在不同的数据类型进行计算,例如:

  1. byte 类型的数据 加 short 类型的数据 = 结果为:int类型;
  2. short 类型的数据 加 int 类型的数据 = 结果为:int类型;
  3. int 类型的数据 加 long 类型的数据 = 结果为:long类型;
    这里的不同的数值类型数据进行相加的时候,会自动转换为级别最高的那一个。 那么short 类型的数据加 byte 类型的数据为什么是int类型呢? 因为在java的世界里,如果比int类型小的类型做运算,java在编译的时候就会将它们统一强转成int类型。

那么这里可以得出结论,在数值类型中,若级别小于int,进行计算的时候,最终的数据类型会自动转换为int,如果高于int,最终数据结果会取其中最高的一个!

Java基本数据类型

原文:https://www.cnblogs.com/liuxianglin/p/10300106.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!