博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java笔记第六篇 数据类型初了解(上)
阅读量:5313 次
发布时间:2019-06-14

本文共 1951 字,大约阅读时间需要 6 分钟。

#日常唠叨1#最近小区老是停电,让我怀疑人生。从今天开始应该可以回到之前的节奏

#日常唠叨2#上一篇博客写过了,从今天起两天又来理论了,大家稳住,两天之后就有代码

方便编程的工具有了,现在我们万事具备,可以开始深入Java了。

我们要接触的第一个概念,是数据类型。什么是数据类型呢?就是数据的类型呗(说了和白说一样)。那数据是啥?从计算机科学的角度来说,数据就是信息,我们的计算机是围绕这个信息,也就是数据展开的。我不举其他角度的例子了,说太多怕你们绕。也就是,数据即是我们程序的核心,没有数据就没有程序。

为了区分几个数据之中的不同,出现了数据类型这个概念。有了数据类型,程序就可以转管专治,针对不同数据类型的数据进行不同的处理。

在Java中,数据类型分为基本数据类型引用数据类型。基本数据类型分为整型(整数型)、浮点(小数型)、字符型布尔型,引用数据类型分为接口枚举数组

引用数据类型不是我们的重点,关于引用数据类型我们后面会细写。这里我们只要关注一下基本数据类型。

首先我们说说整型,整型是数据内容为整数的数据的类型。整型又分为4种类型,分别是byteshortintlong(大型编程语言就是这么麻烦)。这些不同的4种类型都可以用来表示整数数据,但是它们有表数范围的区别(即,占用存储空间的区别),下面这张表是各个类型的占用存储空间的大小和表数范围:

数据类型 占用存储空间 表数范围
byte 1字节 -128~127
short 2字节 -32768~32767
int 4字节 -2147483648~2147483647
long 8字节 -263~(263-1)

 

 

 

 

 

 

 

为啥表数范围的正数全部比负数小一?因为还有一个0呢。通常情况下,我们都使用int类型作为整型的默认类型,虽然有时我们不需要这么大的表数范围。Java内置也赞同了这一点,于是将整型的默认类型设置为了int(也就是说,我在Java中随便打一个整数,这个整数就是int类型),但是如果我们要用其他类型怎么办?如果要用byte和short,没有任何关系,因为int可以直接向下转型为byte和short(关于转型这件事,我们后面会写),但是如果用long类型呢?那就需要使用尾标,通过在整数后面增加一个L来实现(注意:这里不要用小写的L,因为小写的L很像数字1和字母i的大写,关于L问题我们后面会写)。比如 123 是一个int类型的数据, 123L 则是一个long类型的数据。

有些人要问了,我要用整型来表示一个比(263-1)还要大的数怎么办?Java中提供了一个叫做BigInteger的类,它可以表示比long更大的整数,但这是后话了(BigInteger类在后面会写)。

在Java中,整数可以用4种进制来表达,分别是2进制、8进制、10进制、16进制。通过在整数前面加上0b(或ob),即证明你打的数是2进制整数,8进制在前面加0,10进制啥也不用,16进制在前面加0x或ox。

说完整型,现在我们来聊聊另一个用来表示数字的类型——浮点型,浮点型是数据内容为小数的数据的类型。浮点型还好,只分成两种类型,floatdouble。他们的区别和整型一样,只是表数范围(占用存储空间)大小不一样而已:

 数据类型  占用存储空间 表数范围
 float 4字节 -3.403e38~3.403e38
 double  8字节 -1.798e308~1.798e308

 

 

 

 

 

 

 

学过数学的应该知道,小数点后面是可以写无限位的,所以浮点型只是进行一次粗略的估算,会出现误差。float类型尾数只能精确到的7位有效数字,被称为单精度小数。而double类型的精度说float的两倍,所以又叫双精度小数(double英文的本意就是双倍,不知道大家有没有听说过这个词:double kill)。Java浮点型默认为double类型,如果要用float需要在后面加上尾标f或者F(个人推荐用大写F),比如3.14是double类型,而3.14F是float类型(这边插一句,在小数后面加上d或D可以表示小数为double类型,虽然没有意义,但是要知道)。

小数是如此不精确,所以我们要避免使用小数,如果真的要进行严格的小数运算,可以使用BigDecimal类(同样这个后面会写)。

Java中的小数有两种表示方法,一种是正常小数,一种是科学计数法小数。都直接打就行,不用写特殊标注。关于科学计数法大家应该知道,比如3.14e2就是3.14×102=314,3.14e-2就是3.14×10-2=0.0314。

 

转载于:https://www.cnblogs.com/geministar/p/JavaNote_06.html

你可能感兴趣的文章
ul li剧中对齐
查看>>
关于 linux 的 limit 的设置
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
vim中文帮助教程
查看>>
MySQL基础3
查看>>
云计算数据与信息安全防护
查看>>
全局设置导航栏
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>