Skip to content

Commit 9b9473b

Browse files
committed
Java第三天
1 parent 8e778f3 commit 9b9473b

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+
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+
*/
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+
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+
*/
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+
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+
}
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+
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+
}
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+
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+
}
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+
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+
}
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+
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+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
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+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
}

0 commit comments

Comments
 (0)