Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9b9473b

Browse files
committed
Java第三天
1 parent8e778f3 commit9b9473b

28 files changed

+1356
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
位运算符:位运算符一定是先把数据转成二进制,然后再运算。
3+
4+
面试题:&和&&的区别?
5+
A:&和&&都可以作为逻辑运算,&&具有短路效果。
6+
B:&还可以作为位运算。
7+
*/
8+
classOperatorDemo {
9+
publicstaticvoidmain(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+
*/
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
<<:左移,右边补0
3+
>>:右移,根据最高位确定补齐是0还是1
4+
>>>:无符号右移 左边补0
5+
*/
6+
classOperatorDemo2 {
7+
publicstaticvoidmain(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+
*/
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
位^运算符号:针对同一个数据异或两次,其值不变
3+
4+
面试题:
5+
请把两个数据进行交换。
6+
说明:如果我没有指定数据的类型,默认是int类型。适用于我讲课。
7+
*/
8+
classOperatorTest {
9+
publicstaticvoidmain(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+
inta =10;
18+
intb =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+
}
2.22 MB
Binary file not shown.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
三元运算符:
3+
格式
4+
(关系表达式)?表达式1:表达式2;
5+
6+
执行流程:
7+
计算关系表达式,看其返回值
8+
true:表达式1就是整个表达式的值
9+
false:表达式2就是整个表达式的值
10+
11+
*/
12+
classOperatorDemo {
13+
publicstaticvoidmain(String[]args) {
14+
//获取两个数据中的较大值
15+
intx =3;
16+
inty =4;
17+
intz = (x >y)?x :y;
18+
System.out.println(z);
19+
20+
//比较两个数是否相等
21+
inta =4;
22+
intb =4;
23+
//boolean flag = (a==b)?true:false;
24+
booleanflag = (a ==b);
25+
System.out.println(flag);
26+
27+
//获取三个数据中的较大值
28+
intc =30;
29+
intd =40;
30+
inte =50;
31+
//int max = (c>d)?(c>e?c:e):(d>e?d:e);
32+
inttemp = (c>d)?c:d;
33+
intmax = (temp>e)?temp:e;
34+
System.out.println(max);
35+
}
36+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
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+
importjava.util.Scanner;
15+
16+
classOperatorDemo {
17+
publicstaticvoidmain(String[]args) {
18+
//创建键盘录入对象
19+
Scannersc =newScanner(System.in);
20+
21+
System.out.println("请输入一个整数:");
22+
//获取数据
23+
inti =sc.nextInt();
24+
25+
System.out.println("i:"+i);
26+
}
27+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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+
importjava.util.Scanner;
22+
23+
classOperatorTest {
24+
publicstaticvoidmain(String[]args) {
25+
//创建键盘录入对象
26+
Scannersc =newScanner(System.in);
27+
28+
//录入数据
29+
System.out.println("请输入第一个数据:");
30+
intfirstNumber =sc.nextInt();
31+
System.out.println("请输入第二个数据:");
32+
intsecondNumber =sc.nextInt();
33+
34+
//做加法
35+
intsum =firstNumber +secondNumber;
36+
37+
//输出结果
38+
System.out.println("数据和是:"+sum);
39+
}
40+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
需求:键盘录入两个数据,获取这两个数据中的最大值
3+
4+
分析:
5+
A:键盘录入数据
6+
B:获取最大值,用三元运算符实现
7+
C:输出最大值
8+
*/
9+
importjava.util.Scanner;
10+
11+
classOperatorTest2 {
12+
publicstaticvoidmain(String[]args) {
13+
//创建键盘录入对象
14+
Scannersc =newScanner(System.in);
15+
16+
//获取键盘录入数据
17+
System.out.println("请输入第一个数据:");
18+
inta =sc.nextInt();
19+
System.out.println("请输入第二个数据:");
20+
intb =sc.nextInt();
21+
22+
//获取数据最大值
23+
intmax = (a>b)?a:b;
24+
25+
//输出结果
26+
System.out.println("最大值是:"+max);
27+
}
28+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
键盘录入三个数据,获取这三个数据中的最大值
3+
*/
4+
importjava.util.Scanner;
5+
6+
classOperatorTest3 {
7+
publicstaticvoidmain(String[]args) {
8+
//创建键盘录入对象
9+
Scannersc =newScanner(System.in);
10+
11+
//获取键盘录入数据
12+
System.out.println("请输入第一个数据:");
13+
inta =sc.nextInt();
14+
System.out.println("请输入第二个数据:");
15+
intb =sc.nextInt();
16+
System.out.println("请输入第三个数据:");
17+
intc =sc.nextInt();
18+
19+
//获取三个数据的最大值
20+
inttemp = (a>b)?a:b;
21+
intmax = (temp>c)?temp:c;
22+
23+
//输出结果
24+
System.out.println("最大值是:"+max);
25+
26+
}
27+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
键盘录入两个数据,比较这两个数据是否相等
3+
*/
4+
importjava.util.Scanner;
5+
6+
classOperatorTest4 {
7+
publicstaticvoidmain(String[]args) {
8+
//创建键盘录入对象
9+
Scannersc =newScanner(System.in);
10+
11+
//获取键盘录入数据
12+
System.out.println("请输入第一个数据:");
13+
inta =sc.nextInt();
14+
System.out.println("请输入第二个数据:");
15+
intb =sc.nextInt();
16+
17+
//比较是否相等
18+
//boolean flag = (a==b)?true:false;
19+
booleanflag = (a==b);
20+
21+
//输出结果
22+
System.out.println(flag);
23+
}
24+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp