1.运算符:对字面量或者变量进行操作的符号
表达式:用运算符把字面量或者变量连接起来,符合Java语法的式子就可以成为表达式,不同运算符连接的表达式体现的是不同类型的表达式
2.算术运算符:+,-,*,/,%
注:在代码中,如果有小数参与运算,结果有可能不准确,整数参与运算,结果只能得到整数
数字相加:数字进行运算时,数据类型不一样不能运算,需要转换成一样的才可以
数据转换的分类:隐式转换:取值范围小的数值=>大的数值自动类型提升
强制转换:取值范围大的数值=>小的数值目标数据类型 变量名=(目标数据)被强制转换数据。注:强制转换是可能会超出范围导致丢失精度
注:byte,short,char在数据运算中,会先提升为int,再运算 byte<short<int<long<float<double
字符串的“+”操作:当“+”操作中出现字符串是,这个“+”是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,并产生一个新的字符串
连续进行“+”操作时,从左到右逐个执行
字符的+操作:当字符+字符/数字时,会把字符通过ASII码表查询到相对应的数字再计算
3.自增自减运算符的基本用法:++ 变量的值加1,-- 变量的值减1单独使用时可以放在变量前也可以放在变量后
参与计算时:先用后加 a++,先加后用 ++a
4.赋值运算符分类:=(赋值),+=(加后赋值),-=(减后赋值),*=(乘后赋值),/=(除后赋值),%=(除余后赋值)
5.关系运算符分类(比较运算符)结果都是boolean类的:==(相等),!=(不相等),>(大于),>=(大于等于),<(小于),<=(小于等于)
6.逻辑运算符:&(逻辑与),|(逻辑或),^(逻辑异或)相同为false,不同为true,!(逻辑非)取反,要么不写,要么只写一次
7.短路逻辑符:&&,||结果相同,但是有短路效果
注:&,|无论左边是true还是false,右边都要执行 &&,||如果左边能确定整个表达式的结果,右边都不执行
8.三元运算符:可以进行判断,根据判断的结果得到不同的内容
三元运算符格式:关系表达式?表达式1:表达式2;
int max = a>b?a:b;
//把三元运算符的结果赋值给一个变量
System.out.println(a>b?a:b);
//把三元运算符的结果直接打印
计算规则:首先计算关系表达式的值,如果值为true,表达式的值就是运算结果;如果值为false,表达式2的值就是运算结果
注:运算中()大于一切
9.原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负
原码的弊端:利用原码进行计算时,如果是正数运算是没有问题的;如果是负数计算时,结果出错,实际运算的方向和正确运算方向相反
反码:为了解决原码不能计算负数出现的
反码的计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反
反码的弊端:负数运算时,如果结果跨0,跟实际结果会有1的误差
补码:为了解决负数计算时跨0的问题而出现的
补码的计算规则:正数的补码不变,负数的补码在反码的基础上加1。同时补码多记录一个特殊的值-128,该字节在1个数据下,没有原码和反码
注:计算机中的存储和计算都是以补码的形式进行的
10.其他运算符:《向左移动,低位补0;》向右移动,高位补0或1;>>>无符号右移,向右移动,高位补0
分别输出数字的个位,十位,百位
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个三位数:");
int a=sc.nextInt();
int ge=a%10;
int shi=a/10%10;
int bai=a/100%10;
System.out.println("这个数字个位是:"+ge);
System.out.println("这个数字十位是:"+shi);
System.out.println("这个数字百位是:"+bai);
}
}
两只老虎体重是否相同
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一只老虎的重量:");
double weight1= sc.nextDouble();
System.out.println("请输入第二只老虎的重量:");
double weight2= sc.nextDouble();
String result=weight1==weight2?"相同":"不同";
System.out.println(result);
}
}