2021-03-06JAVA大数据Week1

前言

提示:本文要记录的大概内容:
JAVA


提示:以下是本篇文章正文内容,下面案例可供参考

<1> 第一节

一、JDK是什么?

示例:


JDK11 下载与安装
JDK 概述 JDK 全称 Java Development ToolKit,是 Java 语言开发工具包。JDK 是整个 JAVA 的核心,包括了 Java 运行环 境(Java Runtime Environment),一堆 Java 工具(javac/java/jdb 等)和 Java 基础的类库(即 Java API 包括 rt.jar)。 它不提供具体的开发软件,它提供的是无论你用何种开发软件写 Java 程序都必须用到的类库和 Java 语言规范。

二、JDK安装

#Linux

JDK11 下载
目前 JDK 13 已经发布, 但是 JDK13 并非 LTS(长期支持)版本, 仅仅是快速发布版本。 而目前 Java 11 为最新的 LTS(长期支持)版本 ,所以我们的任务编码采用 JDK11。

下载步骤一: 访问官网:https://www.oracle.com
下载步骤二: 注册,并登录。 (国内无法正常注册)
下载步骤三: 跳转到官网下载页面: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

下载步骤四:
选择对应版本点击下载

在这里插入图片描述
步骤 1. 打开下载的安装包
JDK11 安装
在这里插入图片描述
步骤 2. 双击 JDK11 开始安装
在这里插入图片描述
步骤 3. 在弹出的页面中点击继续
在这里插入图片描述
步骤 4. 点击安装

在这里插入图片描述
步骤 5.输入用户名和密码 , 并点击安装软件
在这里插入图片描述
步骤 6. 等待片刻, 安装成功

在这里插入图片描述
步骤 7. 打开终端, 输入 java -version 回车, 观察版本提示。
在这里插入图片描述
卸载 JDK

步骤 1. 打开终端 ,输入:cd /Library/Java/JavaVirtualMachines ,进入 jdk 安装目录,
步骤 2.输入 ls 查看当前安装的 jdk 版本
步骤 3.输入 sudo rm -rf 版本名称 回车, 输入密码即可卸载。
在这里插入图片描述
在这里插入图片描述

#windows

JDK11 安装(win10)
下载步骤一: 访问官网:https://www.oracle.com
下载步骤二: 注册,并登录。 (国内无法正常注册)
下载步骤三: 跳转到官网下载页面: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
下载步骤四: 选择对应版本点击下载
安装步骤 1: 双击下发的安装包
在这里插入图片描述
安装步骤 2:

看图安装软件(记住自己装在了那个文件夹中,文件夹地址后续有用)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装步骤 3:配置环境变量(这里区分 win10 和 win7)
看图配置环境变量(WIN10)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完毕 win7 修改环境变量 如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二.Eclipse安装

简介

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务, 用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Kit,JDK)。

关于IDEA

鉴于很多同学对 Eclipse 和 IDEA 有疑问, 在这里解释下, 前期我们使用更为经典且无需注册的免费开发工具 eclipse ,在基础课程完毕后, 我们会使用当下更流行的开发工具 IntelliJ IDEA.

下载步骤

步骤 1: 打开官网: https://www.eclipse.org/ , 按图标注位置点击 Download

在这里插入图片描述
步骤 2. 在新的页面中, 点击 Download Packages
在这里插入图片描述
步骤 3. 如图所示, 根据操作系统不同,选择不同版本进行下载
在这里插入图片描述
步骤 4. 在新的页面中点击 Download 进行下载.
在这里插入图片描述
步骤 5. 第 4 步的操作完成后, 会出现下图页面, 此页面无需进行任何操作, 稍等一会儿就会开始下载. 再次强调一下, Eclipse 是一款免费且功能丰富的开发工具 , 这个页面是为 Eclipse 社区捐助的页面.
在这里插入图片描述
在这里插入图片描述

安装步骤

步骤 1. (安装) eclipse 是一款绿色软件 , 将下载完毕的 eclipse 压缩包, 解压就完成了安装 .
步骤 2. (运行) 打开解压后文件夹中的 eclipse.exe

eclipse创建Java工程详解

看图操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Hello Java

1.Java起源与演变

在这里插入图片描述

1.1. 起源

在这里插入图片描述

2.2 演变

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. Java体系与特点在这里插入图片描述

在这里插入图片描述
Java 可以做什么?
开发桌面应用程序
银行软件、商场结算软件
开发面向 Internet 的 web 应用程序
门户网站(工商银行)、网上商城、阿里巴巴、电子商务网站
提供各行业的解决方案
金融、电信、电力…
嵌入式开发
移动电话、可视电话、数字机顶盒和汽车导航系统

Java 的特性
一种纯面向对象的编程语言。
一种与平台无关(跨平台)的语言。(它提供了在不同平台下运行的解释环境)
一种健壮的语言,吸收了 C/C++语言的优点。
有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)

3.Java跨平台原理

在这里插入图片描述

3.1.Java计数的两种核心机制

Java 虚拟机(Java Virtual Machine) JVM
垃圾回收器(Garbage Collection) GC

在这里插入图片描述

3.2 Java 虚拟机(JVM)

在这里插入图片描述

JVM 可以理解成一个可运行 Java 字节码的虚拟计算机系统

 它有一个解释器组件,可以实现 Java 字节码和计算机操作系统之间的通信
 对于不同的运行平台,有不同 的 JVM。

JVM 屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。

3.3 垃圾回收器(GC)

不再使用的内存空间应当进行回收-垃圾回收。

在 C/C++等语言中,由程序员负责回收无用内存。

Java 语言消除了程序员回收无用内存空间的责任:

JVM 提供了一种系统线程跟踪存储空间的分配情况。并在 JVM 的空闲时,检查并释放那些可以被释放的存储空间。

垃圾回收器在 Java 程序运行过程中自动启用,程序员无法精确控制和干预。

3.4 Java SE的组成概念图

在这里插入图片描述

3.5 JDK

JDK(Java Development Kits)-- Java 开发工具集

 JRE(Java Runtime Environment)Java 运行时环境 JVM Java API (应用程序编程接口)

 Java 编译器(javac.exe)、Java 运行时解释器(java.exe)、Java 文档化化工具(javadoc.exe)及其它工具及资源

JRE 的三项主要功能:

 加载代码:由类加载器(class loader)完成;

 校验代码:由字节码校验器(byte code verifier)完成;

 执行代码:由运行时解释器(runtime interpreter)完成。

4.什么是程序

程序一词来自生活,通常指完成某些事务的一种既定方式和过程

在日常生活中,可以将程序看成对一系列动作的执行过程的描述

例如: 去银行办理业务 去商品购物 等等…

计算机中的程序

为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令(即命令)的集合

Java程序的类型

命今行程序
GUI 程序
Applet 程序
J2EE web 应用程序

5.Java程序开发的三个步骤

在这里插入图片描述

6.语法

在这里插入图片描述

java 代码的位置

 class 必须编写在.java 文件中 (具体详情参考 helloWorld 工程)

语法规则:
java 是严格区分大小写的
java 是一种自由格式的语言
代码分为结构定义语句和功能执行语句
功能执行语句的最后必须用分号结束

<2> 第三节

一.变量

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。

变量分类:

 按所属的数据类型划分:
基本数据类型变量
引用数据类型变量

 按被声明的位置划分:
局部变量:方法或语句块内部定义的变量
成员变量:方法外部、类的内部定义的变量

在这里插入图片描述

二.数据类型

由于变量记录的数据内容大小不同, 导致所需的存储单元大小不同,在 Java 语言中使用数据类型的概念加以 描述 .

字节是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成 信息的一个小单位。Java 中的字节是八位的字节,即它包含八位的二进制数。
在这里插入图片描述

在这里插入图片描述

三. 标识符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四.类型转换

在这里插入图片描述

五.关键字大全

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二进制概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法

方法用于封装一段特定的逻辑功能。方法的主要要素有:权限修饰符 方法名、参数列表和返回值。
在这里插入图片描述

权限修饰符详解

在这里插入图片描述

返回值详解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运算符

一. 算术运算符

在这里插入图片描述
在这里插入图片描述

二. 赋值运算符

在这里插入图片描述

三.关系运算符

在这里插入图片描述

四.逻辑运算符

在这里插入图片描述

五.字符串连接运算符

在这里插入图片描述

六.三目运算符

在这里插入图片描述

七.操作符优先级(了解)

在这里插入图片描述

在这里插入图片描述

转义字符

在这里插入图片描述

命名规范

在这里插入图片描述

ascii码表

在这里插入图片描述

<4>第4节

程序执行结构概述

在这里插入图片描述
在这里插入图片描述

分支执行结构

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.2.2 switch语句

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

循环执行结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

习题

1、计算应缴金额
商场根据会员积分打折:
2000 分以内打 9 折,
4000 分以内打 8 折,
8000 分以内打 7.5 折,
8000 分以上打 7 折,使用 if-else-if 结构,实现手动输入购物金额和积分,
计算出应缴金额

代码如下
考查的是if elese
package homework;

import java.util.Scanner;

public class first {

public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	System.out.println("请输入商品的原价:");
	double price = input.nextDouble();
	System.out.println("请输入您的会员积分:");
	int integral = input.nextInt();
	
	if(integral>=8000) { //integral>=8000
		price = 0.7*price;//7折
	}else if(integral>=4000) {//4000<=integral<8000
		price = 0.75*price;//7.5折
	}else if(integral>=2000) {//2000<=integral<4000
		price = 0.8*price;//8折
	}else {//integral<2000
		price = 0.9*price;//9折
	}
	System.out.println("您应缴纳的金额为: "+price+"元");

}

}

执行结果如下
在这里插入图片描述

2、计算该年该月天数
一年中有 12 个月,而每个月的天数是不一样的。其中大月 31 天,分别为
1,3,5,7,8,10,12 月,小月 30 天,分别 为 4,6,9,11 月。还有二月比较特殊,平年的二月只有 28 天,而闰年的二月有 29 天,由用户在控制台输入年份和月份,
程序计算该年该月的天数。

代码如下:
考查swith
package homework;

import java.util.Scanner;

public class second {

public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	
	System.out.println("请输入你查询的年份:");
	int year = input.nextInt();
	
	System.out.println("请输入你查询的月份:");
	int month = input.nextInt();
	
	int day;
	//判断是否为闰年
	if(year%4==0 && year%100!=0 || year%400==0) {
		day = 29;	//平年的二月只有29天
	}else {
		day = 28;	//闰年的二月只有28天
	}
	
	switch(month) {
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		System.out.println(year+"年"+month+"月只有31天");
		break;
	case 4:
	case 6:
	case 9:
	case 11:
		System.out.println(year+"年"+month+"月有30天");
		break;
	case 2:
		System.out.println(year+"年"+month+"月有"+day+"天");
	}

}

}

执行结果:

在这里插入图片描述

3、图形打印任务
在控制台中,编写三个 Demo,分别输出如下图形:
在这里插入图片描述

图形考查多重循环
图1代码:
package homework;

public class third {
/**
* 图1
* 外层循环控制行数:5
* 内层循环控制列数: 第一行时循环1次,第二行时循环2次,第三行时循环3次,…第五行时循环5次
* @param args
*/

public static void main(String[] args) {

	for(int i=0;i<5;i++) {
		for(int j=0;j<=i;j++) {
			System.out.print("*");
		}
		System.out.println();
	}
}

}

图1 执行结果:
在这里插入图片描述

图2 代码如下:
package homework;

public class third2 {

/**
 * 图2
 * 外层循环控制行数:5
 * 内层循环控制列数:	第一行时循环5次,第二行时循环4次,第三行时循环3次,...第五行时循环1次
 * 这种与图1 是反向的,也就是内层从5开始,依次递减,每次j>i
 * @param args
 */
public static void main(String[] args) {
	
	for(int i=0;i<5;i++) {
		for(int j=5;j>i;j--) {
			System.out.print("*");
		}
		System.out.println();
	}

}

}

图2 执行结果
在这里插入图片描述

图3 代码如下:
package homework;

public class third3 {

/**
 * 图2
 * 外层循环控制行数:5
 * 内层循环控制列数:	第一行时循环1次,第二行时循环3次,第三行时循环5次,第四行时循环7次,第9行时循环1次
 * 也就是内层的j<2*i+1,但是每次都是空格先出现,而*是后边才出现
 * 空格循环控制列数:	第一行前面4次,第二行前面3次,第三行前面2次,第4行前面1次;比i少了1次
 * @param args
 */
public static void main(String[] args) {
	
	for(int i=0;i<5;i++) {
		for(int x=i+1;x<5;x++) {
			System.out.print(" ");
		}
		for(int j=0;j<2*i+1;j++) {
			System.out.print("*");
		}
		System.out.println();
	}

}

}

图3执行结果:
在这里插入图片描述

4、打印九九乘法表 ,效果如图:
在这里插入图片描述

代码如下:
package homework;

public class quarter {

/**
 * 9x9乘法表
 * j<=i
 * @param args
 */
public static void main(String[] args) {
	System.out.println("乘法口诀表:");
	for(int i=1;i<=9;i++) {
		for(int j=1;j<=i;j++) {
			System.out.print(i+"*"+j+"="+i*j+"\t");
		}
		System.out.println();
	}

}

}

执行结果:

在这里插入图片描述

5、打印三位数中的所有水仙花数
所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。
如: 153 是一个水仙花数,因为 153= 1³+5³+3³

考查位数
代码如下:
package homework;

public class fifth {

/**
 * 考查位数
 * 三位数,求每个位的数,使用余数和除数
 * 三位数的范围:100~999
 * @param args
 */
public static void main(String[] args) {
	shuiXianHua();

}

public static void shuiXianHua() {
	int a = 0;
	int b = 0;
	int c = 0;
	for(int i=100;i<1000;i++) {
		a=i/100;
		b=(i%100)/10;
		c=(i%100)%10;
		if((a*a*a+b*b*b+c*c*c) == i) {
			System.out.print(i+" ");
		}
	}
}

}

执行结果:
在这里插入图片描述

<5> 第5节 数组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数组常用算法

在这里插入图片描述
在这里插入图片描述

习题

人工智能的概念刚兴起时,网上流传了一段价值一个亿的代码,如下图:
在这里插入图片描述

代码如下:
import java.util.Scanner;

public class AI {

public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);
	String question;
	while(true) {
		question = scanner.next();
		question = question.replace("吗","");
		question = question.replace("我","我也");
		question = question.replace("?", "!");
		System.out.println(question);
	}

}

}

运行结果:
在这里插入图片描述

<6> 第6节 综合案例

习题

今天同学们相约一起爬山游玩,为了更好的进行这场活动,大家准备推举
一个人作为出游的临时队长。为了体现合理公平,大家提出了一个比较有趣的
规则。所有人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),
凡报到 3 的人退出圈子,剩下的人继续报数,最后留下的当选为队长。
请你通过编写程序,求出一组人中的队长是原来第几位同学。

代码如下:
import java.util.Scanner;

public class dengshan {

/**
 * 思路:
 * 	1.先将所有人定义成一个Boolean型数组,初始值为true,报到3的人变成false
 * 	2.定义剩余人数,初始报数为1,并计算已经报完的人数
 *  3.当已经报完人数和剩余人数相等时,说明一圈结束,开始新的循环,计数归0,最好输出值为true的人,即为队长
 * @param args
 */
public static void main(String[] args) {
	int total;	//定义总人数
	Scanner scanner = new Scanner(System.in);
	System.out.println("输入围成一圈的人数");
	total = scanner.nextInt();
	
	boolean nums[] = new boolean[total];
	for(int i=0;i<total;i++) {
		nums[i] = true;	//给每个人都赋值为true
	}
	
	int leftNum = total;	//剩余人数
	int numN = 0;	//开始报数
	int index = 0;	//计数
	
	while(leftNum > 1) {
		if(nums[index] == true) {
			numN ++;
			if(numN == 3) {
				numN = 0;	//重新报数,归0
				nums[index] = false;//当然该索引的位置置为false,表示不存在了
				leftNum--;//剩余的人数自然减一
			}
		}
		index++;	//索引往后移动
		if(index == total) {
			//如果所有人都遍历后,则重新开始
			index = 0;
		}
	}
	
	//找出队长
	for(int i=0; i<total; i++) {
		if(nums[i] == true) {
			//找出剩下的人
			System.out.println("队长是原来第"+(i+1)+"位同学");
		}
	}
	

}

}

执行结果:
在这里插入图片描述
在这里插入图片描述

习题

1、查找某个整数
定义一个长度为 10 的整型数组 nums ,循环输入 10 个整数。 然后将输
入一个整数,查找此整数,找到输出下标, 没找到给出提示。

代码如下:
import java.util.Scanner;

public class num1 {

public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	int[] nums = new int[10];
	System.out.println("请输入10个整数数字: ");
	for(int i=0;i<nums.length;i++) {
		nums[i] = input.nextInt();
	}
	
	System.out.println("请输入你要查找的一个整数数字: ");
	
	int index = input.nextInt();
	int i=0;
	while(i<nums.length) {
		if(nums[i] == index) {
			System.out.println("该整数位于数组下标为"+i+"的位置");
		}
		if(nums[i] != index) {
			System.out.println("数组下标为"+i+"的位置没有找到!");
		}
		i++;
	}
	

}

}

执行结果:
在这里插入图片描述

2、找出数组的最值
定义一个长度为 10 的整型数组 nums ,循环输入 10 个整数。输出数组
的最大值、最小值。

代码如下:
import java.util.Scanner;

public class num2 {

/**
 * 考查双目运算 : 
 * 最大值		n = n>nums[i]?n:nums[i];
 * 最小值		n = n<nums[i]?n:nums[i];
 * @param args
 */
public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	
	//定义长度为10的整型数组,循环输入10个整数
	System.out.println("请输入10个整数: ");
	int[] nums = new int[10];
	for(int i=0;i<nums.length;i++) {
		nums[i] = input.nextInt();
	}
	
	//定义最大值,最小值
	int maxIndex = nums[0];
	int minIndex = nums[0];
	for(int i=0;i<nums.length;i++) {

			maxIndex = (maxIndex>nums[i])?maxIndex:nums[i];
			minIndex = (minIndex<nums[i])?minIndex:nums[i];

	}
	System.out.println("该数组的最大值为: "+maxIndex);
	System.out.println("该数组的最小值为: "+minIndex);
	

}

}

执行结果:
在这里插入图片描述

3、两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为
目标值的那两个整数,并输出他们的数组下标
假设每种输入只会对应一个答案,不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以输出 0,1

代码如下:

public class num3 {

/**
 * 考查: 条件语句和逻辑运算
 * @param args
 */
public static void main(String[] args) {
	
	int[] nums = {2,7,11,15};
	int target = 9;
	
	for(int i=0;i<nums.length;i++) {
		for(int j=1;j<nums.length;j++) {
			if(nums[i] + nums[j] == target && i!=j) {
				System.out.println(i+","+j);
			}
		}
	}

}

}

执行结果:
在这里插入图片描述

4、排序并查找
对数组{1,3,9,5,6,7,15,4,8}进行排序,然后使用二分查找 6 并
输出排序后的下标。

代码如下:
import java.util.Scanner;

public class num4 {

/**
 * 
 * 考查: 冒泡排序和二分查找(折半查找)
 * @param args
 */
public static void main(String[] args) {
	
		int[] nums = {1,3,9,5,6,7,15,4,8};
		
		//冒泡排序
		int temp;
		//内层层循环控制:	比较的轮数
		//外层循环次数:	length-1
		for(int i=0;i<nums.length-1;i++) {
			
			//内层循环控制:	每轮比较的次数
			//第i轮 (i从0开始计算),	比较次数为: length -i-1
			for(int j=1;j<nums.length-i-1;j++) {
				//两两比较,	满足移动条件
				if(nums[j]>nums[j+1]) {
					temp = nums[j];
					nums[j] = nums[j+1];
					nums[j+1] = temp;
				}
			}
		}
		System.out.println("经过排序后各数据的具体情况: ");
		for(int i=0;i<nums.length;i++) {
			System.out.println("下标:"+i+",具体数据:"+nums[i]);
		}
		
		//二分查找
		
		//要查找的数据
		Scanner input = new Scanner(System.in);
		System.out.print("请输入要查找的数据: ");
		int num = input.nextInt();
		
		//1. 最小范围下标
		int minIndex = 0;
		//2. 最大范围下标
		int maxIndex = nums.length-1;
		//3. 中间数据下标
		int centerIndex = (minIndex+maxIndex)/2;
		
		while(true) {
			if(nums[centerIndex] > num){
				//中间数据较大
				maxIndex = centerIndex-1;
			}else if(nums[centerIndex] < num) {
				minIndex = centerIndex+1;
			}else {
				//找到了数据,正好minIndex=maxIndex=centerIndex
				break;
			}
			
			//查找的数据并不存在的情况
			if(minIndex > maxIndex) {
				centerIndex = -1;
				break;
			}
			
			//当边界发生变化时,	需要更新中间下标
			centerIndex = (minIndex+maxIndex)/2;
		}
		
		System.out.println("该数据的下标为: "+centerIndex);
		

}

}

执行结果:
在这里插入图片描述

5、移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保
持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12] 输出: [1,3,12,0,0]

代码如下:

public class num5 {

/**
 * 
 * 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 
 * 考查:	排序
 * 思路: 冒泡排序&&逻辑语句
 *
 * @param args
 */
public static void main(String[] args) {
	int[] nums = {0,1,0,3,12};
	
	int temp;
	//
	for(int i=0;i<nums.length-1;i++) {
		
		//内层控制循环:每轮比较的次数
		for(int j=0;j<nums.length-i-1;j++) {
			if(nums[j] < nums[j+1]) {
				temp = nums[j];
				nums[j] = nums[j+1];
				nums[j+1] = temp;
			}
			
			//冒泡从0开始排序,保证非零的数据相对位置不变
			//第一次冒泡排序就可以将1提到下标为0的位置
			//经过第一次冒泡排序后,零的数据就位于下标为1,2的位置.
			//当非零数据排完后就将零的数据输出
			if(j == 2 && i == 1) {
				for(int k=0;k<nums.length;k++) {
					System.out.print(nums[k]);
					System.out.print(" ");
				}
			}
		}
	}

}

}

执行结果:
在这里插入图片描述

总结

在这里插入图片描述

补充

第二章第二节

语法:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码语句分类

在这里插入图片描述

第二章第三节

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二章第四节 流程控制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二章第五节 数组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低调的小哥哥

你的关注就是我为你服务的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值