说在前面:
说起来其实挺有意思的,我大学刚开始是食品专业,在大二转到了数字媒体技术专业,当初一心想做自媒体,但在大三下半学期(今年年初)又开始学习前端,实习了几个月,然后又在今年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)
这个就没什么大的区别了,就是用来表示逻辑条件。
其实里面还牵扯到数据类型转换的问题,因为时间原因,先整理到这儿,这篇博客主要是想记录取值范围这边的东西,因为之前记忆的时候是死记,并没有理解其中的原理什么的,根本不清楚它们之间的关系。
其实要整理的东西还挺多的,但因为要实习,所以空闲时间也不多,抽时间再更吧,谢谢大家~