第二章 数据类型和运算符(从2.6开始)
1.基本数据类型
java默认整型为int,默认浮点型为double
2.转义字符
1. \'——单引号
2.\t——制表符
3.\n——换行
3.二元运算符的运算规则:
整数运算:
1. 如果两个操作数有一个为Long, 则结果也为long。
2. 没有long时,结果为int。即使操作数全为short,byte,结果也是int。
浮点运算:
3. 如果两个操作数有一个为double,则结果为double。
4. 只有两个操作数都是float,则结果才为float。
取模运算:
5.其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操作数相同。
如:7%3=1,-7%3=-1,7%-3=1。
4.逻辑运算符
逻辑与:&;逻辑或:|;短路与:&&;短路或:||
短路与&&和短路或||采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。
5.自动类型转换
6.类型转换的常见问题
int money = 1000000000; //10亿
int years = 20;
//返回的total是负数,超过了int的范围
int total = money*years;
System.out.println("total="+total);
//返回的total仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生//了数据丢失
long total1 = money*years;
System.out.println("total1="+total1);
//返回的total2正确:先将一个因子变成long,整个表达式发生提升。全部用long来计算。
long total2 = money*((long)years);
System.out.println("total2="+total2);
7.键盘输入和输出
import java.util.Scanner;
/**
* 测试获得键盘输入
* @author jywang
*
*/
public class TestScanner {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入名字:");
String name = scanner.nextLine();
System.out.println("请输入你的爱好:");
String favor = scanner.nextLine();
System.out.println("请输入你的年龄:");
int age = scanner.nextInt();
System.out.println("###############");
System.out.println(name);
System.out.println(favor);
System.out.println("来到地球的天数:"+age*365);
System.out.println("离开地球的天数:"+(72-age)*365);
}
}