(1)变量的使用
- 定义变量格式:数据类型 变量名=变量值;
- 说明:变量必须先声明,后使用。
变量都定义在其作用域内,出了作用域就失效了。
在同一作用域内,不可以声明两个同名的变量。
注意:实例变量不用初始化就可以使用,局部变量必须初始化。
(2)数据类型
①基本数据类型:数值型:整数型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
②引用数据类型:类(class,String类型在这里面)、接口(interface)、数组([])
注意:Java的浮点型常量默认为double型、因此声明float型常量时,须在后面加‘f’或‘F’。
字符型char(1字符=2字节),定义char型变量,通常使用一对' ',内部有且必须有一个字符。
(2)基本数据类型间的转换
基本数据类型之间的运算规则(不包含boolean)包括自动类型提升、强制类型转换
1、自动类型提升:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
容量排序:byte、short、char-->int-->long-->float-->double
特别的:当byte、short、char三种类型的变量做运算时,结果为int型。
2、强制类型转换:可以理解为自动类型提升运算的逆运算,比如将容量高的数据类型赋值给容量低的数据类型的变量。需要使用强转符号()。强制类型转换,可能会导致精度损失。
几个规则:①整数默认为int型,例如 long l=121,此时没在数字后加L来表明是long型的,默认l为int型。
例如下面的语句,编译会出现错误,因为整数1默认为int型,byte型的变量b与int型变量做运算,由于自动类型提升结果为int型,不能赋值给byte型变量b1,需要进行强转。
byte b=12;
byte b1=b+1
②浮点数默认为double型,因此强调float型变量后必须加F。
③如果参与运算的两个都是变量,则按照自动类型转换规则处理成一致的类型;如果都是常量:
如果一个是char,另一个是其他,照自动转换类型规则处理成一致类型,例如下面的第一条输出语句 ;
如果一个是char,另一个是[0~65535]之间的整数,则结果按char处理,例如下面的第二条输出语句
public static void main(String[] args){
char x='x';
int i=10;
System.out.println(true?x:i);//输出120(x的ASCII码)
System.out.println(true?'x':10);//输出x
}
这些数据类型均不能转换为boolean型,如下面的代码,编译将不通过,因为if语句是boolean型的,int型不能转换为boolean型。
int a=3;
int b=1;
if(a==b){
System.out.println(a);
}
需要时刻注意运算时的自动类型转换问题。
(3)基本数据类型与String间的运算
1、String类型变量的使用
①String属于引用型数据类型,属于一个类,翻译为字符串
②声明String类型变量时,使用一对“ ”
③String可以和8种基本数据类型做运算,且只能是连接运算
④运算结果仍然是String类型
⑤判断字符串是否相等,用equals( )功能调用,例如:result=“abc”;guess="efg",比较时写为result.equals(guess);
例如下面的代码
char c='a';//ASCII码为97 int num=10; String str="hello"; System.out.println(c+num+str);//107hello System.out.println(c+str+num);//ahello10 System.out.println(c+(num+str));//a10hello