Java 中的基本数据类型
原文地址:http://www.5ixiudou.com/portal/detailInfo/1000000005/201
前言:大家可能听说过,Java是面向对象的语言,Java中的大多数数据都是对象,但是嘞,哎,就是不包含本节课要讲的这几种基本数据类型。Java中有几种基本数据类型嘞,哎,8种。这8种基本数据类型呢,有不同的用法,也包含各种类型之间的转换。下面,一起来学习下吧。
一.8种基本数据类型的介绍
1. 8种基本数据类型如下:
这里说一下,啥叫浮点数,浮点数,就是小数。浮点类型,就是可以带有小数点的类型,就是小数,比如 1.2 、2.3这样的。
2. 8种基本数据类型所占的空间如下:
二. 常见基本数据类型的详细介绍
1. int 类型
int 类型嘞,是java 里边最常见的整数类型。一共有四个字节,32位,数值范围是 -2^31~2^31-1 。另外说一下哈,java 里边如果直接给出一个整数类型的数值,那么这个数值默认就是 int 类型的,比如说,“小明啊,给你一个 100”,这个 100 ,就是 int 类型的。当然啦,像这样的直接的量,不能超出 int 类型的数值范围啦,要不又要编译报错了(又要打你屁屁了)。
2. long 类型
long类型啊,也是一种整数类型,和 int 不同的是,long占用的位数更多,64位,数值范围 是 -2^63~2^63-1。long的范围更大哦。如果你要用的数据更大,已经超过了int 的范围了,肿么办,别怕,用long啊(不是让你浪哈,没让你过河)。那我要直接用long类型的数据怎么办,123?no,no,前边说了,直接的整数都是 int 类型的,所以,这里的123是int 类型的,那我想要一个long类型的,咋整,告诉你哈,在这个数值后边 加上一个 L 或者l(小写的L)就行了,123L或者 123l,建议用大写的哈,小写的容易分不清啊(欲哭无泪脸,被坑过的可能知道)。
3. double 类型
double 类型是一个浮点类型哈,注意 这个浮点类型可以位数多的那一个哈,位数少的是 float。double 叫双精度浮点数,64位。在 java 中,如果直接给出一个 小数,那么默认就是 double 类型的(这也是先说 double 类型的原因啦)。比如 2.123,这个数值,就是double类型的。
4. float类型
float类型也是一个浮点数,但是是单精度的,位数是double的一半(这也是为啥叫单精度的原因),32位。如果想直接获取一个单精度的数值怎么办,可以这样 , 2.123f,这样就可以直接表示一个单精度的小数了。
5. char类型
char类型,是字符类型,可以存放啥呢,存放'a' 、'b' 之类的字符。注意,java中的字符是用单引号扩起来的哈,不要使用双引号。char 是 16位的。悄悄的说一下,其实啊,char类型存储的是 无符号的整数,这些整数对应着不同的字符。这一点,现在能理解就理解,不能理解就先留着,以后用的多了,自己就通了。
说一下char类型的赋值哈,可以有一下几种:
char a = 'A'; //最常见的赋值方式
char b = '65'; //存放的是正的整数,在 16位之内,也是可以的
char c = '\u0041'; // 这是 unicode形式
6. boolean 类型
这个类型,叫 布尔类型。只有两个值,true 或者 false。可以用来进行判断。在写代码的过程中,经常被用来当开关,用在判断逻辑中,控制不同的逻辑走向。
三. 基本数据类型之间的转换
1. 类型的自动转换
咱们知道哈,小的东西可以放到大的东西中,这是一个很简单的规律哈。java中也是这样,小类型的数据可以放到大类型的数据类型中。这样做的话,不会损失什么,可以直接进行的。前边也讲了每个类型占有多少位了,这个位的多少就标志着数据类型的大小,小的可以直接转换成大的,因为直接可以放进去嘛,哈哈。
举个例子哈,
int a = 100 ; long b = a; // 这样是正确的
float c = 2.123f ; double d = c ; //这样也没毛病
char e = 'a' ; int f = e; //知道为啥可以不,因为 char 存放的 是 16位的正整数,而 int 是32位的,所以可以存放哦
下面放一个转换图哈:
2. 类型的强制转换
啥叫强制类型转换啊,就是 高位数的 转换成 低位数的。这样做的话,就相当于把大的东西放到小的容器里边,怎么放进去呢,丢弃一部分呗。所以啊,强制类型转换,有可能造成精度的损失哦。那怎么强制类型转换呢,直接在赋值的时候,指定类型就行了。
int a = (int)4294967295L; //a = 0 ,这个叫溢出哈,超过了,直接就木有了
float b = (float)2.1231231231231231231; //b = 2.1231231
就是这样的。
3. 运算时的自动转换
在运算时啊,java为了保证精度,将预算结果,自动转换成了运算双方位数多的那个数据的数据类型。比如这样:
2 + 3.0 ,大家猜一猜 结果是什么类型,对,double 类型的,因为 3.0 是 double类型的,所以结果 是 5.0 ,所以,这么写是正确的:double a = 2 + 3.0; 这么写是错误的:int a = 2+3.0; 要想最终获取 int 类型的数据,就得强制转换了呦,int a = (int)2+3.0;
其他形式的,大家可以自己试试哈。
更多内容,大家可以关注我的个人网站 www.5ixiudou.com