本文共 2094 字,大约阅读时间需要 6 分钟。
java好学吗?no!java很难吗?no! 鲁迅曾经说过一句话,世界上本身就没有路,人走的多了便成了路。一样的道理,世界上本来就没有容易的东西,只有你去理解了它才变得熟能生巧以至于存在你深刻的记忆之中。我和你都是一步一步的努力往上走的,大家为了未来的程序之路稳而健,底层的核心知识一定要打好。好了,废话不多说,从此刻开始,奋斗吧!!!?
首先我们知道java是一门强类型的语言,js是弱类型的语言,强类型和弱类型的对比最简单的就是:java有八种数据类型而js只有var类型。也就是说,java在声明变量的类型的时候是相对于js声明var类型更加准确,var类型在定义变量的时候是系统自动去判断变量被赋于的值才赋予类型,当然操作都是计算机自己来处理的,所以一旦代码量大,js中容易出现很多问题;而java一开始就声明了准确的数据类型,所以在程序的运行过程中没有那么多的问题出现。
一、整型类
整型 | 存储需求 | 取值范围 |
int | 4字节 | -2 147483648~2 147483647(-2^31~2^32-1) |
short | 2字节 | -32768~32767(-2^15~2^15-1) |
long | 8字节 | -9 223372036854775808~9 223372036854775807(-2^63~2^63-1) |
byte | 1字节 | -128~127(-2^7~2^7-1) |
由上表可以看的出int类型完完全全够表示中国人口数了对吧,long类型是超级超级大的一个基本类型,这时候很多人就会问:为什么long类型这么大了,我可以用它来处理很多数据了,还需要其他类型的存在呢?很简单,首先我们的计算机内存不是无限大的,再怎么大的内存它也是有限的,这就说明了我们在进行内存的分配的时候也都还是有限的,我们程序所占的内存永远都不能大于计算机内存,如果你计算的数只有1-100之间,如果用long类型完完全全就是一种内存资源浪费。所以为了防止资源浪费,我们应该在使用数据类型之前就得估计值的大小,这样我们就避免了内存资源浪费的情况发生。
这里还需要注意的是,我们定义长整型数值后缀有着一个L或l,十六进制有一个前缀0x或者0X,二进制是0b或者0B
long a = 6254l;//后缀l或者Llong b = 0xADFEL;//十六进制long c = 0b1001L;//二进制
二、浮点类
类型 | 存储需求 | 取值范围 |
float | 4字节 | 约 -3.40282347E+38F~3.40282347E+38F(有效位数6~7位) |
double | 8字节 | 约 +(-)1.79769313486231570E+308(有效位数15位) |
一般来说double的数值精度是float类型的两倍,float被称为单精度数值,double被称为双精度数值。因为一般float类型精度很难满足需求,所以程序员大多数都是用double来构建数据类型。这里说明一下取值范围,拿float和int来说,为什么同样是四个字节,int比float描述的数据更加的精确是因为int用31位去描述数值,float只有23位,如图所示
1 位符号位 | 31位数值位 |
1位符号位 | 8位阶码位 | 23位数值位 |
不难看出int比float的数值位高出8位,也就是说int较精确的数值表示,而float的精度远远不够它。double也是如此,所以说在数值类型的转换过程中会丢失精度,int和float都可以被double给吸收,但是如果是double和int转换给float就会丢失精度,导致数值被“约等于化”。我们都希望数值是被精确的,输入和输出和预想的结果基本类似,后期会引入一个概念叫大数值——BigInger,它可以表示任何数值的精度,也就是说超过long类型也可以表示的出来,这是运用了一些数学和模型来实现的。
同时,这里稍作补充,众所周知float类型有效位数是6-7位,这个是什么意思呢?就是底数为10的有效位数6-7位,而不是二进制的位数,很多人都以为是2进制,只能说在考虑有效位数的时候只想到了字节位数的转换,这个是不正确的。这个有效位数就是科学记数法10为底的合理数计算。
三、char类
char类型的字面量值要用单引号括起来。例如:'A'代表ASCII码中的十进制65所对应的字符常量。(注意,"A"和'A'不同,"A"是包含一个字符A的字符串.)。Unicode字符则需要两个char值。Unicode的介绍请点击。同时一般都说char类型的代表Unicode码也是很常见的。
四、boolean类
boolean类型是用来判断的,有两个值:false和true。同时整型值和布尔值之间不能够相互转换。java中boolean值不能够用1来表示true,但是c++可以,这是java和别的语言不同的原因,大家务必记住。
以上就是java八大基本数据类型介绍,谢谢大家❤
转载地址:http://tjtrn.baihongyu.com/