####复习
一、关键字,保留字,标识符
// 1.只能用下划线英文字母$开头
// 2.不能有空格
// 3.其他字符可以是英文,数字,_和$
// 4.不能用关键字和保留字
// 二、变量
// 数据类型:基本数据类型(整数,浮点型,字符型,布尔型)引用数据类型;
####
进制及转义符
//1.进制(二进制,八进制,十进制,十六进制);
// 二进制十进制转化
//2 65 1
//2 32 0
//2 16 0
//2 8 0
//2 4 0
//2 2 0
// 1
// 十六进制(0x开头): 0-F
// (0~9,A~F)
// 0x121F 1*16^3+2*16^2+1*16+15=4639
// 2.字符另一种表示方式 unicode
// 3.转义符
// 4.运算符
####运算符(赋值运算符、算术运算符、比较运算符)
public class Demo3 {
public static void main(String []args) {
//运算符:赋值运算符:=、+=、﹣=、*=、/=、%=
// int num = 9;
// System.out.println(num);
// num = 100;
// System.out.println(num);
// num+=10;// num=num+10
// System.out.println(num);
// num-=10;//num=num-10
// System.out.println(num);
// num*=5;//num=num*5
// System.out.println(num);
//
//算术运算符: +、﹣、*、/、%、++、 --
// +:俩测是数字表达式的话为运算,加号有一侧有字符串,则作用为连接符
// System.out.println(5+6+7);//18
// System.out.println(5+"6"+7);//567
// System.out.println(5+6+"7");//117
// System.out.println(5+6+'7');
//
// int num1= 99;
// int num2 =2;
// System.out.println(num1+"+"+num2+ "=" + (num1+num2));
// 除法:整型除整型=整型(int/int=int 不四舍五入);
// %:取余(模运算)
int nu= 10%2;
System.out.println(nu);
System.out.println(-5%2);//结果只与被除数有关
System.out.println(-5%-2);
//比较运算符:>、<、>=、 <=、= =、!=、"instanceof(--)"
//逻辑运算符:!、&&、||
//位运算符: &、|、^ 、 ~、>>、<<、>>> (---)
//条件运算符: ?:
//条件运算符很独特,因为它是用三个操作数组成的三元运算符。
}
}
//同以块内,不能有同名的变量
//变量的作用于,:变量的有效范围,从声明位置开始,到他所在块得到结束
####自增、自减
public class Demo4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// ++自增 --自减
int i = 1;
// i++;//i=i+1;
// System.out.println(i);
// int j=0;
// j=i++;//先运算再自增;
// System.out.println(j);
// j=++i;//先自增在运算
// System.out.println(j);
int j =10;
j= i++;
System.out.println(i);//2
System.out.println(j);//1
}
}
###临时操作栈
public class Demo7 {
public static void main(String []args) {
int i= 3;
i= i++;//临时操作栈
System.out.println(i);
}
}
##### 位运算符
public class Demo10 {
public static void main(String []args) {
// 位运算符,&、|、~、^、>>、<<、>>>
// 按位& 与 或|和 逻辑 与 或都可以进行逻辑运算
// 按位与、或 运算参加位运算(二进制整数运算)
// 按位与& 只有参加运算的两位都为1,&运算的结果才为1,否则为0
// 101 5
// 110 6
// 100 4
System.out.println(5&6);
// 按位或|只有参加运算的两位都为0,|运算的结果才为0,否则为1
// 101 5
// 110 6
// 111 7
System.out.println(5|6);
// ^亦或只有参加运算的两位不同,^运算的结果才为1,否则为0
// 101 5
// 110 6
// 011 3
System.out.println(5^6);
// << 左移 a<
System.out.println(5<<2); //a*2^b=5*2^2
// >>右移 a>>b,将a的二进制数据右移b位,如果最高位是0,则左边移空的部分补0,如果最高位是1,则左边移空的部分补1
System.out.println(128>>2);// a/2^b=128/2^2
// 2最快形式形式变成8
int num = 2;
num=num<<2;
System.out.println(num);
}
}
位运算与逻辑也能算差异:
// &,| 和 &&,||
// 1. 都可以参加逻辑运算。
// 2. 前者可以参加位运算,后者不可以
// 3.后者有短路性,前者没有
####三元运算符
public class Demo12 {
public static void main(String []args) {
//条件运算符(三元运算符),?
//表达式1 ? 表达式 2: 表达式2
int num = 145 > 999 ?145 : 999;
System.out.println(num);
int year =1965;
System.out.println(year%4 == 0 && year%100 != 0 || year%400 == 0 ? "闰年" : "平年");
}
}
#######临时变量互换法
public class Practice2 {
public static void main(String []agrs) {
//互换x、y
int x = 5;
int y = 7;
// 方法1 临时变量
// int z;
// z=x;
// x=y;
// y=z;
//方法2 加 减法 乘除法
// x=x+y;
// y=x-y;
// x=x-y;
// 方法三:位运算
x = x^y;
y=x^y;
x=x^y;
System.out.println(x+","+y);
}
}
###########运算兼容
public class Demo {
public static void main(String[] args) {
// 运算兼容
// 向范围大的方向兼容
// int num1 = 10;
// long num2 =20;
// int num3 = num1 +(int)num2;
// System.out.println(num3);
// btye,short,char,int <兼容方向只有 int
// byte num1 = 9;
// short num2 = 10;
// short num3 =num1 +num2;
short num1 = 99;
//num1= (short)(num1 +2); 没有把2转换为short类型;
num1+=2; //自动把 int 2转换为 short
}
}
##########//阻塞操作 :nextInt(),nextByte(),nextShort()
//nextline()包含空格 next()只要有空格代表结束。
// nextline()包含空格 next()只要有空格代表结束。
str = scan.nextLine();
############类型转换
public class Demo2 {
public static void main(String[] args) {
// 类型转换
// 1.自动类型转换:俩种类型,彼此兼容,目标类型取值范围大于原类型;
// byte num1 = 12;
// int num2 = num1;
// 2.强制类型转换:俩种类型不太兼容,目标类型物质范围小于原类型;
// long num1 = 128 ;
//
// int num2 = (int)num1;//强制 转换 类型 1 数值1=(类型1)数值2;
// short num3 = (short) num2;
// byte num4 = (byte) num3;
// System.out.println(num4);//溢出 损失精度;
char c1 ='A';
System.out.println((char)(c1+32));
}
}