数据类型详解
大家好,今天给大家总结的是数据类型的相关知识。首先我们知道Java是一门强类型语言,这就使得它对于变量的使用要求非常的严格,所有的变量都必须要定义之后才能使用。
Java的数据类型分为两大类
基本类型(primitive type)
引用类型(reference type)
这里我们先只介绍一下基本类型,引用类型这里还没有讲,按照进度慢慢来。
首先我们要知道一个问题,那就是什么是字节?
了解字节之前,我们还要搞清楚一个定义,那就是位(bit)。
位(bit):位是计算机内部数据储存的最小单位,比如11001100就是一个八位的二进制数。
二进制我们都耳熟能详了,无非就是0、1的组合罢了。那么这里的每一个0和1就是一个位单位。
字节(byte):字节是计算机中数据处理的基本单位,习惯上用大写的B来表示。
位是数据储存的单位,另一个则是数据处理的基本单位。这就好比我们人吃饭一样,米的最小单位是粒,但饭得一口一口的吃,那么这里一口就相当于嘴巴处理食物的基本单位了。
1 B(byte,字节)=8 bit(位)
字符:字符是计算机中使用的字母、数字、字、和符号。
八大数据类型
整数
int num1 = 10; //最常用的一种类型
byte num2 = 20;
short num3 = 30;
long num4 = 30L; //Long类型要在数字后面加个L
除了耳熟能详的十进制,我们还有计算机语言的二进制、八进制以及十六进制等等。
在编程语言中,则可以这么表示:
int i = 10;
int i2 = 010; //数值前加0表示为八进制,输出结果为8
int i3 = 0x10; //数值前加0x表示为十六进制,输出结果为16。
小数
float num5 = 50.2F //float类型要在数字后面加个F
double num6 = 3.1415926;
那么,在银行的存取款业务中,数字怎么表示呢?
这里面的交易有零有整,所以有人会提出说,我们可以用浮点类型float和double来表示!
我们来看这样一个例子:
float f = 0.1F; //输出结果为0.1
double d = 1.0/10; //输出结果为0.1
System.out.println(f==d); //false
明明是两个相等的数,怎么就不等了呢?
再看一个例子:
float d1 = 2134532456F;
float d2 = d1 + 1;
System.out.println(d1==d2); //true
加上一个数值之后,却又不合理的相等了。
当你使用浮点类型的数进行比较时,就意味着有限、离散、大约、接近但是不相等,因为这里进行了一个舍入误差的操作。
所以最好完全避免使用浮点数进行比较,重要的事情说三遍!
正确的答案应该是bigDecimal,这是一个数学工具类,后面我们再做一个详细了解。
字符
char c1 = 'A';
char c2 = '中'; //这里的字符既可以是中文字符也可以是英文的
System.out.println(c1); //A
System.out.println((int)c1); //强制转换,输出结果为97。
System.out.println(c2); //中
System.out.println((int)c2); //强制转换,输出结果为20013。
所有的字符本质还是数字,基于编码Unicode表:(97 = a,65 = A)
字符串,String不是关键词也不是类
String namea = "冷心Dream";
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb); //false
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd); //true
因为String不是一个基本数据类型,而是一个引用数据类型。
布尔值
boolean flag = true; //因为只有两个结果,要么对要么错,所以用0和1来表示,只占用一个字节
//boolean flag = false;
结尾
非常感谢狂神老师推出的免费学习网站,如果也有愿意一起学习的可以看这里

浙公网安备 33010602011771号