java变量常量数据类型及各种类型书写语法规则

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 赋值为bint 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次;
  • 由于常量是不可变的,所以我们在写程序的时候,多定义常量可以提高程序的运行效率。
public class Test{
public static void main(String [] args){
	//变量
	int i =1;
	//常量
	final int j =2;
	//i 重新赋值
	i=3;
	System.out.print(i);
	System.out.print(j);
	}
}

控制RunAs输出的结果为

3	2

(常量如果再次赋值,会报错)
我们可以看出变量在后续再次赋值,值的信息会发生变量。当然这里也有作用域相关的知识,这里可以看后续关于成员变量和局部变量的博文。


各种整数类型的书写语法:

  • 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次方)

float类型31415.926F
3.1415926E4F或3.1415926e4F
double类型31415.926
3.1415926E4或3.1415926e4
3.1415926E4D或3.1415926e4D

以上作为兴趣仅作了解,如果想深入可以自行去研究一下。

本文后跟博文链接:java数据类型转换

你可能感兴趣的:(javaSE)