基础:
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不可省略。表达式可以省略,分号不能省略