目录
运算符和表达式
如 int a =2+5;
‘+’为算数运算符
“a+b”为算数表达式
注:在代码中如果有小数参加计算,结果有可能不精确
整数参与计算,结果只能得到整数 如
System.out.println(10/3);
结果为3
隐式转换(取值范围小的值变为大的值)
*数据类型不一样的时候,先转化再计算
*取值范围小的会转化成范围大的计算
*byte short char运算时,都会先提升为int,然后再进行计算
byte a=10;
byte b=20;
result=a+b;
此时result类型为int
强制转换(取值范围大的值变为小的值)
格式 目标数据类型 变量名=(目标数据类型)例
double b=11.2;
int a=(int)b;
数据比较大时,强制转换可能会出错误
字符串和字符的加操作
*当“+”操作中出现字符串时,“+”为字符链接符(字符串只能进行+操作)
如 “123”+123 结果为”123123“
*连续进行“+”操作时,由左到右逐个进行
如1+99+"学习“ 结果为”100学习“(先加再连接)
*当字符转化为整数类型时,会转化为对应的ASILL值
赋值运算符
较为简单
注:”==“和”=“不能混淆
逻辑运算符
另外 c语言中真为1,假为0
*了解 逻辑异或 “^" 相同为false,不同为ture
*感叹号取反不要多次使用
短路运算符
“&&” 短路与 当前面为真时才判断下一个
“||” 短路或 当前面为假时才判断下一个
即 左边能确定整个表达式的结果时,右边就不参与计算,效率高
举例
int a=10;
int b=10;
boolean result=a++<5&&b++<5;
System.out.println(result);
System.out.println(a);
System.out.println(b);//前面的正确,后面不参与比较
输出结果a=10,b=11;
三元运算符
格式:关系表达式?表达式1:表达式2;
若关系表达式为真,则表达式1为运算结果,反之为2
需要有一个量接受输出的值
一些计算机底层知识
原码
只适用于正数计算
反码
正数反码不变,复数在原码的基础上,符号位不变,数值取反
*计算结果跨0时会出现误差
补码
正数的补码不变,负数的补码在反码的基础上加一,128只有补码
*计算机的储存和计算,都是以补码进行的
*隐式转化——前面补零,强制转化——前面去零
判断与循环
if语句
if(关系表达式){
表达式1}
else{
表达式2}
与c语言类似
switch语句
switch(表达式){
case 值1:语句体1;break;
case 值2:语句体2;break;
default:语句体;break;}
*case后面的值只能是字面量,不能是变量
for循环
for(初始语句;条件判断语句;循环语句){
循环体语句
}
while循环
格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
for和while的区别
*for循环中:知道循环次数或者循环的范围
while循环:不知道循环的次数和范围,只知道循环结束的条件
获取随机数
1.导包
Import java .util.Random
必须在类定义上面
2.创建对象
Random r=new Random();
r为变量名,可变
3.生成随机数
int number=r.nextlen(随机数的范围);
r.nextlen(bound:10);//表示0-9
number为变量名,可变
如果要生成任意随机数 如7-15(先让这个数从0开始。0-8)
int number=r.nnextlen(bound:9)+7;//7-15
数组
格式:数据类型 [ ] 数组名
*也可以用c语言格式,但java更习惯于第一种
静态初始化
int[] arr1=new int[]{11,12,13,14}//完整格式
int[] arr2={11,12,13,14}//简化格式