1.变量
基本数据类型:
byte---一个字节
short-----两个字节
int------4个字节(默认类型)
long------8个字节,长整形用L或l做后缀修饰;long j=1000000000000L;
浮点数:单精度浮点数float用F或f做后缀修饰,float f =3.145F;
float:4个字节
double:8个字节;(默认类型)
布尔型:i 个字节
字符:2个字节
使用变量的主意事项:1.变量定义在哪一级的大括号中,变量的作用域就是在哪一级大括号,相同的作用域不能定义相同的变量;2.没有初始化值的变量不能直接使用;3.在一行上只定义一个变量,可以定义多个,但是建议只定义一个;
4.int d,e;
类型转换(默认转换):1.布尔类型不能转换为其他类型
2.byte,short,char-int-long-float-double;朝着表示范围大的方向转换;
3.byte,short,long之间不互相转换,他们参与运算首先转换成int类型;
强制类型转换:从大的数据类型到小的数据类型;目标数据类型 变量=(目标数据类型)(被转换的数据类型);
常量在编译过程中就能确定,变量在编译过程中不能确定;
变量计算是先吧变量类型提升再 运算;常量计算直接先运算,然后看结果是否在赋值的类型范围内;
强制类型转换数据溢出的到什么结果:改成二进制,用补码运算,截取,再求原码;得到结果;
上面的结果是-126;
ASCII码表:字符0---48;a---97;A---65;
字符串和其他类型做+,得到字符串类型;这里的+ 是字符串链接符;从左到右运算,和字符串做+ 运算的都转成字符串,再运算;
java中的字符占两个字节,可以存储一个汉字;其他语言中一个字符占一个字节;
==++++++++++++++++++
运算符:
1.算数运算符:+-*/% ++ --;正数相除只能得到整数;取余和C语言相同;10++是错误的(10 是常量不能改变);++,- -单独运算时,先加和后加一样;++参与运算时,前加:先自增在参与运算;后加:先参与运算再自增;
2.赋值运算符:=;扩展:+=,*=,-=,/=,%=;扩展的赋值运算符隐含了一个强制类型转换;s+=1等价于s=(s的数据类型)(s+1)
3.比较运算符:比较运算符的结果是布尔类型。
4.逻辑运算符:&逻辑与:有false则为false;|逻辑或:有true则为true;^逻辑异或:相同为false,不同为true;
&&与& 结果一样,但是会有短路问题:
注意短路问题;
5.位运算符:位运算首先要把数据转换成二进制;
位与&:有0则0;位或|:有1 则1;位^:相同为0,不同为1;~按位取反:0变1,1变0(用补码运算);<<左移:最高位丢弃,右边补齐0,左移是乘以2^N;>>右移动:左边是0补齐0,左边是1补齐1,右移是除以2^N;>>>无符号右移,左边补齐0;
6.三目运算符:
+++++++++++++++++++++++++
键盘录入:
输入字符串:string s = sc.nextLine();
++++++++++++++++++
流程控制语句:
1.顺序结构------从上往下一次执行;
2.选择结构(分支结构)------if:如果if语句带一句话,大括号可以省略,一般有左大括号就没有分号,有分号就没有左大括号,if(a==0);语句体位空;
switch------
switch (表达式){
case 值1:
语句1;
break;
default:
语句n;
break;
}
switch (表达式){
}
注意事项:1.case后面只能是常量;不能是变量,多个case后面的值不能相同;
2.default可以省略但是不建议,一般用来提示不正确的情况;default可以在任意位置;
3.最后一个break可以省略,其他的break建议不要省略(容易发生case穿透);
4.遇到break就结束或者执行到结尾就结束;建议写标准格式;
3.循环结构--------for;
for循环的注意事项:1.如果循环体是一条语句,大括号可以省略;如果循环体是多条语句,大括号不能省略;建议都不要省略;2.有左大括号,就没分号,有分号,就没左大括号;
------while;
-------do { 语句1;
}while(条件)
死循环:for(;;){}
while(true){}
循环嵌套:外循环控制行数,内循环控制列数;
System.out.println();自动换行
System.out.print();不换行
System.out.println();输出空的语句实现换行;
转义字符:
‘ \t’-----tab,'\n'-----换行,'\r'----回车;
控制跳转语句:break---中断,break正常只跳出一层循环,如果想要跳出多层循环,要带标签使用,下面格式---标签名:语句;如wc:for(int i=0;i<10;i++){
break wc;
}
continue------退出本次循环继续下次循环,只能在循环中使用;可以带标签使用,
return----返回;直接退出方法;