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

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

作者: 苏易困 | 来源:发表于2019-01-06 18:15 被阅读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)

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

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

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/vcbsrqtx.html