题目1
如果要打印一个字符串,需要使其输出结果为:“hello”,则以下哪种方式可以正确输出:( )
A.System.out.println("\\\"hello\\\"");
B.System.out.println("\\"hello\\"");
C.System.out.println("/\"hello/\"");
答案:A
解析:
System.out.println("hello");
System.out.println("\"hello\"");
System.out.println("\\");
System.out.println("\\\"hello\\\"");
hello
"hello"
\
\"hello\"
\" -> "
\\ -> \
题目2
经过强制类型转换以后,变量b的值为多少( )
short a =128;
byte b =(byte) a;
答案:-128
-128
10000000 00000000 00000000 10000000-原
11111111 11111111 11111111 01111111-反
11111111 11111111 11111111 10000000-补
10000000 byte
增量运算符
a+=d;
->a=int(a+d);
//a=22;
自增/自减运算符
int a=10;
a=a++;
System.out.println(a);
//10
int a=10;
a=++a;
System.out.println(a);
//11
关系运算符
int a=10;
int b=11;
System.out.println(a>b);
System.out.println(a<b);
//false
//true
像a>b这种表达式的结果只能是true或false
逻辑运算符(重点)
逻辑与&&
表达式1 && 表达式2,左右表达式必须是boolean类型的结果
短路与:如果表达式1结果为假,则表达式2不用算,整体结果为假
a和b都不是布尔表达式,所以报错
逻辑非!
! 布尔表达式
移位运算
<<左移一位,相当于*2;>>右移一位,相当于/2;
无符号右移>>>
System.out.println(-1>>>1);
//11111111 11111111 1111111 1111111
//01111111 11111111 1111111 1111111 -> 2147483647
不存在无符号左移<<<
右边不是符号位
运算符的优先级
+的优先级要高于 >>
int a=10;
int b=20;
int c=a+((b-a)>>1);
System.out.println(c);
//15
//c是a和b的平均值
idea中注释快捷键: ctrl +shift+/
ctrl+/