标识符和关键字
标识符
Java对各种变量、方法、类和包等要素命名的名称为标识符。
标识符的命名规则
- 标识符的命名可以由字母、数字、下划线 _ 、美元符号 $ 组成,但是不能以数字开头
- 标识符的命名严格区分大小写
- 标识符不能以Java的关键字和保留字命名
- 标识符的命名最好可以反映其作用,例如:name(姓名)、stuAge(学生年龄)
关键字
关键字是用来表示一种数据类型或者表示程序的结构,不能用作变量名、方法名、类名、包名。
关键字非常多,需要通过学习的进度,慢慢去掌握。
变量和常量
变量
变量的三要素:变量类型、变量名、变量值
例如:我们去外地旅游需要住酒店,酒店有不同的房间,每个房间有不同的房间号
变量的命名规则
①满足标识符的命名规则
②符合驼峰命名规则(一个单词可以使用小写表示,多个单词首字母大写)
例如:年龄 age 学生姓名 stuName
③尽量简单,做到见名知意
④变量名的长度没有限制
常量
- 在Java语言中,利用final关键字来定义常量,其本质就是值不可再更改的变量。
- 常量在声明的时候,要么直接赋值,要么通过构造方法赋值
- 常量在程序中将无法再次赋值,如果强行赋值,程序将会抛出错误信息,并拒绝接收新值
- 常量命名时,名称建议全大写
例如: final double PI = 3.14159;
数据类型和字面值
数据类型
数据类型分为基本数据类型和引用数据类型。
基本数据类型的表示范围
基本数据类型的表示范围如下:(转自慕课网)
字面值
(1)整型字面值——>Java中表示整数的方法:二进制、八进制、十进制、十六进制
二进制:以0和1组成 3表示为011 8表示为1000
八进制:以0开头,包括0——7的数字
十六进制:以0x开头或0X开头,包括0——9的数字,及字母a——f,A——F
(2)浮点型字面值
- 浮点型字面值默认情况下是double类型(双精度浮点型字面值),也可以在值后面加d或D
- 如:123.45、123.45d、123.45D
- 如果表示float类型(单精度浮点型字面值),则需要在字面值后面加f或F
- 如:23.4f、23.4F
(3)字符型字面值
- 字符型字面值用单引号内的单个字符表示
- 如:‘a’、‘b’、‘$’
如何定义字符型变量?
char a = 'a'; //输出结果为:a=a
char b = 65 //输出结果为:b=A
字符型变量为什么可以赋值整数呢?
整数代表的是ASCII码(美国标准信息交换码),而65在ASCII码中表示为‘A’
拓展:Unicode编码
char c = '\u005d'; //005d表示16进制
Unicode表示法,在前面加前缀\u
(4)布尔类型字面值
布尔类型只能定义为true和false
例如: boolean flag = true;
(5)字符串字面值
- 双引号引起来的0个或多个字符
- 0字符称为空字符串
变量综合案例
//变量综合案例
public class VarDemo {
public static void main(String [] args){
//定义两个整型变量
int a,b;
//直接将变量输出会报错:The local variable a may not have been initialized
//注意:变量在声明的时候如果没有进行赋值是不可以直接输出的
//System.out.println("a="+a+",b="+b);
a = 3;
b = 5;//对两个变量进行赋值(变量的初始化)
System.out.println("a="+a);
System.out.println("b="+b);
//关于换行的问题
//如果不想换行,想在同一行输出,可以不加ln
System.out.print("a="+a);
System.out.print("b="+b);
//换行也可以使用换行符来完成换行 换行符 \n
System.out.print("a="+a+"\n"+"b="+b);
//定义一个汉字的字符
char ch = '中';
System.out.println("ch="+ch);
//char 中文 = '中';变量名也可以是中文但是不建议使用该方式
//定义浮点型数据
double d1 = 123;//浮点型可以赋值整数
//double类型的变量值可以加d或D,也可以不加
double d2 = 123.45;
double d3 = 123.45d;
double d4 = 123.45D;
//float f = 123.45;float类型的变量值如果是小数后必须加f或F,因为小数默认情况下是double类型
float f1 = 123;
float f2 = 123.45f;
float f3 = 123.45F;
//科学计数法表示浮点型数据
double num1 = 1.23e5;//表示1.23*10^5 , 可以使用e或E表示
double num2 = .2;//表示0.2
double num3 = 1.23e-5;//表示1.23*10^-5
}
}
数据类型转换
数据类型转换分为自动类型转换和强制类型转换。
自动类型转换
自动类型转换又称为隐式类型转换。
转换顺序:
强制类型转换
如果A类型的数据表示范围比B类型数据表示范围大,则将A类型的值赋值给B类型,需要进行强制类型转换。
如:
double d = 123.4;
float f = (float)d;
强制类型转换的格式:(数据类型)数值
类型转换案例
//类型转换案例
public class TypeExchange {
public static void main(String [] args){
//char类型和int类型之间的转换
//char ch = 65536;char类型的范围是0——65535,如果将65536赋值给ch会超出范围,需要进行强制类型转换
char ch = (char)65536;
//该类型转换方式为自动类型转换(隐式类型转换)
int n = ch;//int类型的数据表示范围比char类型的数据表示范围大,可以直接将ch赋值给n
//整型和浮点型之间的转换
int x = 100;
long y = x;//int类型的表示范围小于long类型,可以直接将x赋值给y
x =(int)y;//long类型的表示范围大于int类型,赋值需要进行强制类型转换
float f = 1000000000L;//long类型表示范围小于float类型,可以直接将long类型的数据赋值给f
System.out.println("f="+f);//结果为1.0E9
float f2 = 115616684646163L;
System.out.println("f2="+f2);//结果为1.15616686E14
//原数据发生了精度丢失,数据类型转换数据图上可以知道,虚线表示类型转换时可能会发生精度丢失情况。
}
}
运算符
表达式
表达式由运算符和操作数组成。
表达式有什么表示形式?
① 5(一个常量,不管是整数还是浮点数,都为一个表达式)
② num(单独一个变量也是一个表达式)
③ num1+num2(常见的表达式,两个或多个数进行计算)
运算符
- 算术运算符:+、-、*、/、%、++、--
- 关系运算符:>、<、>=、<=、==、!=
- 赋值运算符:=、+=、-=、*=、/=
- 逻辑运算符:!、&&、||
- 位运算符:~、&、|、^、>>、<<、>>>(无符号右移)