Java变量常量的数据类型及各种类型书写语法规则
⼀. Java数据类型概览
⼆. Java中⼋⼤基本数据类型
三. Java中⼋⼤基本数据类型的转换
(1)boolean不可以转换为其他的数据类型;
(2)整数型,浮点类型,字符型是可以相互转换的,转换时遵守下⾯的原则:
a) 容量⼩的类型⾃动转换为⼤的类型,数据类型按容量⼤⼩排序为:
byte, short, char < int < long <float < double
b) byte, short, char 三种类型间不会相互转换,他们三者在计算时,⾸先会转换为int类型;
c) 容量⼤的类型在转换为⼩的类型的时候,必须加上强制转换符,此时可能造成精度降低或者溢出问题;
d) 有多种数据类型混合计算的时候,系统⾸先⾃动转换为容量最⼤的那个类型再来继续计算;
e) 默认的浮点数类型是double,如:1.2; 默认的整数类型是int类型,如:1;
四. 关于字符串问题
记得我上学那会,还把String类型当做⼀个基本数据类型,现在想想真是可笑! String是java.lang.String包下的⼀个类,也就是引⽤类型中的类类型(说⽩了它就是⼀个类),
在Java中java.lang.* 下的所有包都是⾃动引⼊的,所以同学们可要注意了!
五、java变量常量数据类型及各种类型书写语法规则
变量
常量
数据类型
各种类型书写语法规则
java数据类型有哪些?(建议背,出去笔试⾯试⼏乎必考)
原⽣数据类型(4类8种)
引⽤数据类型
java的数据类型=原⽣+引⽤
原⽣类型(primitive),也被称为基础类型
引⽤类型(reference),也被称为对象类型
为什么要分为两⼤类:
两种数据类型的数据在内存中的存储⽅式不同,我们的内存分为堆栈,原⽣类型它在栈中,⽽我们的引⽤类型它在堆和栈⾥⾯都有,开辟空间要通过new关键字来开辟空间,所以说原⽣类型和引⽤类型它们开辟的内存空间是不⼀样的。
原⽣类型细分(4类⼋种):
类型内容
整数型 byte、short、int、long
布尔类 boolean
浮点数类 float、double
字符类 char
整数类:
类型 所占2进制位 表⽰数据范围 备注
byte 8 -2^7 ~ 2^7-1 -128~127
short 16 -2^15 ~ 2^15-1 -32768~32767
int 32 -2^31 ~ 2^31-1 -2147483648 ~2147483647
long 64 -2^63 ~ 2^63-1 这个值也想看你在和我开玩笑
浮点类型:
类型 所占2进制 表⽰数据范围 备注
float 32 1.4E-45 ~ 3.4E38 单精度
double 64 4.94E-324 ~ 1.79E308 双精度
布尔类:取值范围就两个值:true false
字符类:就⼀种:char
类型 所占2进制位 表⽰数据范围
char 16(⽆符号位) 0~65535
引⽤类型:
除去8种原⽣类型,其他类型都属于引⽤类型。我们常⽤的字符串String和我们经常使⽤的数组Array都是引⽤数据类型。我们所有的类,接⼝,数组这些都是属于引⽤数据类型。
六. 什么是变量和常量?
我们可以形象的说变量和常量就相当于存放数据的盒⼦(容器)。
变量中盒⼦的数据值是可变,声明后可以多次赋值,⽽常量与变量不同的则是它的值⼀旦被声明赋值后续不能再次赋值,是不可变的。我们在声明的时候,相当于创建⼀个盒⼦,然后把值放⼊到这个盒⼦⾥进⾏赋值。
例如:我们的⾝份证号码它就是常量,我们的员⼯编号,年龄就是个变量。
变量是怎么进⾏声明赋值的?
数据类型 变量名称 赋值
byte a 1
int b 2
int c b
… … …
声明+赋值:数据类型 变量名=值(或同类型的变量)
由上可以得到:
byte a = 1;
int b = 2;
int c =b;
相当于,我给byte类型的a赋值为1,int 类型的b赋值为2,int类型的c 赋值为b。int b = 2;int c =b;这句话⼜可以堪称我们创建⼀个int类型的容器为c,把int b的值放进c容器⾥⾯,所以int c =2;
常量是怎么进⾏声明赋值的?
说到常量,我们这⾥就要认识⼀个关键字final,final关键字就限制了这个变量是不可变的,也就是我们的常量。
常量的定义=final+【变量的定义】
final 数据类型 变量名称 = 值(或同类型的变量)
⽰例如下:
final byte a = 10; 常量
final int b = 20; 常量
final int c =30; 常量
i=40;(错误,常量不能被再次赋值)
变量和常量的区别解析:
变量可以多次赋值,常量只能赋值1次;
由于常量是不可变的,所以我们在写程序的时候,多定义常量可以提⾼程序的运⾏效率。
七. 各种整数类型的书写语法:
int 直接书写,即为int型int i = 100;
long 后⾯要加后缀L或者l(为了区别视觉歧义建议⼤写)long i = 100L;
byte 和 short ⽆法直接表⽰,我们可以通过前⾯所讲的表⽰范围,可以看出byte和short表⽰范围内的数,我们都可以赋值给int和long,所以它是⽆法直接表⽰的。
我们需要注意的就是long类型后⾯需要加后缀L
结合前⾯博⽂补充个知识点:不同进制的表⽰,不明⽩的可以点下连接跳转下:进制转换
整数int 类型127在不同进制下的表⽰:
2进制 int a = 0b01111111;
8进制 int b = 0377;
10进制 int c = 127;
16进制 int d = 0x7F;
【16进制下的字母不区分⼤⼩写】
整数long类型127在不同进制下的表⽰:
2进制 int a = 0b01111111L;
8进制 int b = 0377L;
10进制 int c = 127L;
16进制 int d = 0x7FL;
浮点类型的书写语法:(只能使⽤⼗进制)
float (必须加后缀F或f,推荐F)
float f = 100F;
float f = 3.14F;
double(后缀D或d,推荐D)
double a = 100D
double a = 3.14;//⼩数默认为double类型,后⾯可不加
double a = 3.14D;
说到浮点类型我们就要讲到浮点数的科学计数法表⽰,科学计数法知识补充:科学计数法百科
E4(相当于乘以10的4次⽅)
java变量的数据类型分为两种
float类型31415.926F
3.1415926E4F或3.1415926e4F
double类型31415.926
3.1415926E4或3.1415926e4
3.1415926E4D或3.1415926e4D
以上作为兴趣仅作了解,如果想深⼊可以⾃⾏去研究⼀下。