Java - 变量常量数据类型
标识符命名规范
可以有字母数字下划线和美元符组成, hello abc
不能以数字开头 123abc
严格区分大小写 void Void
不能是java的关键字和保留字 class
标识符必须是见名知意的
ps:在Eclipse中紫色的都是关键字
关键字
具有某个特殊含义的字符串例如class
变量
什么是变量
数据在计算机中存储需要,内存地址,数据值,以及标识符,我们未来更好的描述这种数据,所以给他取名字叫变量,
变量的三个组成,变量类型,变量名称,变量值
变量名命名规范:
1.满足标识符规则
2.符合驼峰命名法 小驼峰
3.简单,见名知意 长度没有限制
类的命名规范:
pascal规范,每个单词首字母都是大写
数据类型
数据类型分两类:
基本数据类型
引用数据类型
基本数据类型又包含:
-
数值
-
整数 (byte,short,int,long)
-
浮点 (float,double)
-
-
字符 (char)
-
布尔 (boolean)
基本数据类型说明:
类型 | 说明 | 字节数 |
---|---|---|
byte | 字节型 | 1 |
short | 短整型 | 2 |
int | 整型 | 4 |
long | 长整型 | 8 |
float | 浮点数 | 4 |
double | 双精度浮点 | 8 |
char | 字符 | 2 |
boolean | 布尔 | 1 |
字面值
java表示整数字面值
八进制:0开头 包括0-7
例如:037,056
十六进制:0x(小写或大写均可)开头,包括0-9,以及字母a-f,A_F
如:0x12,0xBF
浮点字面值
双进度浮点数
123.1d , 1.1D
单精度浮点
1.1f 1.2F
后缀就是名字的首字母
注意:
当小数后面没有任何字母时默认为double类型
在java中 较小的类型可以转换为较大的类型,较大的类型不可以直接转换为较小的类型,会造成数据丢失
使用科学计数法表示浮点型数据
double d = 1.23e5; //表示1.23 乘以 10的5次方 小数点向后5位
float d1 = 1.23e5f; //表示1.23 乘以 10的5次方 float类型
// 省略整数部分 就是 0.x
double d2 = .2;
float d3 = .2f;
System.out.println(d1);
字符型字面值
使用大单引号定义一个字符变量
char a = 'A'
char ch = 65;
可以使用整型作为值,会自动转换为ASC对应的字符
整型和字符型可以使用ASC相互转换
注意:当字符的链接操作中都是整数或是字符时,字符会被转为整数
System.out.println('\t'+'a');
System.out.println('\t'+"a");
布尔类型字面值
true / flase
字符串字面值
使用双引号包裹的0或多个字符(可以是unicode字符)
String a = ""; //空字符
String a = "abc";
变量声明
变量类型 变量名 = 变量值;
例如:
int a = 3;
3称之为初值
给变量初值的过程称之为初始化
基本数据类型变量的存储
按照作用范围可分为4类:
- 类级别
- 实例级别
- 方法级别 也称之为局部变量
- 块级别
内存分区:
int a = 100;
1.栈中开辟4字节空间
2.将值100存储到内存区域中
3.将内存区域的地址与变量名a绑定
a 就代表 这块区域中的数据,数据可能会发生变化,所以称之为变量(会变的数据)
Unicode编码
万国码,统一码,支持世界上所有的字符
在字符前面添加\u作为前缀,表示unicode编码
char c = '\u005d'
转义字符
类型转换
自动类型转换(隐式类型转换)
数据范围小的可以自动转为范围大的同类型
实线表示转换过程不会丢失数据
虚线表示转换过程可能丢失数据
强制类型转换
小变大 隐式转换无丢失 short -> int
大变小 强制转换会丢失 int -> short
一样大 隐式强制都可能丢失 例如 float -> int
语法:
double a = 1.1;
float b = (double)a;
常量
在变量定义的前面加上final 关键字 ,就是常量
常量是值不能发生变化的量,一旦赋值,后续不能修改
final int n = 100;
n = 1; //报错
final PAI = 3.1415926;
命名规范,全大写,单词之间用下划线链接