From 1dcbf09fd9957777a06a2abca3fb4a9b591f02d4 Mon Sep 17 00:00:00 2001 From: duroot <1269868690@qq.com> Date: Mon, 16 May 2022 21:16:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=B7=BB=E5=8A=A0=E7=9A=84=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=86=85=E5=AE=B9=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .nojekyll | 0 READMEB.md | 3 + _sidebar.md | 10 + docker-compose.yml | 18 + index.html | 26 ++ .../Day1-Java\346\246\202\350\277\260.md" | 144 ++++++ ...2\347\241\200\350\257\255\346\263\2251.md" | 320 +++++++++++++ ...2\347\241\200\350\257\255\346\263\2252.md" | 302 ++++++++++++ ...5\222\214while\345\276\252\347\216\257.md" | 156 +++++++ .../Day5-\345\276\252\347\216\257.md" | 355 ++++++++++++++ .../Day7-\346\225\260\347\273\204 .md" | 437 ++++++++++++++++++ .../README.md" | 3 + .../README.md" | 1 + .../README.md" | 1 + .../README.md" | 1 + 16 files changed, 1779 insertions(+) create mode 100644 .gitignore create mode 100644 .nojekyll create mode 100644 READMEB.md create mode 100644 _sidebar.md create mode 100644 docker-compose.yml create mode 100644 index.html create mode 100644 "\347\254\254\344\270\200\351\230\266\346\256\265/Day1-Java\346\246\202\350\277\260.md" create mode 100644 "\347\254\254\344\270\200\351\230\266\346\256\265/Day2-\345\237\272\347\241\200\350\257\255\346\263\2251.md" create mode 100644 "\347\254\254\344\270\200\351\230\266\346\256\265/Day3-\345\237\272\347\241\200\350\257\255\346\263\2252.md" create mode 100644 "\347\254\254\344\270\200\351\230\266\346\256\265/Day4-\346\235\241\344\273\266\351\200\211\346\213\251\350\257\255\345\217\245\345\222\214while\345\276\252\347\216\257.md" create mode 100644 "\347\254\254\344\270\200\351\230\266\346\256\265/Day5-\345\276\252\347\216\257.md" create mode 100644 "\347\254\254\344\270\200\351\230\266\346\256\265/Day7-\346\225\260\347\273\204 .md" create mode 100644 "\347\254\254\344\270\200\351\230\266\346\256\265/README.md" create mode 100644 "\347\254\254\344\270\211\351\230\266\346\256\265/README.md" create mode 100644 "\347\254\254\344\272\214\351\230\266\346\256\265/README.md" create mode 100644 "\347\254\254\345\233\233\351\230\266\346\256\265/README.md" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f1fe0f1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea/ +.git/ \ No newline at end of file diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/READMEB.md b/READMEB.md new file mode 100644 index 0000000..da2056b --- /dev/null +++ b/READMEB.md @@ -0,0 +1,3 @@ +# Headline + +> An awesome project. diff --git a/_sidebar.md b/_sidebar.md new file mode 100644 index 0000000..66c9679 --- /dev/null +++ b/_sidebar.md @@ -0,0 +1,10 @@ +* [1.第一阶段](docks/第一阶段) + * [Day1-Java概述](docks/第一阶段/Day1-Java概述) + * [Day2-基础语法1](docks/第一阶段/Day2-基础语法1) + * [Day3-基础语法2](docks/第一阶段/Day3-基础语法2) + * [Day4-条件选择语句和while循环](docks/第一阶段/Day4-条件选择语句和while循环) + * [Day5-循环](docks/第一阶段/Day5-循环) + * [Day7-数组](docks/第一阶段/Day7-数组) +* [2.第二阶段](docks/第二阶段) + * [2.1 mvc](docks/第二阶段/mvc) +* [3.第三阶段](docks/第三阶段) \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9b99aad --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3' +services: + + java-note-md: + image: nginx:stable + container_name: java-note-vuepress-516 + environment: + - TZ=Asia/Shanghai + ports: + - 3000:80 + volumes: + - /etc/localtime:/etc/localtime:ro + - ~/docker/nginx/logs:/var/log/nginx + - .:/usr/share/nginx/html + # - ./docs/.vuepress/dist:/usr/share/nginx/html + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..8345cc9 --- /dev/null +++ b/index.html @@ -0,0 +1,26 @@ + + + + + Document + + + + + + +
+ + + + + + diff --git "a/\347\254\254\344\270\200\351\230\266\346\256\265/Day1-Java\346\246\202\350\277\260.md" "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day1-Java\346\246\202\350\277\260.md" new file mode 100644 index 0000000..8794503 --- /dev/null +++ "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day1-Java\346\246\202\350\277\260.md" @@ -0,0 +1,144 @@ +[TOC] + + + +# Java概述 + +姓名:陈云 + +TEL:18571593511 + +![image-20210510110920472](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210510110920.png) + +## 一.各阶段介绍 + +``` +1;java基础语法(蜗牛五子棋,蜗牛ATM,蜗牛用户管理系统) +2:javaweb开发(蜗牛图书商城) +3:企业级开发框架(k15教育,从项目池中选一个) +4:微服务开发(2个项目) + +第一阶段知识点 + 变量,数据类型,运算符,条件选择语句,循环语句,数组,面向对象,集合,io...多线程,网络编程 + + +``` + +## 二.计算机语言的发展史(了解) + +``` +1.机器语言 +2.汇编 +3.高级计算机语言 +``` + +## 三.java语言的发展史(了解) + +``` +java之父-詹姆斯-高斯林 +java早期属于SUN公司,后来被Oracle(甲骨文公司收购) +java在1995年问世,被广泛使用的版本java8(java1.8)--最经典,最稳定的版本 +``` + +## 四.java的体系结构 + +``` +JAVASE:java基础语法 +JAVAME:消费电子产品(嵌入式开发) +JAVAEE:企业级开发技术 +``` + +## 五.java环境搭建 + +### 1.jdk安装 + +![image-20210621150319618](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210621150319.png) + +正常安装--下一步 + +如果要改路径,需要提前新建2个文件夹jdk和jre + +### 2.环境变量配置 + +``` +配置环境变量的目的:为了在电脑的任意目录都可以执行java的相关命令 +步骤 + 计算机->右键->属性->高级系统设置->环境变量->在系统变量中做配置 + JAVA_HOME:JDK的安装路径 + Path:JDK的bin路径 + classpath:省略 +``` + +![image-20210621165155928](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210621165156.png) + +## 六.java初体验 + +### 步骤 + +1.新建一个文本文档 + +2.把文件的后缀显示出来 + +3.改文件名为 HelloWorld.java + +4.编辑这个文件 + +5.写入如下代码 + +```java +public class HelloWorld{ + + public static void main(String[] args){ + + System.out.println("Hello World"); + } + +} +``` + +6.使用javac编译java程序得到class字节码文件 + +7.使用java运行class字节码文件 + +![image-20210621154632423](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210621154632.png) + + + +## 七.java程序的运行机制 + +![image-20210621165515309](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210621165515.png) + +## 八.java语言的特点 + +### 1.JVM + +​ jvm是java的核心,jvm能执行字节码文件 + +### 2.跨平台 + +``` +程序一次开发,处处运行 +``` + +跨平台的原理 + +![image-20210621172825649](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210621172825.png) + +## 九.制表符(了解) + +``` +\t:相当于Tab键 +\n:换行 +``` + +## 十.进制(了解) + +``` +进制就是一种计数的方式 +十进制:由0-9数字组成 +二进制:由0-1数字组成 +八进制:由0-7八个数字组成 +十六进制:由0-9 A B C D E F +``` + +![image-20210621175852067](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210621175852.png) \ No newline at end of file diff --git "a/\347\254\254\344\270\200\351\230\266\346\256\265/Day2-\345\237\272\347\241\200\350\257\255\346\263\2251.md" "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day2-\345\237\272\347\241\200\350\257\255\346\263\2251.md" new file mode 100644 index 0000000..f870987 --- /dev/null +++ "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day2-\345\237\272\347\241\200\350\257\255\346\263\2251.md" @@ -0,0 +1,320 @@ +# Day2-基础语法 + +## 一、集成开发环境搭建(IDE) + +eclipse 免安装(解压即用) + +IDEA + +### 1.安装eclipse + +官网:https://www.eclipse.org/downloads/ + +​ 将资料中的![image-20210310093416307](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310093422.png)复制到本机,然后解压缩。解压缩后目录结构如下 + +![image-20210310093723965](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310093724.png) + +### 2.启动eclipse + +![image-20210119095004498](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210119095004.png) + +![image-20210119095354436](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210119095354.png) + +### 3.设置编码格式UTF-8 + +![image-20210310093945958](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310093946.png) + +![image-20210310094004715](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310094004.png) + +### 4.快捷操作 + +``` +字体放大 Ctrl + + +字体缩小 Ctrl - + +保存 Ctrl s + +复制 Ctrl c + +剪切 Ctrl x + +粘贴 Ctrl v + +撤销 Ctrl z +``` + + + +## 二、变量 + +### 1、变量的作用 + +``` + 存储数据 +``` + +### 2、什么是变量 + +``` +变量就是计算机内存中的一块区域 +``` + +![image-20210622114720607](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210622114726.png) + +### 3、变量的语法 + +```java +语法 + 1.创建变量 + 数据类型 变量名; + 2.给变量赋值 + 变量名 = 值; + 上面的两步可以合并成一步 + 数据类型 变量名 = 值 + + 3.取出变量的值 + System.out.println(变量名); + + 1.创建变量 + int x; + 2.给变量赋值(把数据存放到变量中) + x = 9999; + 上面的2个步骤可以合并成一个步骤 + int x = 9999; + + +``` + +**案例** + +```java +public class Lesson3 { + public static void main(String[] args) { + //创建变量X,并把9999存放到变量X中 + int x = 9999; + //创建变量y,并把4321存放到变量y中 + int y = 4321; + //创建变量z,并把x*y的结果存放到变量z中 + int z = x*y; + + //输出变量x,y,z的值 + System.out.println(x); + System.out.println(y); + System.out.println(z); + } +} +``` + +### 4、变量的特点 + +```java +变量名不能重复 +变量的值可以改变 + + 丽丽去年19岁 + int age = 19; + System.out.println(age); + 今年20岁 + age = 20; + System.out.println(age); + 明年21岁 + age = 21; + System.out.println(age); +``` + + + +## 三、常量 + +```java +常量是程序在运行的过程中,值不能改变的量 +语法 + final 数据类型 常量名 = 值 + +案例 + final int A = 20; + System.out.println(A); +``` + + + +## 四、注释 + +### 1.注释的作用: + +``` +对程序解释说明,提高程序的可读性 +``` + +### 2.注释的特点: + +``` +注释不参与程序的执行 +``` + +### 3.注释的分类 + +​ a.单行注释 + +``` +// +快捷键:Ctrl / +``` + +​ b.多行注释 + +``` +/* +* +* 第一行 +* 第二行 +* 第三行 +* 第四行 +*/ +``` + +​ c.文档注释 + +``` +/** + * lesson4 + * 变量和常量 + */ +``` + +## 五、数据类型 + + + +### 1.数据类型 + +![image-20210310094628472](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310094628.png) + +### 2.基本数据类型详解 + +#### a.整数类型 + +![image-20210310095054970](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310095055.png) + +------ + +#### b.浮点类型 + +![image-20210310095142643](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310095142.png) + +------ + +#### c.字符和布尔 + +![image-20210310095250843](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310095250.png) + + + +## 六、数据类型转换 + +在实际的开发中我们经常需要将不同的数据类型之间进行转换,在java中进行不同数据类型之间的转换有两种方式: + +​ 自动类型转换(隐式转换) + +​ 强制类型转换(显示转换) + +``` +数据类型按容器大小排序为: +byte <- short,char <- int <- long <- float <- double +``` + +### 1.自动类型转换 + +``` +数据从容器小的变量转换到容器大的变量 +``` + +``` +案例 + byte a = 10; + short b = a; + int c = a; + double d = a; + System.out.println(d); +``` + +### 2.强制类型转换 + +``` +数据从容器大的变量转换到容器小的变量,需要加强制类型转换符; +在强制类型转换的时候容易发生精度丢失,在使用的时候要格外小心 +``` + +``` +案例 + double x = 3.64; + //强制类型转换 + byte y = (byte)x; + System.out.println(y); +``` + + + +### 3.注意 + +``` +布尔类型不能跟其它类型转换 +byte short char这三种类型在参与运算的时候,它们会先转为int,再参与运算 +多种数据类型混合运算时,结果是容器最大的那个类型 +``` + +``` +案例 + //byte short char参与运算时的结果 + byte a1 = 1; + short a2 = 2; + char a3 = 'a'; + int b1 = a1 + a2 + a3; + System.out.println(b1); + + //多种数据类型混合运算的结果 + int x1 = 1; + double x2 = 1; + double y1 = x1 + x2; + System.out.println(y1); +``` + + + +## 七、标识符和关键字 + +### 1.标识符 + +``` +简单点理解:就是所有名字的统称 +``` + +![image-20210310100025054](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310100025.png) + +``` +标识符组成规则: + 可以由大小写字母,数字,_,$组成 + 不能以数字开头 + 不能是java关键字 +``` + +``` +标识符命名规范: + 见名知意 + 变量:小驼峰(第一个单词首字母小写,从第二个单词开始,每个单词的首字母大写) + 例如:int studentAge; + 类:大驼峰(每一个单词的首字母都大写) + 常量:所有的单词都大写,如果由多个单词组成,多个单词之间使用_连接 + 例如:final String STUDENT_SEX; +``` + + + +### 2.关键字 + +​ 关键字可以被理解为特殊的标识符,区别就是关键字是Java语言中已经被赋予特定意义的一些单词,所以编程人员在自己定义标识符的时候就不可以再次使用。 + +![image-20210119160359536](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210119160359.png) + +## \ No newline at end of file diff --git "a/\347\254\254\344\270\200\351\230\266\346\256\265/Day3-\345\237\272\347\241\200\350\257\255\346\263\2252.md" "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day3-\345\237\272\347\241\200\350\257\255\346\263\2252.md" new file mode 100644 index 0000000..58f8db9 --- /dev/null +++ "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day3-\345\237\272\347\241\200\350\257\255\346\263\2252.md" @@ -0,0 +1,302 @@ +[TOC] + + + +# Day3-基础法语 + +## 一、运算符 + +### 1.赋值运算符 = + +``` +把右边的结果赋值给左边的变量 + int a = 10 + 5; +``` + +![image-20210310111105609](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310111105.png) + +### 2.算术运算符 + +| 运算符 | 运算 | 示例 | 结果 | +| ------ | ------------ | ------------------ | ---- | +| + | 加法 | int a=5,b=3,c=a+b; | c=8 | +| - | 减法 | int a=5,b=3,c=a-b; | c=2 | +| * | 乘法 | int a=5,b=3,c=a*b; | c=15 | +| / | 除法 | int a=5,b=3,c=a/b; | c=1 | +| % | 模(取余数) | int a=5,b=3,c=a%b; | c=2 | + +**案例** + +![image-20210623174425382](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210623174425.png) + +### 3.比较运算符(关系运算符) + +比较运算符用来比较的两边操作数,结果都是boolean的,只有true和false两种结果。 + +| 运算符 | 运算 | 示例 | 结果 | +| ------ | -------- | ---- | ----- | +| == | 相等于 | 4==3 | false | +| != | 不等于 | 4!=3 | true | +| < | 小于 | 4<3 | false | +| > | 大于 | 4>3 | true | +| <= | 小于等于 | 4<=3 | false | +| >= | 大于等于 | 4>=3 | true | + +注意:1、使用比较运算符的时候,要求两种数据类型必须一致。2、byte、short、char 会自动提升至int + +**案例** + +![image-20210623174550053](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210623174550.png) + +### 4.逻辑运算符 + +![image-20210623104917236](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210623104917236.png) + +``` + 逻辑运算符 + 所有的逻辑运算符,结果都是布尔类型 + 与(并且) + && + 左右两边同时为真,结果为真,否则为假 + 或(或者) + || + 左右两边同时为假,结果为假,否则为真 + 非(取反) + ! + 真取反为假,假取反为真 +``` + +**案例** + +![image-20210623174848906](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210623174849.png) + +### 5.三元运算符 + +![image-20210623175136143](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210623175136.png) + +### 6.自运算符 + +​ 自增++ 相当于变量本身+1 + +​ 自减-- 相当于变量本身+1 + +​ 注意的点: + +​ 如果自运算符在变量的前面 ,先做自运算,再得到结果 + +​ 如果自运算符在变量的后面,先输出变量的值,在做自运算符 + +**案例** + +```java + +public class Lesson2 { + + public static void main(String[] args) { + int a = 5; + + a++;//相当于a = a + 1 + ++a;//相当于a = a + 1 + a++; + System.out.println(a); + + //++在变量的前面,先加1,再输出变量的值 + System.out.println(++a); + //++在变量的后面,先输出变量的值,再加1 + System.out.println(a++); + System.out.println(a); + + + + int b = 4; + b++; + ++b; //输出 b + System.out.println(b++);//6 7 + System.out.println(b++);//7 8 + System.out.println(++b);//9 9 + System.out.println(b++);//9 10 + System.out.println(++b);//11 11 + System.out.println(b);//11 + + + int c = 5; + + //c 6 7 8 9 + int d = ++c + c++ + c++ + ++c; + + + //问最终d=? c=? + + + + + int i = 5; + i--;//相当于 i = i - 1 + --i;//相当于 i = i - 1 + //--在变量的后面,先输出变量的值,在减1 + //输出 i + System.out.println(i--);//3 2 + //--在变量的前面,先减1,再输出变量的值 + System.out.println(--i);//1 1 + System.out.println(i--);//1 0 + System.out.println(i); //0 + + + int k = 5; + // 6 7 6 5 + int h = ++k + k++ + --k + k--; +// h = 6 + 6 + 6 + 6 + System.out.println(k); + System.out.println(h); + + } +} +``` + + + +### 7.复合的赋值运算符 + +| += | a += 3 | 相当于 a = a + 3 | +| ---- | ------ | ---------------- | +| -= | a -= 2 | 相当于 a = a -2 | +| *= | a *= 4 | 相当于 a = a * 4 | +| /= | a /= 5 | 相当于 a = a / 3 | +| %= | a %= 3 | 相当于a = a % 3 | + +**案例** + +```java + +public class Lesson3 { + public static void main(String[] args) { + int a = 5; + a += 2;//相当于 a = a + 2 + System.out.println(a); + a -= 3;//相当于 a = a - 3 + System.out.println(a); + a *= 2;//相当于 a = a * 2 + System.out.println(a); + a /= 4;//相当于 a = a / 4 + System.out.println(a); + a %= 2;//相当于 a = a % 2 + System.out.println(a); + + //复合的赋值运算符自带 数据类型强制转换 + byte b = 5; + b += 2;//相当于 b = (byte) (b + 2) + System.out.println(b); + } +} + +``` + +### 8.运算符的优先级 + +![image-20210203122356029](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122402.png) + +``` +在做算术运算的时候,善于使用() +``` + +### 9.运算符补充 + +``` + 补充 + 1.+ + 基本数据类型用+运算,是做加法运算 + 任意的数据类型跟字符串使用+的时候,是做字符串拼接,结果是字符串类型 + + 2.运算符的优先级 + 在做算术运算的时候,善于使用() + 3.比较两个变量的值是否相等 + 比较两个基本类型变量的值是否相等,使用== + 比较两个引用类型变量的值是否相等,使用equals() +``` + + + +## 二、输入 + +```java +import java.util.Scanner; + +/** + * 接收用户的输入 + */ +public class Lesson5 { + public static void main(String[] args) { + //1.创建扫描器 + Scanner input = new Scanner(System.in); + + System.out.println("请输入一个整数"); + //2.接收用户输入一个整数 + int n = input.nextInt(); + System.out.println("您输入的是"+n); + + System.out.println("请输入一个小数"); + //3.接收用户输入一个小数 + double m = input.nextDouble(); + System.out.println("您输入的是"+m); + + System.out.println("请输入一个字符串"); + //4.接收用户输入一个字符串 + String s = input.next(); + System.out.println("您输入的是:"+s); + } +} +``` + + + +## 三、if条件选择语句 + +### 1.基本if语句 + +if选择结构是根据条件判断结果选择不同的处理 + +![image-20210203122431655](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122431.png) + +![image-20210623175631264](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210623175631.png) + +```java + //定义变量存储王梁的销售额 + int sale = 20000; + if(sale > 10000) { + System.out.println("奖励iPhone12"); + } +``` + + + +### 2.条件选择语句-复杂的if选择结构 + +![image-20210203122501464](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122501.png) + +```java + //定义变量存储上个月的销售额 + int lastSale = 16000; + //定义变量存储这个月的销售额 + int thisSale = 9000; + if((lastSale>10000&&thisSale>10000)||lastSale>=15000) { + System.out.println("奖励iPhone12"); + } +``` + +### 3.使用if-else选择结构 + +![image-20210203122514273](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122514.png) + +```java + //如果曾子轩这周考试打了100分,奖励一朵小红花 + int thisScore = 90; + + if(thisScore == 100) { + System.out.println("奖励一朵小红花"); + }else { + System.out.println("做20个俯卧撑"); + } +``` + + + diff --git "a/\347\254\254\344\270\200\351\230\266\346\256\265/Day4-\346\235\241\344\273\266\351\200\211\346\213\251\350\257\255\345\217\245\345\222\214while\345\276\252\347\216\257.md" "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day4-\346\235\241\344\273\266\351\200\211\346\213\251\350\257\255\345\217\245\345\222\214while\345\276\252\347\216\257.md" new file mode 100644 index 0000000..bfa1f58 --- /dev/null +++ "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day4-\346\235\241\344\273\266\351\200\211\346\213\251\350\257\255\345\217\245\345\222\214while\345\276\252\347\216\257.md" @@ -0,0 +1,156 @@ + + +# JAVA基础语法 + +``` +快捷键 + 输出语句 + sout Alt + / + 代码联想 + Alt + / + +``` + +## 一、if条件选择语句 + +### 1.多分支if语句 + +![image-20210203122526770](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122526.png) + +![image-20210203122545258](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122545.png) + +**案例** + +``` +大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出 +一定的条件:高:180cm以上;富:财富1千万以上;帅:是。 +如果这三个条件同时满足,则:“我一定要嫁给他!!!” +如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。” +如果三个条件都不满足,则:“不嫁!” +``` + +![image-20210624190710500](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210624190710.png) + +### 2.if语句的嵌套 + +**案例** + +公司发年终奖,工龄满6个月才有年终奖,开发部奖励10万元,测试部奖励一辆车 + +![image-20210624190531857](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210624190538.png) + +## 二、switch条件选择语句 + +![image-20210203122612454](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122612.png) + +![image-20210624190755292](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210624190755.png) + +## 三、DEBUG(调试模式) + +在开发过程中如果代码出现错误自己又找不出来或者想搞清楚某段代码的执行顺序可以使用eclipse的调试模式。 + +### 使用步骤 + +**1.调试的第一步是增加断点,增加断点的方式很简单,只需要在断点停住的那行代码左侧双击即可,再次双击则断点消除。** + +![image-20210624190842219](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210624190842.png) + +**2.快捷键** + +``` +F6 下一大步 +``` + +## 四、while循环 + +![image-20210310170101557](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210310170101.png) + +案例:用循环输出1-100 + +```java +public class Lesson { + public static void main(String[] args) { + //停不下来的循环,称作死循环 + /** + * 循环三要素 + * 初始值 int i = 3; + * 循环结束的条件 i > 0 + * 自变 i = i - 1; i-- + */ + int i = 1; + + while(i <= 100) { + System.out.println("-------"+i);//循环体 + i++; + } + } +} +``` + +案例: + +**循环求1-100的和** + +```java +public class Lesson { + public static void main(String[] args) { + //使用循环输出1-100 //求1-100的和 + int i = 1; + + int sum = 0; + while(i <= 100) { + sum = sum + i; + i++; + } + System.out.println(sum); + } +} +``` + +案例: + +**用while循环求5的阶乘** + +```java + int m = 1; + int n = 1; + while(n<=5) { + m = m * n; + n++; + } + System.out.println(m); +``` + +## 五、do-while循环 + +![image-20210122103931098](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122706.png) + +![image-20210122104019434](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122713.png) + +### 案例 + +```java +// 经过几天的准备,李明同学准备开始自己的毕业论文, +// 他先写自己的毕业论文,然后导师检查是否达标。如果不达标,则继续写。 + Scanner input = new Scanner(System.in); + + boolean result; + do { + System.out.println("小明写毕业论文"); + System.out.println("导师检查毕业论文,通过请输入true,不通过请输入false"); + result = input.nextBoolean(); + }while(!result); + + System.out.println("恭喜你,论文通过了!!!"); +``` + +### while跟do-while的区别 + +```java +while是先判断在执行 +do-while是先执行在判断 + +while执行0次或多次 +do-while执行1次或多次 +``` + diff --git "a/\347\254\254\344\270\200\351\230\266\346\256\265/Day5-\345\276\252\347\216\257.md" "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day5-\345\276\252\347\216\257.md" new file mode 100644 index 0000000..4a8af99 --- /dev/null +++ "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day5-\345\276\252\347\216\257.md" @@ -0,0 +1,355 @@ +# 循环 + +## 一、for循环 + +### 1.语法 + +```java +for(初始值;循环条件;自变){ + 循环体 +} +``` + +```java + /** + * for循环是while循环语法的升级 + * 把循环的三要素放到了一起,提高了程序的可读性 + */ + for(int i = 0;i<10;i++) { + System.out.println(i); + } +``` + +### 2.案例 + +```java +// 1.打印1~100之间 所有的偶数 + for(int i=1;i<=100;i++) { + if(i%2==0) { + System.out.println(i); + } + } +// 2.求1~100之间 所有偶数的和 + int sum = 0; + for(int i=1;i<=100;i++) { + if(i%2==0) { + sum = sum + i; + } + } + System.out.println(sum); +// 3.求1~100之间 偶数出现的次数 + int n = 0; + for(int i=1;i<=100;i++) { + if(i%2==0) { + n++; + } + } + System.out.println(n); +``` + +```java +// 4.求出所有的水仙花数,水仙化数为3位数,并且每位上的数字的立方和等于该数本身,比如153 提示 5的立方计算方式 5*5*5 + for(int i=100;i<=999;i++) { + int bai = i/100; + int shi = i/10%10; + int ge = i%10; + int m = bai*bai*bai + shi*shi*shi + ge*ge*ge; + if(m == i) { + System.out.println(i); + } + } +``` + +## 二、流程控制语句 + +```java +break(结束)--提前结束循环 +continue(继续)--结束本次循环,继续下一次循环 +``` + +### 1.break + +![image-20210122152937851](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122730.png) + +```java + //break + System.out.println("开始1"); + for(int i=1;i<=10;i++) { + //当i等于5时结束循环 + if(i == 5) { + break; + } + System.out.println("余操跑第"+i+"圈"); + } +``` + +### 2.continue + +![image-20210122153013792](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210203122744.png) + +```java + //continue + System.out.println("开始2"); + for(int i=1;i<=10;i++) { + //当i等于5时跳过本次循环,继续下一次循环 + if(i == 5) { + continue; + } + System.out.println("余操跑第"+i+"圈"); + } +``` + +### 3.案例 + +```java +public class Lesson4 { + public static void main(String[] args) { + //1mm厚的白纸,折叠多少次超过100mm + //统计循环次数 + int count = 0; + //纸的厚度 + int height = 1; + while(true) { + //每次折叠纸的厚度翻倍 + height = height*2; + //记录循环执行的次数 + count++; + //如果纸的厚度超过100结束循环 + if(height > 100) { + break; + } + } + //输出结果 + System.out.println(count); + } +} +``` + +## 三.总结 + +``` +如果知道要循环多少次,优先选择for循环 + +如果不知道要循环多少次,优先选择while循环 +``` + +## 四.ASCII + +所有的计算机设备都内置的有一张表格,在这个表格里面描述了每一个常见字符所对应的十进制数 + +![image-20210625182307769](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210625182308.png) + +### 案例1 + +```java +// char c = '9'; +// int d = c; +// System.out.println(d); +``` + +### 案例2 + +```java +import java.util.Scanner; + +public class Lesson6 { + + public static void main(String[] args) { + //接收用户输入一个字符,判断用户输入是数字还是大写字母,还是小写字母,还是其它符号 + Scanner input = new Scanner(System.in); + while(true) { + System.out.println("请输入一个字符"); + //接收用户输入一个字符串 + String str = input.next(); + //把字符串转换为字符 + char c = str.charAt(0); + //把字符转整数 + int n = c; + System.out.println("字符"+c+"的ASCII码是"+n); + + if(n>=48&&n<=57) { + System.out.println("您输入的是数字"); + }else if(n>=65&&n<=90) { + System.out.println("您输入的是大写字母"); + }else if(n>=97&&n<=122) { + System.out.println("您输入的是小写字母"); + }else { + System.out.println("您输入的是其它符号"); + } + } + } + +} + +``` + +### 案例3 + +```java +import java.util.Scanner; + +public class Lesson7 { + public static void main(String[] args) { + //接收用户输入一个字母,如果是大写字母,把它转为小写字母,如果是小写字母,把它转为大写字母 + Scanner input = new Scanner(System.in); + + while(true) { + System.out.println("请输入一个字符"); + //接收用户输入一个字符串 + String str = input.next(); + //把字符串转换为字符 + char c = str.charAt(0); + if(c >= 65 && c <= 90) {//判断是否是大写字母 + //大写转小写 + char c2 = (char)(c+32); + System.out.println("转换后的结果为:"+c2); + }else if(c >= 97 && c <= 122) {//判断是否是小写字母 + //大写转小写 + char c2 = (char)(c-32); + System.out.println("转换后的结果为:"+c2); + } + } + } + +} +``` + +### 案例4 + +```java +public class Lesson8 { + + public static void main(String[] args) { + //输出不换行 + System.out.print("*******"); + //输出并换行 + System.out.println("-------"); + System.out.println("++++++++++"); + } +} +``` + +### 案例5 + +```java +使用循环将a - j这十个字母,按下图的要求的格式输出(使用ascii码) + +a b + +c d + +e f + +g h + +i j + + + +public class Lesson9 { + + public static void main(String[] args) { + /** + * a-j对应的ASCII码是97-106 + * 使用循环得到97-106这样10个数字 + */ + System.out.println("开始"); + for(int i=97;i<=106;i++) { + //输出不换行 + System.out.print((char)i+" "); + + //如果i是偶数换行 + if(i%2==0) { + System.out.println(); + } + } + + //生产0-100之间的随机数 + int n = (int) (Math.random()*100); + + } + +} +``` + +## 五.综合应用 + +### 案例一 + +![image-20210625184404209](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210625184404.png) + +```java +import java.util.Scanner; + +public class Lesson91 { + public static void main(String[] args) { + //创建扫描器 + Scanner input = new Scanner(System.in); + System.out.println("欢迎使用ATM"); + //定义变量存放余额 + double money = 0; + while(true) { + System.out.println("请选择服务种类1查询账号余额 2存款 3取款 0退出"); + int choose = input.nextInt(); + //使用switch选择功能 + switch (choose) { + case 1: + System.out.println("您的余额为:"+money); + break; + case 2: + System.out.println("请输入存款金额"); + double inMoney = input.nextDouble(); + money = money + inMoney; + break; + case 3: + System.out.println("请输入取款金额"); + double outMoney = input.nextDouble(); + money = money - outMoney; + break; + case 0: + System.out.println("bye bye"); + System.exit(0); + break; + default: + break; + } + } + } + +} +``` + +### 案例二 + +``` +猜数字游戏 +步骤 +1.程序生产一个随机数 + //生产0-100之间的随机数 + int n = (int) (Math.random()*100); + 2.让用户循环输入你要猜的数字 +3.如果用户输入的数字比随机数小,则提示小了 +4.如果用户输入的数字比随机数大,则提示大了 +5,如果猜对了,则提示猜对了,并结束循环 +``` + +![image-20210625184530376](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210625184530.png) + +```java + System.out.println("猜数字游戏"); + int n = (int) (Math.random()*100); + Scanner input = new Scanner(System.in); + while(true) { + System.out.println("请输入你猜的数字"); + int m = input.nextInt(); + if(m > n) { + System.out.println("大了"); + }else if(m < n) { + System.out.println("小了"); + }else { + System.out.println("恭喜您猜对了,bye bye"); + break; + } + } +``` + diff --git "a/\347\254\254\344\270\200\351\230\266\346\256\265/Day7-\346\225\260\347\273\204 .md" "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day7-\346\225\260\347\273\204 .md" new file mode 100644 index 0000000..5ecfd1e --- /dev/null +++ "b/\347\254\254\344\270\200\351\230\266\346\256\265/Day7-\346\225\260\347\273\204 .md" @@ -0,0 +1,437 @@ +# 数组 + +## 一、为什么需要数组 + +​ ![image-20210628105544011](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210628105550.png) + +## 二、数组概述(*) + +数组的定义 + +​ 数组是Java语言中常见的一种引用数据类型,它是具有相同数据类型的一组数据的集合。 + +``` + +存储在数组中的数据我们称之为数组元素,而数组元素是可以通过“数组名[下标]”这种方式来进行访问的。数组的下标也称为数组的索引,是从0开始。 +``` + + + +## 三、数组都具有以下主要特征(*) + +``` +存放到数组中的数据具有相同的数据类型 +数组的下标(索引)从0开始; +数组是具有一定长度的 +数组一旦创建,长度不可改变 +``` + +## 四、数组定义语法(*) + +![image-20210311143054503](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210311143054.png) + +``` +数组创建的语法 + //1.数组的声明 + //数据类型[] 数组名 + int[] arr; + //2.分配空间 + arr = new int[7]; + + //上面的两步可以合并成一步 + int[] arr2 = new int[7]; + + //或者 + //可以把数组的定义和赋值同时实现 + int[] arr3 = {1,2,3,4,5,6,7,8,9,0}; +``` + + + +## 五、数组的使用(*) + +​ **int[] arr = {1,2,3,4,5,6,7,8,9,0};** + +### 获取长度 + +```java + //获取数组的长度 + int len = arr.length; + System.out.println("数组长度为"+len); +``` + +### 增 + +``` +数组一旦创建,长度不可改变,容量不能增加 -- 没有新增的功能 +``` + +### 删 + +``` +数组一旦创建,长度不可改变,容量不能减少 -- 没有删除的功能 +``` + +### 改 + +```java + System.out.println("下标2以前的数组元素"+arr[2]); + //修改下标为2的数组元素 + arr[2] = 20; + System.out.println("下标2修改后的数组元素"+arr[2]); +``` + +### 查 + +```java + //4查 -- 查看数组元素 + int a = arr[5]; + System.out.println(a); +``` + +### 数组的遍历 + +```java + //数组的遍历 -- 使用for循环把数组的中的元素全部取出来 + for(int i=0;i arr[i]) { + min = arr[i]; + } + } + + System.out.println("最小值为"+min); + } +} +``` + +### 3.数组的反转 + +```java +/** + * 数组的反转 + * @author Administrator + * + */ +public class Lesson5 { + + public static void main(String[] args) { + int[] arr = {3,7,1,4,6}; + //定义一个临时变量 + int temp; + + //数组前面的元素跟数组后面的元素交换 + //交换的次数是数组的长度/2 + for(int i=0;i arr[i+1]) { + //互换数组的两个元素 + int temp = arr[i]; + arr[i] = arr[i+1]; + arr[i+1] = temp; + } + } + + //第三轮 + for(int i=0;i arr[i+1]) { + //互换数组的两个元素 + int temp = arr[i]; + arr[i] = arr[i+1]; + arr[i+1] = temp; + } + } + + + //第四轮 + for(int i=0;i arr[i+1]) { + //互换数组的两个元素 + int temp = arr[i]; + arr[i] = arr[i+1]; + arr[i+1] = temp; + } + } + + //遍历 + for (int i = 0; i < arr.length; i++) { + System.out.println(arr[i]); + } + + } + +} +``` + +**最终代码** + +```java +public class Lesson8 { + + public static void main(String[] args) { + int[] arr = {6,4,1,7,3}; + + for(int j=0;j arr[i+1]) { + //互换数组的两个元素 + int temp = arr[i]; + arr[i] = arr[i+1]; + arr[i+1] = temp; + } + } + } + //遍历 + for (int i = 0; i < arr.length; i++) { + System.out.println(arr[i]); + } + } + +} +``` + +**简化代码** + +```java + +public class Lesson8 { + + public static void main(String[] args) { + int[] arr = {6,4,1,7,3}; + + + for(int j=0;j arr[i+1]) { + //互换数组的两个元素 + int temp = arr[i]; + arr[i] = arr[i+1]; + arr[i+1] = temp; + } + } + } + + for (int i = 0; i < arr.length; i++) { + System.out.println(arr[i]); + } + } +} + +``` + + + +## 七、数组扩容 + +```java +import java.util.Arrays; + +/** + * 数组的扩容 + * @author Administrator + * + */ +public class Lesson7 { + + public static void main(String[] args) { + int[] arr = {3,7,1,4,6}; + //数组扩容--让arr数组的长度变为10 + + //使用系统提供的数组扩容的功能实现 + /** + * 1.创建长度为10的新数组 + * 2.把原来数组中的元素复制到新数组中 + * 3.把新数组赋值给arr + */ + arr = Arrays.copyOf(arr, 10); + + System.out.println("数组arr的长度为"+arr.length); + for (int i = 0; i < arr.length; i++) { + System.out.println(arr[i]); + } + } +} +``` + +## 八、二维数组(了解) + +![image-20210629110329178](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/chenyun/20210629110335.png) + +```java + +public class Lesson2 { + + public static void main(String[] args) { + //定义二维数组 + int[][] arr = new int[3][2]; + //向二维数组中存放数据 + arr[0][0] = 11; + arr[0][1] = 12; + + arr[1][0] = 13; + arr[1][1] = 14; + + arr[2][0] = 15; + arr[2][1] = 16; + + //从二维数组中取出数据 +// System.out.println(arr[1][0]); +// +// System.out.println(arr[0][1]); + + //二维数组的遍历 + for(int j=0;j