1标识符和关键字
1.1标识符
定义:Java对各种变量、方法和类等要素命名时使用的字符序列成为标识符。
命名规则:
1)标识符由字母、数字、下划线“-”、美元符号“$”组成,并且首字符不能为数字。
2)不能把Java关键字作为标识符。
3)标识符无长度限制。
4)标识符对大小写敏感。
命名规范(驼峰命名法):
1)变量和方法名:要求第一个单次应以小写字母开头,后面的每个单词以大写字母开头。如stuAge、sendMassage。
2)类名:第一个单词首字母需大写,其余与(1)同。若类名中包含单词缩写,则缩写的每个字母均应大写。如XMLModule。
3)常量标识符:应使用大写字母并指出该常量完整的含义。如一常量由多个单词组成,则应用下划线来分隔这些单词。如MAX_VALUE。
1.2关键字
关键字不能用作变量名、方法名、类名、包名。
Java的关键字都是小写的英文字符串。
goto标识符随从不使用,但也作为保留字保留。
2 变量和常量
2.1 变量
定义:变量是一段有名字的连续存储空间(存储在计算机内存中)。在Java代码中通过定义变量来申请并命名这样的存储空间,通过变量名来使用这段存储空间。变量时程序中数据的临时存放场所。
声明格式:
变量类型 变量名 【= 变量值】 ;
即type varName [ = value ] ;
对内存而言,“type varName”是声明变量,相当于根据数据类型向内存申请一块空间,而“=value”相当于把变量值放到这个内存空间中。例:
int stuAge=22; 可以拆分成int stuAge和stuAge=22两条语句,其中int stuAge相当于向内存申请一块可以存储int型变量的空间(实际为4个字节,32位),而stuAge=22相当于把22这个数字放到这块内存空间中。
注:在使用变量时,要避免出现未赋值就使用的情况,应做到变量先赋值后使用。
2.2 常量
在Java中,利用final关键字来定义Java常量,其本质为值不可变的常量。所以在声明时,就必须进行初始化。和变量不同的是,Java常量在程序中将无法再次进行赋值。
3 Java数据类型
Java数据类型分两大类:基本数据类型、引用数据类型。
注意:String不属于基本类型,是引用类型。引用类型(对象)才会有属性和方法。
Java基本数据类型说明:
3.1 基本数据类型
1.基本数据类型有整数类型、浮点类型、字符型、布尔型。
2.基本数据类型转换
boolean类型不可以和其他数据类型互相转换。
(1)自动转换(隐式转换)
自动类型转总是安全的
转换遵循的原则:
●容量小的类型自动转换成容量大的类型。
●byte、short、char之间不会相互转换,三者在计算时首先转换成int类型。
●有多种类型数据混合运算时,系统先自动转换成容量最大的数据类型,然后再计算。
(2)强制转换(显式转换)
强制类型转换是不安全的,数据精度可能会受到影响
容量大的数据类型转换成小的数据类型时,需要加上强制转换符,但可能造成精度降低或溢出。
3.1.1 整型
Java语言的整数常量默认为int型,声明long型的整型常量需要在常量后加“l”或者“L”
Java语言设计出4种整型类型的目的是存不同大小的数,这样可以节约存储空间。
1)byte(1个字节,8位)
2)short(2个字节,16位)
3)int(4个字节,32位)
4)long(8个字节,64位)
3.1.2 浮点型
Java语言的浮点型常量默认为double型,声明一个float型常量需在常量后加“f”或者“F”。
1)float(4个字节,32位)
2)double(8个字节,64位)
3.1.3 字符型
字符常量为用单引号括起来的单个字符。Java中字符型变量可以存放一个汉字(因为Java使用Unicode编码,一个Unicode编码占2个字节,一个汉字也是占2个字节)。
char(2个字节,16位)
3.1.4 布尔型
boolean类型只允许取值true或false。适用于逻辑运算,一般用于程序流程控制。
3.2引用类型
引用类型(类、接口、数组即使是基本类型的数组也是引用类型)。在Java中任何一种基本类型(值类型)都有一个相对应的类进行封装;这点后面会讲到现在先了解即可。
值类型 –-> 引用类型(包装类型)
int java.lang.Integer类
short java.lang.Short类
byte java.lang.Byte类
long java.lang.Long类
char java.lang.Character类
float java.lang.Float类
double java.lang.Double类
boolean java.lang.Boolean类
3.3成员变量和局部变量
根据变量声明位置的不同,可将变量分为成员变量和局部变量。
3.2.1成员变量
成员变量在类的内部、方法外部定义的变量,其作用域从变量定义位置起到类结束。
3.2.2局部变量
局部变量是在方法内部定义的变量(包括形参),其作用域从变量定义位置起到方法结束。
注:
● 方法中的局部变量可以和成员变量同名。
● 声明成员变量可不赋初始值,有默认的初始值(整型为0、浮点型为0.0、字符型为’\u0000’、布尔型为false),但声明局部变量必须赋初始值。
● 如果在局部变量所在的方法体内使用变量,则局部变量覆盖成员变量,输出的是局部变量的值;如果在局部变量所在的方法体外使用变量,则输出的是成员变量的值。
package Example0306;
/**
* File:
* Author:@LJade
* Time: 2021/2/19.
*/
public class Test
{
int i=9; //成员变量
public void show(){
int i=10; //局部变量
System.out.println("i="+i); //输出局部变量的值
}
public static void main(String args[]) {
Test test=new Test(); //实例化对象
test.show(); //调用show()方法
System.out.println("i="+test.i); //输出成员变量的值
}
}
运行结果:
4 Java运算符
1.赋值运算符: =, *=, /=, +=, -=
2.算术运算符:+, -, *, / (取整), % (取余数)
3.关系运算符:>,<,,<=,>=,!=。其运算结果是boolean值。
4.逻辑运算符: &, &&, |, ||, ! (求反)。用来连接多个关系运算符表达式。
boolean bln = (12 & 1<2);
5.条件运算符:expression ? value1 : value2;
6.位运算符:>>>(无符号右移),<<(左移), &(与), |(或) 如果用于数值运算则为位运算
4.1算数运算符
(1)单目运算符:+(取正)、-(取负)、++(自增1)、–(自减1)。
(2)双目运算符:+、-、*、/、%(取余)。
(3)三目运算符:(表达式1) ? (表达式2) : (表达式3)。
4.2逻辑运算符
逻辑运算符: &, &&, |, ||, ! (求反)。
(重要, 面试题) &与&&的区别:
a) & 和 && 都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
b) && 还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,& 还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。
4.3 Java表达式的运算顺序
(1) 先执行算数运算(+, -, *, /, %)
(2) 然后执行关系运算(>, <, …)
(3) 然后执行逻辑运算(&, &&, |, ||, !)
(4) 最后执行赋值运算