数据类型详解

数据类型详解

大家好,今天给大家总结的是数据类型的相关知识。首先我们知道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;

结尾

非常感谢狂神老师推出的免费学习网站,如果也有愿意一起学习的可以看这里点击跳转KuangStudy官网 作为一名大三学生,对于自己的未来还是比较迷惘的。而且学的知识也非常有限,我都不知道目前的编程技术算不算入门。 不过就像老师所说的那样,再小的帆也能远航。从现在开始,也许还不晚,我们有缘再见!

 

 

posted @ 2021-02-04 23:40  冷心Dream  阅读(156)  评论(0)    收藏  举报