基础: 8种基本数据类型 boolean 不定 byte 1B short 2B int 4B long 8B char 2B float 4B double 8B String 不是基本数据类型属于引用数据类型 变量声明 类型 变量名 = 值 十六进制以0x开头 Float ft=5.20F long n = 100L 基本数据类型转换 自动转换:长度小的可以自动转换为大的 byte b = 10 short a = b //可以直接赋值 byte,short,char三者在计算时会转换成int 把int转换成float,long以及这些转换成double可能会精度丢失 强制类型转换:长度大的可以强制转换为小的,boolen不可以转换成其他任何类型 long n = 100L int i = (int)n 转义字符:\ \n 换行 \r 将当前位置移动到本行开头 \t 一个tab位 \\ 输出\ \' 输出' \" 输出" 键盘输入 import java.util.Scanner; char key = scanner.next().charAt(0);//接收一个字符 String s1=scanner.nextLine( ); //接收字符串 String s2=scanner.next( ); //接收字符串,但next()函数不会接收回车符和tab,或者空格键等 int in = scanner.nextInt();//接收一个int数值 double le=scanner.nextDouble( ); //接收一个double数值 float fl = scanner.nextFloat(); //接收一个float数值 scanner.close(); 逻辑运算符: 逻辑运算符:先走一遍,在判断 与&、无论左边真假,右边都要执行 或|、无论左边真假,右边都要执行。 异或^、非! 短路逻辑运算符:一但符合条件,后面的判断不走 短路与&&、如果左边为真,右边执行,如果左边为假,右边不执行。 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行 位运算符: 按位取反~ 按位与& 按位或| 按位异或^ 左移<<:a<<b 将二进制的a逐位左移b位,低位补0 右移>>:高位正数左边第一位补0,负数补1 无符号右移运算符>>>:与右移运算符的区别就是在于负数的运算。往右移,正数左边第一位补0,负数也补0 交换两个变量的值 int a=1; int b=2; 1.用第三个变量 int c=a; a=b; b=c; 2.通过表达式+-:a=a+b-(b=a) 3. a=a+b; b=a-b; a=a-b; 4.最快位运算 a=a^b; b=a^b; a=a^b; 三目运算符:又称之为三元运算符 格式:(关系表达式)?表达式1:表达式2; int c = (a>b)?a:b boolean bool = (a>b)?true:false 如果关系表达式的结果为true,运算后的结果是表达式1; 如果关系表达式的结果为false,运算后的结果是表达式2; 三目运算符表达式的结果数据类型由三目运算符表达式1和表达式2中最大的数据类型决定的,关系表达式一定只能是boolean类型 分支语句: if,else if,else略... switch语句后面的控制表达式的数据类型只能是byte、short、char、int、String和枚举类型,不能是其它类型。switch语句往往需要在case标签后紧跟一个代码块,case标签作为这个代码块的标识。如果省略了case后的代码块break,将会引入一个陷阱。 switch(expr){ case condition1{ //代码块... break; } case condition2{ //代码块... break; } dafault:{ //代码块... } } 只要进入switch语句的入口,程序会一直运行下去,直到遇到break语句,如果省略了break语句,那么匹配case值后的所有情况(包括default)都会被执行。 循环语句: while循环 基本结构 while(判断条件){ 循环体 (一条或多条语句) } 当判断条件不成立时循环结束 do-while循环 基本结构 do{ 循环体 }while(判断条件) 不管判断条件是否成立都会先执行循环体一次 for循环 基本结构 for(声明循环增量(表达式1);判断条件(表达式2);增量自增(表达式3)){ 循环体 } 表达式1可以因在外部声明而省略,表达式3可以因在内部声明而省略,表达式2不可省略。表达式可以省略,分号不能省略