标识符
概念:用于区分使用的符号或字符。
如:类名,方法名,变量名,接口名,枚举名,注解名,常量名,属性名,包名等
标识符的命名一般要遵守以下规则:
- 标识符是自定义的。
- 标识符中不能含有特殊字符,_和$除外,如果* …… ¥空格等特殊符号不能出现在标识符中。
- 不能使用数字开头。
- 不能使用关键字或保留字(关键字为java中含有特殊含义的单词,如:class int for while等,保留字为java开发者在编写java之初认为某个字可能会有特殊含义,所以将其设为关键字,但该类关键字没有特殊含义,所以称为保留字,如go)。
- 不建议使用中文。
- 见名知意。
除了以上硬性要求之外,在命名标识符时还需遵守以下几种规范。
- 大驼峰命名法:标识符中的所有单词首字母大写,如HelloWorld,StringBuffer,StringBuilder。一般用于类名、接口名、枚举名、注解名。
- 小驼峰命名法:标志符中第一个单词的首字母小写,其余单词首字母大写,如:helloWorld、personName、maxNum。一般用于变量名、属性名、方法名。
- 全大写:所有字母大写,不过由于全大写字母拼接在一起不利于阅读,所以一般在多个单词之间用下划线_链接。如:PATH,CLASS_HOME,一般用于常量。
- 全小写:所有字母小写。一般用于包名。如:com.tencent.mm(微信的包名)
数据类型
在java中,数据类型共分为两个大类:基本数据类型和引用数据类型
基本数据类型
整数:
byte类型,又称字节,其大小为1个字节,取值范围是-2^7~2^7-1.
short类型,又称短整型,其大小为2个字节,取值范围是-2^15~2^15-1.
int类型,又称整型,其大小为4个字节,取值范围是-2^31~2^31-1.int类型是java中整数的默认类型,也是java中使用最多的整数数据类型.在不指定数据类型时,输入的整数默认为int类型.
long类型,又称长整型,其大小为8个字节,取值范围是-2^63~2^63-1.在java中想要书写一个long类型的数字,需要在数值的末尾加l或L,如:32为int类型,但是32l和32L都是long类型.
浮点数:
float类型,单精度浮点型,大小为4个字节,取值范围是-2^31~2^31-1,想要得到一个float类型是数值,需要在数值后面加f或F.如:2.5为double类型,2.5f和2.5F为float类型.
double类型,双精度浮点型,大小为8个字节,取值范围是-2^63~2^63-1,都浮点数默认的数据类型是double类型.
布尔型:
boolean类型,只有两个值:true|false.
字符型:
char类型,大小为2个字节,取值范围是从0~2^16-1声明char类型的数据的时候,使用单引号声明。并且单引号里面只能放一个元素.
引用数据类型
所有类的对象都是引用数据类型,如:String Random等.
变量
变量一般用于临时记录一个值.
变量的声明:
语法:
数据类型 变量名;
如,定义一个变量用来存储人的年龄:
int age;
注意:在同一个作用域中,变量的变量名不能一致,且同一个作用域中,一个变量只需要声明一次。
变量的赋值:
语法:
变量名 = 值;
如:用变量age来存储数值。
int age;
age = 18;
变量的第一次赋值成为变量的初始化,变量可以多次赋值,每次赋值都会修改变量记录的值,最终变量记录的值为最后一次赋的值。
同时,变量的声明和赋值可以同时进行
int age = 18;
age = 21;
age = 20;
//上述代码执行完毕之后,变量age记录的值为20。
注意:赋值时等号两边的数据类型必须一致(基本数据类型的类型转化除外),String str; str = 10;就是错误的。
变量的使用:
在需要使用值的时候直接使用变量代替值即可,如:
public class Test {
public static void main(String[] args) {
String str = "此字符串是变量str记录的值";
System.out.println(str);
}
}
其输出结果为:
由此可见,变量str是代替字符串 "此字符串是变量str记录的值" 参与了代码的运行。
基本数据类型转换
强制转换
在java中,大类型的数据赋值给小类型的变量,是不可以自动转换的,需要强转。
语法:小数据类型 变量名 = (小数据类型)大数据;
以将int类型的数据复制给byte类型的变量来举例。由于byte类型的数据大小为1字节,其取值范围是-128~127.而int类型的数据取值范围是-2^31~2^31-1,所以int类型的数据是有一定可能性超出byte取值范围的。所以int类型转换为byte类型有一定的风险。因此java不会自动转换,就需要我们确定在无风险的情况下进行强制转换。
int i = 128;
byte b = (byte)i;
//由于i的值是128,强行赋值给了b,超出了b的取值范围。所以b的值在输出到控制台上并不是我们预期的128
强制转换有风险,一定要确认大类型的数据在小类型的取值范围之内。
自动转换
在java中,小类型的数据赋值给大类型的变量,是可以自动转换的。
语法:大数据类型 变量名 = 小数据类型数据;
以byte和int为例,byte的取值范围一定是在int取值范围之内的。所以无需强制转换,直接使用我们最直接的赋值语法即可。