面试题:
1.Java操作符有哪些?
2.当一个整型和字符串运算后返回什么类型的结果?
3.求余操作后,其结果的正负符号由那个操作数决定?
4.整型和浮点型分别对0求余,会有什么样的结果产生?
5.浮点型与浮点型以及浮点型和整型之间是否可以做求余操作?
6.前加加/减减与后加加/减减的区别?
演示代码:
public class OperatorTest {
/**
* DESC--操作符案例
*/
public static void main(String[] args) {
//定义多组不同类型的数据
int a =9;
int b=4;
int c = -4;
int d = -17;
String str1 = "计算结果为:";
String str2 = "这次是正确的";
double g =12.8;
double h = 6.1;
/**
* 1.测试字符串与整数相加(str1+a+b)
* (1.1)当字符串在第一位,整型在第二位,若按从左至右的运算顺序则依次都是做字符串拼接运算
* (1.2)当前两位整型第三位是字符串时,若按从左至右的运算顺序则先把两整型值相加然后再和字符串拼接
* (1.3)括号优先级最高,所有首先处理括号内运算,然后在处理其他运算操作(字符串拼接)
* 总结:以上运算(int+String)的结果类型都为String类型
*/
System.out.println("(1.1)"+str1+a+b);
System.out.println("(1.2)"+a+b+str1);
System.out.println("(1.3)"+str1+str2+(a+b));
System.out.println("(1.3)"+str1+g+h);
/**
* 2.测试取模运算符
* (2.1)正整型%正整型求余返回正符号的余数
* (2.2)负整型%正整型求余返回负符号的余数
* (2.3)浮点型%正整型求余返回负符号的余数
* (2.4)浮点型%0求余返回的结果永远为NaN
* (2.5)整型%0求余会报java.lang.ArithmeticException异常
* 总结:求余返回的结果正负取决于左边的操作数
* 浮点型&浮点型,浮点型&整型同样可以参与取模运算
* 浮点型与0求余得到的结果永远为NaN
* 整型与0求余会报异常
*/
System.out.println("(2.1)"+a%b);
System.out.println("(2.2)"+c%a);
System.out.println("(2.3)"+g%b);
System.out.println("(2.4)"+g%0);
try{
System.out.println(a%0);
}catch(Exception e){
System.out.println("(2.5)"+"整型与0求余会报java.lang.ArithmeticException异常");
}
/**
* 3.测试加加、减减运算符及与整型的混合运算
* (3.1)后加加/减减
* (3.2)前加加/减减
* 说明:a=9 b=4(初始值)
* 总结:后加加/减减是先取原来数在和其他数运算最后加1/减1(先运算再改其值)
* 前加加/减减是先取数并加/减1后在和其他数运算(先改其值再运算)
*/
System.out.println("--(3.1)提示:后加加/减减是先取数在和其他数运算最后加1/减1");
System.out.print(" a++ +b是先取a原来的值9在加b4,因此结果为:");
System.out.println(a++ +b);
System.out.print(" 当后加加后a的值有9变成:");
System.out.println(a);
System.out.println("--(3.2)提示:前加加/减减是先取数加/减1后在和其他数运算");
System.out.print(" b-- +a是先取b原来的值4并先减1,因此结果为:");
System.out.println(b-- +a);
System.out.print(" 当前减减后b的值由4变成:");
System.out.print(b);
System.out.print("(注意此时的a是后加加后的值9-->10)");
}
}
运行结果:
(1.1)计算结果为:94
(1.2)94计算结果为:
(1.3)计算结果为:这次是正确的13
(1.3)计算结果为:12.86.1
(2.1)1
(2.2)-4
(2.3)0.8000000000000007
(2.4)NaN
(2.5)整型与0求余会报java.lang.ArithmeticException异常
--(3.1)提示:后加加/减减是先取数在和其他数运算最后加1/减1
a++ +b是先取a原来的值9在加b4,因此结果为:13
当后加加后a的值有9变成:10
--(3.2)提示:前加加/减减是先取数加/减1后在和其他数运算
b-- +a是先取b原来的值4并先减1,因此结果为:14
当前减减后b的值由4变成:3(注意此时的a是后加加后的值9-->10)