File tree Expand file tree Collapse file tree 28 files changed +1356
-0
lines changed Expand file tree Collapse file tree 28 files changed +1356
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ 位运算符:位运算符一定是先把数据转成二进制,然后再运算。
3
+
4
+ 面试题:&和&&的区别?
5
+ A:&和&&都可以作为逻辑运算,&&具有短路效果。
6
+ B:&还可以作为位运算。
7
+ */
8
+ class OperatorDemo {
9
+ public static void main (String [] args ) {
10
+ //&,|,^,~
11
+ System .out .println (3 & 4 ); //0
12
+ System .out .println (3 | 4 ); //7
13
+ System .out .println (3 ^ 4 ); //7
14
+ System .out .println (~3 ); //
15
+ }
16
+ }
17
+
18
+ /*
19
+ A:计算出3,4的二进制
20
+ 3的二进制:00000000 00000000 00000000 00000011
21
+ 4的二进制:00000000 00000000 00000000 00000100
22
+ B:位&运算 有0则0
23
+ 00000000 00000000 00000000 00000011
24
+ &00000000 00000000 00000000 00000100
25
+ ------------------------------------
26
+ 00000000 00000000 00000000 00000000
27
+ C:位|运算 有1则1
28
+ 00000000 00000000 00000000 00000011
29
+ &00000000 00000000 00000000 00000100
30
+ ------------------------------------
31
+ 00000000 00000000 00000000 00000111
32
+ D:位^运算 相同则0,不同则1
33
+ 00000000 00000000 00000000 00000011
34
+ &00000000 00000000 00000000 00000100
35
+ ------------------------------------
36
+ 00000000 00000000 00000000 00000111
37
+ E:位~运算 把数据每个位都按位取反
38
+ 00000000 00000000 00000000 00000011
39
+ ~11111111 11111111 11111111 11111100
40
+ 反:11111111 11111111 11111111 11111011
41
+ 原:10000000 00000000 00000000 00000100
42
+ */
Original file line number Diff line number Diff line change
1
+ /*
2
+ <<:左移,右边补0
3
+ >>:右移,根据最高位确定补齐是0还是1
4
+ >>>:无符号右移 左边补0
5
+ */
6
+ class OperatorDemo2 {
7
+ public static void main (String [] args ) {
8
+ /*
9
+ System.out.println(4 << 2); //16 = 4 * 2^2
10
+ System.out.println(3 << 3); //3 * 2 ^ 3
11
+ System.out.println(32 >> 2); //32 / 2^2
12
+ System.out.println(32 >>> 2);
13
+ */
14
+
15
+ System .out .println (-32 >> 2 );
16
+ System .out .println (-32 >>> 2 );
17
+ }
18
+ }
19
+
20
+ /*
21
+ A:<<
22
+ 4的二进制:
23
+ 00000000 00000000 00000000 00000100
24
+ (00)000000 00000000 00000000 0000010000
25
+
26
+ B:>>>
27
+ 原:10000000 00000000 00000000 00100000
28
+ 反:11111111 11111111 11111111 11011111
29
+ 补:11111111 11111111 11111111 11100000
30
+
31
+ >>>
32
+ 11111111 11111111 11111111 11100000
33
+ 0011111111 11111111 11111111 111000(00)
34
+ */
Original file line number Diff line number Diff line change
1
+ /*
2
+ 位^运算符号:针对同一个数据异或两次,其值不变
3
+
4
+ 面试题:
5
+ 请把两个数据进行交换。
6
+ 说明:如果我没有指定数据的类型,默认是int类型。适用于我讲课。
7
+ */
8
+ class OperatorTest {
9
+ public static void main (String [] args ) {
10
+ /*
11
+ System.out.println(1 ^ 2 ^ 2);//1
12
+ System.out.println(1 ^ 1 ^ 2);//2
13
+ System.out.println(15 ^ 3 ^ 7 ^ 7 ^ 3);//15
14
+ */
15
+
16
+ //定义两个变量
17
+ int a = 10 ;
18
+ int b = 20 ;
19
+
20
+ //System.out.println(a+"---"+b);
21
+ System .out .println ("a=" +a +",b=" +b );
22
+
23
+ //怎么做呢?
24
+ //方式1:使用第三方变量。开发中常用此方案。
25
+ /*
26
+ int temp = a;
27
+ a = b;
28
+ b = temp;
29
+ System.out.println("a="+a+",b="+b);
30
+ */
31
+
32
+ //方式2:不好,可能a+b已经超出范围了。
33
+ /*
34
+ a = a + b; //a=30
35
+ b = a - b; //b=10
36
+ a = a - b; //a=20
37
+ System.out.println("a="+a+",b="+b);
38
+ */
39
+
40
+ //方式3:不好,可能a+b已经超出范围了。
41
+ //a = (a+b) - (b=a); //一句话搞定
42
+ //System.out.println("a="+a+",b="+b);
43
+
44
+ //方式4:面试
45
+ a = a ^ b ;
46
+ b = a ^ b ; //b = a ^ b = a ^ b ^ b = a;
47
+ a = a ^ b ; //a = a ^ b = a ^ b ^ a = b;
48
+ System .out .println ("a=" +a +",b=" +b );
49
+ //记忆:左边,a,b,a。右边a^b
50
+ }
51
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ 三元运算符:
3
+ 格式
4
+ (关系表达式)?表达式1:表达式2;
5
+
6
+ 执行流程:
7
+ 计算关系表达式,看其返回值
8
+ true:表达式1就是整个表达式的值
9
+ false:表达式2就是整个表达式的值
10
+
11
+ */
12
+ class OperatorDemo {
13
+ public static void main (String [] args ) {
14
+ //获取两个数据中的较大值
15
+ int x = 3 ;
16
+ int y = 4 ;
17
+ int z = (x > y )? x : y ;
18
+ System .out .println (z );
19
+
20
+ //比较两个数是否相等
21
+ int a = 4 ;
22
+ int b = 4 ;
23
+ //boolean flag = (a==b)?true:false;
24
+ boolean flag = (a == b );
25
+ System .out .println (flag );
26
+
27
+ //获取三个数据中的较大值
28
+ int c = 30 ;
29
+ int d = 40 ;
30
+ int e = 50 ;
31
+ //int max = (c>d)?(c>e?c:e):(d>e?d:e);
32
+ int temp = (c >d )?c :d ;
33
+ int max = (temp >e )?temp :e ;
34
+ System .out .println (max );
35
+ }
36
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ 为了程序的数据更加的灵活,我们决定加入键盘录入数据。
3
+
4
+ 如何使用键盘录入数据呢?目前你就给我记住了。
5
+ A:导包
6
+ import java.util.Scanner;
7
+
8
+ 在class的上面
9
+ B:创建对象
10
+ Scanner sc = new Scanner(System.in);
11
+ C:获取数据
12
+ int i = sc.nextInt();
13
+ */
14
+ import java .util .Scanner ;
15
+
16
+ class OperatorDemo {
17
+ public static void main (String [] args ) {
18
+ //创建键盘录入对象
19
+ Scanner sc = new Scanner (System .in );
20
+
21
+ System .out .println ("请输入一个整数:" );
22
+ //获取数据
23
+ int i = sc .nextInt ();
24
+
25
+ System .out .println ("i:" +i );
26
+ }
27
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ 需求:键盘录入两个数据,并对这两个数据求和,输出其结果
3
+
4
+ 分析:
5
+ A:键盘录入数据,通过Scanner实现。
6
+ 导包 import java.util.Scanner;
7
+ 创建对象 Scanner sc = new Scanner(System.in);
8
+ 获取数据 int i = sc.nextInt();
9
+
10
+ B:录入两个数据
11
+ 所以就是int i = sc.nextInt();来两次。分别用不同的变量接受
12
+ int i = sc.nextInt();
13
+ int j = sc.nextInt();
14
+
15
+ C:求两个数据的和
16
+ int sum = i + j;
17
+
18
+ D:输出结果
19
+ System.out.println(sum);
20
+ */
21
+ import java .util .Scanner ;
22
+
23
+ class OperatorTest {
24
+ public static void main (String [] args ) {
25
+ //创建键盘录入对象
26
+ Scanner sc = new Scanner (System .in );
27
+
28
+ //录入数据
29
+ System .out .println ("请输入第一个数据:" );
30
+ int firstNumber = sc .nextInt ();
31
+ System .out .println ("请输入第二个数据:" );
32
+ int secondNumber = sc .nextInt ();
33
+
34
+ //做加法
35
+ int sum = firstNumber + secondNumber ;
36
+
37
+ //输出结果
38
+ System .out .println ("数据和是:" +sum );
39
+ }
40
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ 需求:键盘录入两个数据,获取这两个数据中的最大值
3
+
4
+ 分析:
5
+ A:键盘录入数据
6
+ B:获取最大值,用三元运算符实现
7
+ C:输出最大值
8
+ */
9
+ import java .util .Scanner ;
10
+
11
+ class OperatorTest2 {
12
+ public static void main (String [] args ) {
13
+ //创建键盘录入对象
14
+ Scanner sc = new Scanner (System .in );
15
+
16
+ //获取键盘录入数据
17
+ System .out .println ("请输入第一个数据:" );
18
+ int a = sc .nextInt ();
19
+ System .out .println ("请输入第二个数据:" );
20
+ int b = sc .nextInt ();
21
+
22
+ //获取数据最大值
23
+ int max = (a >b )?a :b ;
24
+
25
+ //输出结果
26
+ System .out .println ("最大值是:" +max );
27
+ }
28
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ 键盘录入三个数据,获取这三个数据中的最大值
3
+ */
4
+ import java .util .Scanner ;
5
+
6
+ class OperatorTest3 {
7
+ public static void main (String [] args ) {
8
+ //创建键盘录入对象
9
+ Scanner sc = new Scanner (System .in );
10
+
11
+ //获取键盘录入数据
12
+ System .out .println ("请输入第一个数据:" );
13
+ int a = sc .nextInt ();
14
+ System .out .println ("请输入第二个数据:" );
15
+ int b = sc .nextInt ();
16
+ System .out .println ("请输入第三个数据:" );
17
+ int c = sc .nextInt ();
18
+
19
+ //获取三个数据的最大值
20
+ int temp = (a >b )?a :b ;
21
+ int max = (temp >c )?temp :c ;
22
+
23
+ //输出结果
24
+ System .out .println ("最大值是:" +max );
25
+
26
+ }
27
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ 键盘录入两个数据,比较这两个数据是否相等
3
+ */
4
+ import java .util .Scanner ;
5
+
6
+ class OperatorTest4 {
7
+ public static void main (String [] args ) {
8
+ //创建键盘录入对象
9
+ Scanner sc = new Scanner (System .in );
10
+
11
+ //获取键盘录入数据
12
+ System .out .println ("请输入第一个数据:" );
13
+ int a = sc .nextInt ();
14
+ System .out .println ("请输入第二个数据:" );
15
+ int b = sc .nextInt ();
16
+
17
+ //比较是否相等
18
+ //boolean flag = (a==b)?true:false;
19
+ boolean flag = (a ==b );
20
+
21
+ //输出结果
22
+ System .out .println (flag );
23
+ }
24
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ 是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,
3
+ 依次执行,程序中大多数的代码都是这样执行的。
4
+
5
+ 总的来说:写在前面的先执行,写在后面的后执行
6
+ */
7
+ class OrderDemo {
8
+ public static void main (String [] args ) {
9
+ System .out .println ("我爱林青霞" );
10
+ System .out .println ("我爱Java" );
11
+ System .out .println ("我爱张曼玉" );
12
+ System .out .println ("林青霞爱张曼玉" );
13
+ }
14
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ 选择结构:if语句,switch语句。
3
+
4
+ if语句有三种格式。
5
+
6
+ if语句格式1:
7
+ if(关系表达式) {
8
+ 语句体;
9
+ }
10
+
11
+ 执行流程:
12
+ A:计算关系表达式,看其结果
13
+ B:如果是true,就执行语句体
14
+ 如果是false,就不执行语句体
15
+ C:继续向下执行
16
+ */
17
+ class IfDemo {
18
+ public static void main (String [] args ) {
19
+ int x = 3 ;
20
+
21
+ if (x == 3 ) {
22
+ System .out .println ("x等于3" );
23
+ //x = 10;
24
+ }
25
+
26
+ if (x > 5 ) {
27
+ System .out .println ("x大于5" );
28
+ }
29
+
30
+ System .out .println ("over" );
31
+ }
32
+ }
You can’t perform that action at this time.
0 commit comments