diff --git "a/21 \345\210\230\345\260\221\346\265\267/20230321 Java\345\244\215\344\271\2401.md" "b/21 \345\210\230\345\260\221\346\265\267/20230321 Java\345\244\215\344\271\2401.md" new file mode 100644 index 0000000000000000000000000000000000000000..6cfc5819c974e3624558a7759a256da7accbf144 --- /dev/null +++ "b/21 \345\210\230\345\260\221\346\265\267/20230321 Java\345\244\215\344\271\2401.md" @@ -0,0 +1,291 @@ +Javase(标准版)桌面开发其他两个版本的基础 + +Javame(小型版)小型电子设备嵌入 + +JavaEE(企业版)web网页开发 + +```java +shutdown -s -t 300 计划300秒后关机 +shutdown -a 取消计划 +浮点数默认类型是 double 如果要用 float 需要在赋值的前面加 (float) +例如:float a = (float) 3.14 +``` + + + +# Java字母要注意大小写! + + + +#### 关键字:全部是小写 + +#### 类名,接口名:每个单词的首字母要大写(大驼峰) + +#### 常量:在程序运行中不可改变 + +#### 变量:在程序运行中可以改变 + +#### char字符不能为空 + +# 巩固题 + +1. 定义类 Homework1 + +2. 定义 main方法 + +3. 控制台输出5行字符串类型常量值 + + ```java + package Java; + + public class Homework1 { + public static void main(String[] args) { + System.out.println("善学如春起之苗"); + System.out.println("不见其增,日有所长"); + System.out.println("假学如磨刀之石"); + System.out.println("不见其损,年有所亏"); + System.out.println("加油吧!少年"); + } + } + + ``` + + + +1. 定义类 Homework2 + +2. 定义 main方法 + +3. 控制台输出5行字符串类型常量值 + +4. 控制台输出5行字符类型常量值 + + ```java + package Java; + + public class Homework2 { + public static void main(String[] args) { + System.out.println("善学如春起之苗"); + System.out.println("不见其增,日有所长"); + System.out.println("假学如磨刀之石"); + System.out.println("不见其损,年有所亏"); + System.out.println("加油吧!少年"); + System.out.println('J'); + System.out.println('A'); + System.out.println('V'); + System.out.println('A'); + System.out.println('!'); + } + } + + ``` + + + +1. 定义类 Homework3 + +2. 定义 main方法 + +3. 控制台输出所有布尔类型常量值 + + ```java + package Java; + + public class Homework3 { + public static void main(String[] args) { + boolean a = true; + boolean b = false; + System.out.println(a); + System.out.println(b); + } + } + + ``` + + + +1. 定义类 Homework4 + +2. 定义 main方法 + +3. 定义2个 byte类型变量,分别赋byte类型范围内最大值和最小值,并输出在控制台. + +4. 定义2个 short类型变量,分别赋short类型范围内的值,并输出在控制台. + +5. 定义2个 int类型变量,分别赋int类型范围内的值,并输出在控制台. + +6. 定义2个 long类型变量,分别赋超过int类型范围的值,并输出在控制台. + + ```java + package Java; + + public class Homework4 { + public static void main(String[] args) { + byte a = Byte.MAX_VALUE; + byte b = Byte.MIN_VALUE; + short c = Short.MAX_VALUE-1; + short d = Short.MIN_VALUE+1; + int e = Integer.MAX_VALUE/2; + int f = Integer.MIN_VALUE*1; + long g = Long.MAX_VALUE; + long h = Long.MIN_VALUE; + System.out.println(a); + System.out.println(b); + System.out.println(c); + System.out.println(d); + System.out.println(e); + System.out.println(f); + System.out.println(g); + System.out.println(h); + } + } + + ``` + + + +1. 定义类Homework5 +2. 定义 main方法 +3. 定义2个 float类型变量,分别赋值,并输出在控制台. +4. 定义2个 double类型变量,分别赋值,并输出在控制台. + +```java +package Java; + +public class Homework5 { + public static void main(String[] args) { + float a = (float) 3.14; + float b = (float) -3.14; + double c = 3.4; + double e = -3.4; + System.out.println(a); + System.out.println(b); + System.out.println(c); + System.out.println(e); + } +} + +``` + + + +1. 定义类Homework6 + +2. 定义 main方法 + +3. 定义两个整数变量a,b并赋值 + +4. 控制台输出变量a,b互换前的值 + +5. 定义一个第三方变量temp + +6. 利用第三方变量temp使a,b的值互换 + +7. 控制台输出变量a,b互换后的值 + + ```java + package Java; + + public class Homework6 { + public static void main(String[] args) { + int a = 1; + int b = 2; + double c = 10.6; + b = a; + a = (int)c; + System.out.println(a); + System.out.println(b); + System.out.println(c); + } + } + + ``` + + + +1. 定义类 Homework7 +2. 定义 main方法 +3. 定义2个int类型变量x、y,x赋值为100,y赋值为200 +4. 定义新变量add,保存变量x,y的和并打印到控制台 +5. 定义新变量sub,保存变量x,y的差并打印到控制台 +6. 定义新变量mul,保存变量x,y的积并打印到控制台 +7. 定义新变量div,保存变量x,y的商并打印到控制台 + +```java +package Java; + +public class Homework7 { + public static void main(String[] args) { + int x = 100; + int y = 200; + int add = x+y; + int sub = x-y; + int mul = x*y; + int div = x/y; + System.out.println(add); + System.out.println(sub); + System.out.println(mul); + System.out.println(div); + } +} + +``` + +1. 定义类 Homework8 + +2. 定义 main方法 + +3. 定义2个double类型变量x、y,x赋值为100.8,y赋值为20.6 + +4. 定义新变量add,保存变量x,y的和并打印到控制台 + +5. 定义新变量sub,保存变量x,y的差并打印到控制台 + +6. 定义新变量mul,保存变量x,y的积并打印到控制台 + +7. 定义新变量div,保存变量x,y的商并打印到控制台 + + ```java + package Java; + + public class Homework8 { + public static void main(String[] args) { + double x = 100.8; + double y = 20.6; + float add = (float)(x+y); + double sub =x-y; + float mul = (float) (x*y); + double div = x/y; + System.out.println(add); + System.out.println(sub); + System.out.println(mul); + System.out.println(div); + } + } + + ``` + + + +## 9、简答题 + +(1)Java的基本数据类型有哪些?String是基本数据类型吗? + +```java +Java的基本数据类型有:byte,short,int,long,float,double,char,boolean + String不是基本数据类型 +``` + +(2)float f=3.4;是否正确,表达式15/2*2的值是多少 + +```java +float f=3.4; //错误,因为3.4默认是double类型 + System.out.println(15/2*2); //14,因为15/2结果是7 +``` + +(3)char型变量中是否可以存储一个汉字? + +``` +可以 +``` + diff --git "a/21 \345\210\230\345\260\221\346\265\267/20230328 Java\345\244\215\344\271\2402.md" "b/21 \345\210\230\345\260\221\346\265\267/20230328 Java\345\244\215\344\271\2402.md" new file mode 100644 index 0000000000000000000000000000000000000000..b6d058eaf64b1df74a56d3d09940807cecb1fd41 --- /dev/null +++ "b/21 \345\210\230\345\260\221\346\265\267/20230328 Java\345\244\215\344\271\2402.md" @@ -0,0 +1,99 @@ +$$ + +$$ + +```java +package org.example; + +import javafx.scene.transform.Scale; + +import java.util.Scanner; + +public class fx1 { + public static void main(String[] args) { +// 1 +// Scanner sc = new Scanner(System.in); +// System.out.print("请输入:"); +// int sz = sc.nextInt(); +// if (sz>=0&sz<=9){ +// System.out.println("是数字"); +// }else { +// System.out.println("不是数字"); +// } +// 2 +// Scanner sc = new Scanner(System.in); +// System.out.println("请输入:"); +// String zf = sc.next(); +// int cd = zf.charAt(0); +// System.out.println(zf); +// System.out.println(cd); +// if (cd>=97&cd<=97+25|cd>=65&cd<=65+25){ +// System.out.println("是字母"); +// }else { +// System.out.println("不是字母"); +// } +// 3 +// Scanner sc = new Scanner(System.in); +// System.out.println("请输入:"); +// int year = sc.nextInt(); +// if (year%4==0&year%100 != 0|year%400==0){ +// System.out.println(year+"是闰年"); +// }else { +// System.out.println("不是闰年"); +// } +// 4 +// Scanner sc = new Scanner(System.in); +// System.out.println("请输入三位数:"); +// int sxh = sc.nextInt(); +// int ge = sxh%10; +// int shi = sxh/10%10; +// int bai = sxh/100; +// if (ge*ge*ge+shi*shi*shi+bai*bai*bai==sxh){ +// System.out.println(sxh+"是水仙花"); +// }else { +// System.out.println("不是水仙花"); +// } +// 5 +// Scanner sc = new Scanner(System.in); +// System.out.println("请输入五位数"); +// int hw = sc.nextInt(); +// int ge = hw%10; +// int shi = hw/10%10; +// int bai = hw/100%10; +// int qian = hw/1000%10; +// int wan = hw/10000; +// System.out.println(hw); +// if (ge == wan&shi == qian){ +// System.out.println(hw+"是回文"); +// }else { +// System.out.println("不是回文"); +// } + } +} + +``` + +二进制:有0和1组成,代码中以0b开头 + +八进制:有0~7组成,代码中以0开头 + +十进制:有0~9组成,前面不加任何后缀 + +十六进制:有0~9加a~f组成,代码中以0x开头 + +```Java +System.out.println(0b17) +System.out.println(017) +System.out.println(17) +System.out.println(0x17) +``` + +任意进制转换为十进制 + +公式:系数*基数的权次幂相加 + +系数:进制数上面的数字 + +基数:进制数 + +权:从右边到左依次为0.1.2.3.4.5.... diff --git "a/21 \345\210\230\345\260\221\346\265\267/20230329 Java\345\237\272\347\241\200\350\257\255\346\263\225\345\244\215\344\271\240.md" "b/21 \345\210\230\345\260\221\346\265\267/20230329 Java\345\237\272\347\241\200\350\257\255\346\263\225\345\244\215\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..a7414a97b67ed0ceab6b01844686616bfb64c736 --- /dev/null +++ "b/21 \345\210\230\345\260\221\346\265\267/20230329 Java\345\237\272\347\241\200\350\257\255\346\263\225\345\244\215\344\271\240.md" @@ -0,0 +1,262 @@ +强制转换 + +```java +byte a = 10; +byte aa = (byte)(a+100); +``` + +自动转换 + +```java +byte b = 10; +int bb = b+10; +``` + +三元函数 + +```java +int i1 = 100; +int i2 = 200; +System,out,println(i1>i2?i1:i2); +符合条件则输出i1 +不符合条件则输出i2 +``` + + + +# 巩固题 + +## 1、强制类型转换练习 + +(1)先声明两个byte类型的变量b1,b2,并分别赋值为10和20,求b1和b2变量的和,并将结果保存在byte类型的变量b3中,最后输出b3变量的值 + +(2)先声明两个short类型的变量s1,s2,并分别赋值为1000和2000,求s1和s2变量的和,并将结果保存在short类型的变量s3中,最后输出s3变量的值 + +(3)先声明1个char类型的变量c1赋值为'a',再声明一个int类型的变量num赋值为5,求c1和num变量的和,并将结果将结果保存在char类型的变量letter中,最后输出letter变量的值。 + +(4)先声明两个int类型的变量i1,i2,并分别赋值5和2,求i1和i2的商,并将结果保存在double类型的变量result中,最后输出result变量的值。如何得到结果2.5呢? + +![image-20211219161207200](02_Java基础语法扩展作业图片/image-20211219161207200.png) + + + + + +## 2、按步骤编写代码,效果如图所示: + +![](02_Java基础语法扩展作业图片/4.jpg) + +1. 定义两个int类型变量a1和a2,分别赋值10,11,判断变量是否为偶数,拼接输出结果 +2. 定义两个int类型变量a3和a4,分别赋值12,13,判断变量是否为奇数,拼接输出结果 + + + +## 3、计算时间 + +案例:为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时? + +![1557879127503](02_Java基础语法扩展作业图片/6.png) + +1. 定义一个int类型变量hours,赋值为89 +2. 定义一个int类型变量day,用来保存89小时中天数的结果 +3. 定义一个int类型变量hour,用来保存89小时中不够一天的剩余小时数的结果 +4. 输出结果 + + + + + +## 4、案例:今天是周2,100天以后是周几? + +![1557879464870](02_Java基础语法扩展作业图片/7.png) + +1. 定义一个int类型变量week,赋值为2 +2. 修改week的值,在原值基础上加上100 +3. 修改week的值,在原值基础上模以7 +4. 输出结果,在输出结果的时候考虑特殊值,例如周日 + + + + + +## 5、案例:求三个整数x,y,z中的最大值 + +![1557879847378](02_Java基础语法扩展作业图片/8.png) + +1. 定义三个int类型变量,x,y,z,随意赋值整数值 +2. 定义一个int类型变量max,先存储x与y中的最大值(使用三元运算符) +3. 再次对max赋值,让它等于上面max与z中的最大值(使用三元运算符) +4. 输出结果 + + + +## 6、案例:判断今年是否是闰年 + +闰年的判断标准是: + +​ 1)可以被4整除,但不可被100整除 + +​ 2)可以被400整除 + +![1557902649882](02_Java基础语法扩展作业图片/9.png) + +1. 定义一个int类型变量year,赋值为今年年份值 +2. 定一个一个boolean类型变量,用来保存这个年份是否是闰年的结果 +3. 输出结果 + + + +## 7、华氏度转摄氏度 + +案例:小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。 + +![1557903785834](02_Java基础语法扩展作业图片/1557903785834.png) + +![1557903814057](02_Java基础语法扩展作业图片/1557903814057.png) + +1. 定义一个double类型变量hua,存储华氏温度80 +2. 定义一个double类型变量she,存储摄氏温度,根据公式求值 +3. 输出结果 + + + + + +```java +package org.example; + +import java.util.Random; +import java.util.Scanner; + +public class fx { + public static void main(String[] args) { +// 1.1 +// byte b1 = 10; +// byte b2 = 20; +// byte b3 = (byte)(b1+b2); +// System.out.println(b3); +// 1.2 +// short s1 = 1000; +// short s2 = 2000; +// short s3 = (short) (s1+s2); +// System.out.println(s3); +// 1.3 +// char c1 = 'a'; +// int num = 5; +// char letter = (char) (c1+num); +// System.out.println(letter); +// 1.4 +// int i1 = 5; +// int i2 = 2; +// double result = i1+i2; +// System.out.println(result); +// double er = (double) i1/i2; +// System.out.println(er); +// 2 +// int a1 = 10; +// int a2 = 11; +// System.out.println(a1+"是偶数?"+(a1%2==0)); +// System.out.println(a2+"是偶数?"+(a2%2==0)); +// int a3 = 12; +// int a4 = 13; +// System.out.println(a3+"是奇数"+(a3%2!=0)); +// System.out.println(a4+"是奇数"+(a4%2!=0)); +// 3 +// int hours = 89; +// int day = hours/24; +// int hour=hours%24; +// System.out.println("为了抵抗洪水,战士连续作战"+hours+"小时:"+hours+"是"+day+"天"+hour+"小时"); +// 4 +// int week = 2; +// week+=100; +// week%=7; +// if (week==0){ +// System.out.println("周日"); +// }else System.out.println("今天是周2,100天以后是周"+week); +// 5 +// Random ra = new Random(); +// int x = 10; +// int y = 20; +// int z = 30; +// int de = x>y?x:y; +// int dy = de>z?de:z; +// System.out.println(dy); +// 6 +// Scanner sc = new Scanner(System.in); +// System.out.println("请输入:"); +// int year = sc.nextInt(); +// boolean zj =(year%4==0&year%100!=0|year%400==0); +// if (zj){ +// System.out.println(year+"是闰年"); +// }else System.out.println(year+"不是闰年"); +// 7 +// double hua = 80; +// double she = (hua-32)/1.8; +// System.out.println("华氏度"+hua+"转为摄氏度是"+she); + } +} + +``` + + + +# 拔高题 + +## 第一题 + +```java +如下代码的计算结果是: +int i = 1; +i *= 0.2; +i++; +System.out.println("i=" + i); +``` + +## 第二题 + +```java +如下代码的运算结果是: +int i = 2; +i *= i++; + +int j = 2; +j *= j+1; + +int k = 2; +k *= ++k; + +System.out.println("i=" + i); +System.out.println("j=" + j); +System.out.println("k=" + k); +``` + +## 第三题 + +```java +如下代码的运算结果是: +int a = 3; +int b = 1; +if(a = b){ + System.out.println("Equal"); +}else{ + System.out.println("Not Equal"); +} +``` + +## 第四题 + +```java +如下代码的运算结果是: +int a = 8, b = 3; +System.out.println(a>>>b); +System.out.println(a>>>b | 2); +``` + +## 第五题 + +如何用最有效的的方法计算2乘以8 + +```java +System.out.println(2*8); +``` + diff --git "a/21 \345\210\230\345\260\221\346\265\267/20230402 Java\346\265\201\347\250\213\346\216\247\345\210\266\345\244\215\344\271\240.md" "b/21 \345\210\230\345\260\221\346\265\267/20230402 Java\346\265\201\347\250\213\346\216\247\345\210\266\345\244\215\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..8e5e257c265beaddb646467524cf3c7b5998081a --- /dev/null +++ "b/21 \345\210\230\345\260\221\346\265\267/20230402 Java\346\265\201\347\250\213\346\216\247\345\210\266\345\244\215\344\271\240.md" @@ -0,0 +1,185 @@ +switch判断语句 + +## 题目1 + +模拟计算器功能,对键盘录入的两个int类型的数据进行加、减、乘、除的运算,并打印运算结果。 + +要求: + +​ 键盘录入三个整数,其中前两个整数代表参加运算的数据,第三个整数为要进行的运算(1:表示加法运算,2:表示减法运算,3:表示乘法运算,4:表示除法运算),演示效果如下: + +​ 请输入第一个整数: 30 + +​ 请输入第二个整数: 40 + +​ 请输入您要进行的运算(1:表示加法,2:表示减法,3:表示乘法,4:表示除法): 1 + +​ 控制台输出:30+40=70 + +### 训练提示 + +1. 用户录入了数据之后,用什么知识点去判断加减乘除四种不同的操作? + +### 解题方案 + +1. 使用switch判断语句完成。 + +### 操作步骤 + +1. 使用键盘录入三个变量。 +2. 使用switch判断语句对第三个变量进行判断,匹配要执行的操作。 +3. 在每一个case中分别对第一个变量和第二个变量进行不同的操作。 + + + +if判断语句 + +## 题目2(训练) + +李雷想买一个价值7988元的新手机,她的旧手机在二手市场能卖1500元,而手机专卖店推出以旧换新的优惠,把她的旧手机交给店家,新手机就能够打8折优惠。为了更省钱,李雷要不要以旧换新?请在控制台输出。 + +### 训练提示 + +1. 用什么知识点能够对不同购买方式的价格做判断? + +### 解题方案 + +1. 使用if...else语句判断 + +### 操作步骤 + +1. 计算不使用以旧换新时的花费。 +2. 计算使用以旧换新时的花费。 +3. 使用if..else语句判断哪种方式更省钱,并输出结果 + + + +循环语句 + +## 题目3(训练) + +已知2019年是猪年,请在控制台输出从1949年到2019年中所有是猪年的年份。 + +### 训练提示 + +1. 1949到2019有很多年?逐个判断这么多年份肯定要用循环。 +2. 用什么条件来判断是否是猪年? + +### 解题方案 + +1. 使用for循环逐年判断,根据2019是猪年这个条件,使用if来判断其他是猪年的年份。 + +### 操作步骤 + +1. 定义for循环,1949到2019的年份是循环次数。 +2. 对每个年份逐个判断,如果年份和2019的差值是12的倍数,说明这年是猪年 +3. 打印符合条件的年份 + + + + + +## 题目4(训练) + +有一个输出语句System.out.print("@")。使用这个语句,在控制台打印出一个五行的三角形,效果如下: +​ @ +​ @@ +​ @@@ +​ @@@@ +​ @@@@@ + +### 训练提示 + +1. 已知条件中只有一个@,如何产生多行的符号? +2. 每行的打印个数不同,循环的次数如何控制? + +### 解题方案 + +1. 使用for循环的嵌套完成。 + +### 操作步骤 + +1. 定义循环执行5次代表一共5行 +2. 定义内层循环执行i次代表每行打印的个数是i +3. 在内层循环中输出符号 +4. 每行结束之后执行换行操作 + + + +```java +import java.util.Scanner; + +public class j1 { + public static void main(String[] args) { +// 1 +// Scanner sc = new Scanner(System.in); +// System.out.println("请输入第一个整数"); +// double +// diyi = sc.nextInt(); +// System.out.println("请输入第二个整数"); +// int dier = sc.nextInt(); +// System.out.println("请输入要进行的运算方式(1:表示加法,2:表示减法,3:表示乘法,4:表示除法)"); +// int disan = sc.nextInt(); +// switch (disan){ +// case 1: +// System.out.println(diyi+"+"+dier+"="+(diyi+dier)); +// break; +// case 2: +// System.out.println(diyi+"-"+dier+"="+(diyi-dier)); +// break; +// case 3: +// System.out.println(diyi+"*"+dier+"="+(diyi*dier)); +// break; +// case 4: +// System.out.println(diyi+"/"+dier+"="+(double) (diyi/dier)); +// break; +// } +// +// 2 +// int xinji = 7988; +// int jiuji = 1500; +// double huanxi = xinji*0.8; +// if (xinji-jiuji=1;i--) { +// for (int j = 9; j >= i; j--) { +//// System.out.print(j + "*" + i + "=" + j * i + "\t"); +// } +// System.out.println(); +// } +// 4 +// for (int i = 5;i>=1;i--){ +// for (int j = 5;j>=i;j--){ +// System.out.print('@'); +// } +// System.out.println(); +// } +// for (int i = 1; i<=5;i++){ +// for (int j = 0;j