Java数据类型简述(主要是对于取值范围的理解)

2019-01-06  本文已影响0人  苏易困

说在前面:

    说起来其实挺有意思的,我大学刚开始是食品专业,在大二转到了数字媒体技术专业,当初一心想做自媒体,但在大三下半学期(今年年初)又开始学习前端,实习了几个月,然后又在今年12月份因为一些原因开始学习Java,之前完全没有接触过这门语言,与之前学的前端语言其实还差挺多的,之前没有写博客的习惯,但是感觉很是很有必要的,所以我写的东西可能都是从很基本开始写,还请各位大佬嘴下留情,有错误的地方还请指出来;对于跟我一样刚入门的同学,希望能对你有帮助,如果没帮助也没关系,大家一起努力~

正文:

之前做前端这边,因为JavaScript是弱类型语言,声明方法用function,其余的变量都可以用 var 来声明,无非就是在ES6加入了let、const这几种,但它们的区别只是作用域和是否可以修改(感觉像Java的final),跟声明变量的类型没有关系,还有一个class,之前没仔细看,但学了一点Java之后感觉就是Java的类声明。

但因为Java是一种强类型语言,这意味着必须为每一种变量声明一种类型。(而且因为是强类型,所以分号不能省略,JavaScript可以)

然后又分为基本类型和引用类型。(引用类型先不赘述,先来说下几种基本类型)

Java中,一共有8中基本类型,

(1)4种整型(分别为 byte、short、int、long)

(2)2种浮点类型(分别为float、double)

(3)1种用于表示Unicode编码的字符单元的字符类型( char )

(4)1种用于表示真值的类型( boolean )

这里就出现了JavaScript和Java的区别:

JavaScript声明一个整数

var i = 1;

JavaScript声明一个小数(浮点数)

var j = 1.1;

JavaScript做加法

var sum = i + j ;

console.log(sum);    (JavaScript的打印)

打印出2.1

而Java呢?

Java声明一个整数

int i = 1; (因为声明变量是整数,所以用整型声明,这里我们选int,几个的区别我们下面说)

Java声明一个小数(浮点数)

double j = 1.1; (因为声明变量是小数,所以用浮点类型声明,这里选double,区别也是下面说)

JavaScript做加法

double sum = i + j ;    (这里为什么用double,因为我们口算出结果是小数,如果这里用int,编译器会报错)

System.out.println(sum);    (Java的输出指令)

打印出2.1

从上面可以看出来,JavaScript作为弱类型语言,都用了var来声明

而Java则每个变量你都要清清楚楚地表明它的类型,否则编译器就会报错

下面就来说下4种整型和2种浮点型的区别:

首先是整型的不同:

类型        存储需求             取值范围

byte          1字节                -128 ~ 127(-2的7次方 ~ 2的7次方-1)

short         2字节                -32768 ~ 32767(-2的15次方 ~ 2的15次方-1)

int             4字节                -2的31次方 ~ 2的31次方-1

long          8字节                -2的63次方 ~ 2的63次方-1

存储需求和取值范围的关系是什么呢?

1字节(byte) = 8位(bit)

大家都知道计算机里是用2进制来进行存储

而且第1位还要用来表示正负,所以剩下7位用于数值的存储

所以取值范围就是2的“存储所占位数-1”次方幂

选择用哪个就看你声明变量的值,如果声明变量的值超过了取值范围,就会出错

而且考虑到占用内存的问题,能用小的就用小的(主要是因为以前的计算机内存少不够用)

默认整型是int,大概20亿,一般用这个

最后是浮点型的区别

类型        存储需求                取值范围

float            4字节            有效位数为6~7位

double        8字节            有效位数为15位

有效位数其实就是可以存储几位小数

默认浮点类型是double,一般float的精度很难满足需求,所以都用double

如果想用float声明变量,得在声明的数值后面加 f 或者 F ,否则编译器会报错

例如: float i = 1.1F;

char类型

这里简单地说一下这个类型

JavaScript的单引号与双引号,除了嵌套的规则其实两者没有很大的区别

但在Java里,‘A’是指编码值为65所对应的字符常量,他与“A”不同,“A”表示的是包含一个字符A的字符串。

布尔类型(boolean)

这个就没什么大的区别了,就是用来表示逻辑条件。

其实里面还牵扯到数据类型转换的问题,因为时间原因,先整理到这儿,这篇博客主要是想记录取值范围这边的东西,因为之前记忆的时候是死记,并没有理解其中的原理什么的,根本不清楚它们之间的关系。

其实要整理的东西还挺多的,但因为要实习,所以空闲时间也不多,抽时间再更吧,谢谢大家~

上一篇下一篇

猜你喜欢

热点阅读