day06

1.八大基本数据类型整型:  byte short  int long 浮点:  double  float字符: char布尔: boolean2.声明变量的语法格式数据类型 变量名字 = 初始化的值;
3.使用for循环打印等腰三角形for (int i = 1; i <= 4; i++) {for (int j = 1; j <= 4 - i; j++) {System.out.print(" ");}for (int k = 1; k <= (2 * i - 1); k++) {System.out.print("*");}System.out.println();}
4.break和continue关键字的简单介绍 break: swicth-case  和循环里面 终止 打断continue: 循环  结束本次循环 执行下一次循环
5.四种方法的语法格式分别列出来无参无返回值的方法: public static void 方法的名字 () {}  public static void 方法名字(数据类型  形参,....) {}public static 数据类型 方法名字 () {return 返回值}public static 数据类型 方法名字 (数据类型 形参) {return 返回值}
1.写一个方法,判断一个字符是否是英文字符(大写和小写)2.写一个方法将一个整数逆序换行打印int a = 3456;65433.写一个方法,控制台输入哪一个年份,判断是否是闰年4.写一个方法判断一个数字是否是正数
5.写一个方法输出1-100之间不能被5整除的数,每5个一行
6.写一个方法求出1-1/2+1/3-1/4……1/100
7.写一个方法 求1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+……+100)
package com.qfedu.b_homework;import java.util.Scanner;public class Demo1 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("输入一个字符:");char c = scanner.next().charAt(0);isEnglish(c);}//判断是否是英文字符public static void isEnglish (char c) {if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {System.out.println("是英文字符");} else {System.out.println("不是英文字符");}}
}
package com.qfedu.b_homework;public class Demo2 {public static void main(String[] args) {int i1 = 3456;reverse(i1);}//对一个int类型的数据进行倒序的打印public static void reverse (int a) {/*** i=3456   3456 != 0 true sout(3456%10) 6  i=i/10 345* i=345    345 != 0 true sout(345%10)  5 i=i/10  34* i=34    34!=0  true sout(34 %10) 4  i=i/10 3* i=3  3!= 0 true  sout(3%10) 3  i=i/10 0* i=0 0!= 0 false 循环结束*/int i = a;while (i != 0) {System.out.println(i % 10);i = i / 10;}}}

今天的内容

数组

1.数组

1.1开发中为啥要有数组

如果开发中出现了大量的同一类型的数据的时候,如果按照现在所学,声明变量的话,进行数据的存储。

这样的话,变量很多。相当麻烦

使用数组:只需要声明一个变量,然后存储多个数据

把他们当成一个容器即可

1.2在Java中如何定义数组

变量:

​ 数据类型 变量名字 = 初始化的值;

数组定义的语法格式:

第一种定义方式:

数据类型[] 数组变量名字 = {值1, 值2, 值3,......};
或者
数据类型 数组变量名字 []= {值1, 值2, 值3,......};

第二种声明方式:

数据类型[]  数组变量名字 = new 数据类型[容量];

第三种声明方式:

数据类型[] 数组变量名字 = new 数据类型[]{值1, 值2, 值3,.....};
是第一种的简写情况
package com.qfedu.c_array;public class Demo1 {public static void main(String[] args) {//使用第一种方式声明数组//声明数组并赋值,这个数组里面存了三个值int[] arr = {12, 56, 89};float f1[] = {34.2f, 89.78f, 76.345f};char[] ch1 = {'中', 'a', '2'};boolean[] b1 = {false, true, false};String[] strs = {"学虎", "腾飞", "狗蛋"};//使用第二种声明方式//声明的这个数组的容量是3,就意味着可以存放3个数据//仅仅是声明了一个容器而已。里面还没有放值,但是会存放默认的值//如果是int  默认值就是0 [0, 0, 0]int[] arr1 = new int[3];boolean[] b2 = new boolean[2];//[false,false]String[] strs1 = new String[3];//[null, null, null]//第三种写法int[] arr2 = new int[] {34, 56, 7,8};}}

脑海里面想到一个问题 第二种声明方式没有对数组进行赋值

1.3对第二种声明方式进行赋值
package com.qfedu.c_array;import java.util.Arrays;public class Demo2 {public static void main(String[] args) {int[] arr = new int[3];//只能存3个元素//[0, 0, 0]//对空的容器进行赋值arr[0] = 12;//[12, 0,0]  将12赋值给下标为0的位置arr[1] = 13;//[12, 13, 0]//arr[2] = 14;//[12, 13, 14]//数组下标越界的//arr[3] = 78;//打印一下看看结果System.out.println(arr);//打印的是一个内存地址//内存地址对程序友好不?不优化,看不出来你的数据是个啥//咋办?有一个超纲的东西可以将内存地址转为字符串System.out.println(Arrays.toString(arr));//对一个String类型的数组进行赋值String[] strs1 =  new String[4];strs1[0] = "老邢";strs1[1] = "骚磊";strs1[3] = "老万";System.out.println(strs1);System.out.println(Arrays.toString(strs1));//对一个char 类型数组进行赋值//但是唯独char不需要toStringchar[] ch1 = new char[4];ch1[0] = 97;ch1[1] = 'z';ch1[3] = 'x';System.out.println(ch1);}
}
1.4对数组进行取值
package com.qfedu.c_array;public class Demo3 {public static void main(String[] args) {int[] arr = {12, 78, 13, 89, 100,200};System.out.println(arr[0]);//下标为0的位置上的值System.out.println(arr[1]);System.out.println(arr[2]);System.out.println(arr[3]);System.out.println("=========");//发现一个特点,下标是有规律的,循环是专门出来重复或者有规律的for (int i = 0; i < 4; i++) {System.out.println(arr[i]);}System.out.println("-----------");//arr.length   arr的长度 【重点】System.out.println(arr.length);//6for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}}

练习: 字符数组 和字符串数组,遍历他们的打印出来

package com.qfedu.c_array;public class Demo4 {public static void main(String[] args) {String[] strs1 = {"唐三藏","孙悟空","猪八戒"};for (int i = 0; i < strs1.length; i++) {//遍历System.out.println(strs1[i]);}System.out.println("=======");char[] ch1 = {'中', '过', '系', '是'};for (int i = 0; i < ch1.length; i++) {System.out.println(ch1[i]);}}}

回顾

1.声明数组三种int[] arr = {1,2,3,4};int[] arr1 = new int[3];int[] arr2 = new int[]{1,2,3,4};
2.对数组赋值对第二种进行赋值arr1[下标] = 32; 下标从0开始的
3.数组的取值遍历可以使用for循环进行遍历arr[下标]
1.5二维数组【了解】
package com.qfedu.c_array;import java.util.Arrays;public class Demo5 {public static void main(String[] args) {//[1,2,3,4]//二维数组  行 列//[[1 , 2, 3],// [2, 4 , 5]]//int[] arr = new int[3];int[][] arr = new int[2][3];//总共6个arr[0][0] = 1;arr[0][1] = 2;arr[0][2] = 3;arr[1][0] = 2;arr[1][1] = 4;arr[1][2] = 5;System.out.println(arr);System.out.println(Arrays.toString(arr));//取值 使用循环for (int i = 0; i < 2; i++) {//行for (int j = 0; j < 3; j++) {System.out.println(arr[i][j]);}}}}
1.6数组可以当成一个方法的参数【重点】

方法的参数可以是八大基本数据类型和String,数据也可以作为方法的参数

语法格式

public static void 方法名字(数据类型[] 形参) {}
package com.qfedu.c_array;import java.util.Arrays;
import java.util.Scanner;public class Demo6 {public static void main(String[] args) {
//		int[] arr = {1,2,3,4};
//		printArr(arr);//声明空的数组,然后向里面存值int[] arr = new int[5];//1.声明了一个空的数组add(arr);//2.对这个空的数组赋值//代码走到这一步,arr这个数组有值了没?System.out.println(Arrays.toString(arr));//3.打印这数组有哪些数据}//遍历一个数组  打印数据public static void printArr (int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}//使用方法对一个空的数组进行赋值/*** * @param arr  是一个空的数组, 对空的数组进行赋值*/public static void add (int[] arr) {Scanner scanner = new Scanner(System.in);for (int i = 0; i < arr.length; i++) {System.out.println("请输入第" + (i + 1) + "数");int i1 = scanner.nextInt();arr[i] = i1;}}}
1.7数组可以当成一个方法的返回值
public  static 数据类型 方法名字 () {}

八大基本数据类型和String都可以当成一个方法的返回值

那么数组也是可以的

案例:

​ [1,2,3,4]=>[4,3,2,1]

package com.qfedu.c_array;import java.util.Arrays;public class Demo7 {public static void main(String[] args) {int[] arr = reverse();System.out.println(Arrays.toString(arr));}//需求:将一个数组[1,2,3,4]转为[4,3,2,1]/*** * * @return*/public static int[] reverse () {int[] arr = {1,2,3,4};//原数组//定义一个空的数组 用来接收反转以后的数据int[] arr1 = new int[arr.length];//表达式1 :int i = 0, j = 3//初始话条件 有两个//表达式2: i < arr1.length//表达式3:i++, j--  循环条件for (int i = 0, j = arr.length - 1; i < arr1.length; i++, j--) {arr1[j] = arr[i];//arr=[1,2,3,4]//arr1=[0,0,0,0]
//			arr1[3] = arr[0];//arr1[0,0,0,1]
//			arr1[2] = arr[1];//arr1[0,0,2,1]
//			arr1[1] = arr[2];//arr1[0,3,2,1]
//			arr1[0] = arr[3];//arr1[4,3,2,1]}return arr1;}}
1.8数组在内存中如何分配的【了解】

以后还会再讲

目前学到的知识点你只需要关注:栈内存 和堆内存

内存区域的名字作用
寄存器给CPU使用的,和开发没有关系
本地方法栈JVM虚拟机操作咱们的电脑的系统的时候,才会使用
方法区存储和运行的class文件
堆区存储的是对象或者数组, 凡是new出来的都存在堆区
方法栈方法运行的时候使用的内存,比如main方法会进入到方法栈区

栈:存储的是八大基本数据类型的数据

​ int a = 20; 这个存在了栈区

​ 存储的是对象的引用 scanner 就是一个对象的等号的左边的

​ Scanner scanner = new Scanner(System.in);

堆区:

​ 凡是new的 都存在堆区

​ int[] arr = new int[5];

​ arr存在了栈区 new int[5];存在了堆区

​ Scanner scanner = new Scanner(System.in);

​ scanner 存在了栈区, new Scanner(System.in); 在堆区

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.数组方法循环分支的练习题

需求:定义一个方法,找出一个int数组中的最大值的索引下标

[3,1,2,7,6]=> 最大值的索引下标是3

package com.qfedu.c_array;public class Demo8 {public static void main(String[] args) {int[] arr = {3, 2, 6, 1, 7};//找出一个int数组中最大值的索引下标int maxIndex = 0;//用来接收最大值的下标的/*** i=0 0<4 true arr[0] <arr[0] false i++* i=1 1<4 true arr[0] <arr[1] false i++ maxIndex=0* i=2 2<4 true arr[0]<arr[2] true maxIndex=2 i+=* i=3 3<4 true arr[2]<arr[3] false maxIndex=2 i++* i=4 4<4 false 循环结束* */for (int i = 0; i < arr.length; i++) {if (arr[maxIndex] < arr[i]) {maxIndex = i;}}System.out.println(maxIndex);}}
package com.qfedu.c_array;public class Demo9 {public static void main(String[] args) {int[] arr = {3,4,2,6,8,7};int max = maxIndexOfArray(arr);System.out.println(max);}//求一个数组中的最大值的索引下标public static int maxIndexOfArray (int[] arr) {int maxIndex = 0;for (int i = 0; i < arr.length; i++) {if (arr[maxIndex] < arr[i]) {maxIndex = i;}}return maxIndex;}}

作业:

我的意见:

如果你有基础想挑战一下,可以写一下

如果是零基础的,建议将今天数组搞懂,去看预习视频。

1.需求:定义一个方法,找出int数组中,最大值的索引下标
[1,2,23,5,6,7,8]  打印出来2
2.需求:定义一个方法,找出int数组中,最小值的索引下标
3.需求:定义一个方法,在指定的int数组中找出指定的数据第一个的下标8这个数的下标
[1,2,8,4,5,78,7,8,9]4. 在一个数组中,找出所有的 指定数据的下标位置 【难】找出所有的下标存倒数组中8这个数的下标
[1,2,8,4,5,7,8,7,8,9]
5. 完成一个方法,替换掉数组中所有元素为0的元素,替换为指定元素  [1,2,3,0,0,0]
6. 完成一个方法,删除指定下标的元素,要求从删除位置开始,之后的元素整体前移。【难】[1,2,3,4,5,6,7]=>[1,2,4,5,6,7,0]
7. 完成一个方法,添加指定元素到指定下标位置,要求从指定下标位置之后的元素,整体向后移动。【难】[1,2,3,4,5,0]=>[1,2,250,3,4,5]8. 找出数组中最大的元素,放到下标为0的位置9. 在上一道题的基础上,不考虑下标为0的元素。找出数组中最大的元素,放到下标为1的位置

想挑战一下,可以写一下

如果是零基础的,建议将今天数组搞懂,去看预习视频。

1.需求:定义一个方法,找出int数组中,最大值的索引下标
[1,2,23,5,6,7,8]  打印出来2
2.需求:定义一个方法,找出int数组中,最小值的索引下标
3.需求:定义一个方法,在指定的int数组中找出指定的数据第一个的下标8这个数的下标
[1,2,8,4,5,78,7,8,9]4. 在一个数组中,找出所有的 指定数据的下标位置 【难】找出所有的下标存倒数组中8这个数的下标
[1,2,8,4,5,7,8,7,8,9]
5. 完成一个方法,替换掉数组中所有元素为0的元素,替换为指定元素  [1,2,3,0,0,0]
6. 完成一个方法,删除指定下标的元素,要求从删除位置开始,之后的元素整体前移。【难】[1,2,3,4,5,6,7]=>[1,2,4,5,6,7,0]
7. 完成一个方法,添加指定元素到指定下标位置,要求从指定下标位置之后的元素,整体向后移动。【难】[1,2,3,4,5,0]=>[1,2,250,3,4,5]8. 找出数组中最大的元素,放到下标为0的位置9. 在上一道题的基础上,不考虑下标为0的元素。找出数组中最大的元素,放到下标为1的位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计----SSH电子相册管理系统

项目介绍 本项目分为普通用户与管理员两个角色&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登陆,用户信息管理,登陆密码修改等功能。 用户角色包含以下功能&#xff1a; 用户登陆,个人信息管理,相册管理,上传照片等功能。 环境需要 1.运行环境&#xff1a;最好…

高效办公:在文件夹名称左边插入关键字,提高文件管理效率

在繁忙的工作环境中&#xff0c;经常要处理大量的文件和文件夹。有效的文件管理是一个挑战&#xff0c;大量的文件和文件夹难以找到所需的资料。下面一起来看云炫文件管理器如何在文件夹名称左边批量插入关键字。 文件夹名称左边添加关键字前后对比图。 文件夹名称左边批量插…

P1379 八数码难题

题目描述 在 33 的棋盘上&#xff0c;摆有八个棋子&#xff0c;每个棋子上标有 1 至 8 的某一数字。棋盘中留有一个空格&#xff0c;空格用 0 来表示。空格周围的棋子可以移到空格中。要求解的问题是&#xff1a;给出一种初始布局&#xff08;初始状态&#xff09;和目标布局&…

哪里能找到好用的PPT模板?12个免费模板网站让你畅快办公!

你是否有过这样的经历&#xff0c;在准备重要会议或者演讲的时候&#xff0c;为找不到合适的PPT模板而困扰&#xff1f;或是在网上漫无目的地搜寻&#xff0c;结果收获的是设计平淡无奇的PPT模板&#xff1f; 如果你有同样的疑问&#xff0c;那么你来对地方了&#xff01;在这…

电脑扩容升级硬盘选1T还是2T

SSD固态有必要升级2TB吗&#xff1f;----------吴中函 某大二学生用的一台笔记本电脑&#xff0c;512GB的硬盘空间已经严重不够用了&#xff0c;想给笔记本扩容升级一下硬盘&#xff1b; 这位学生是学设计专业的、平时也喜欢摄影、电脑里面也装了一些游戏&#xff0c;经常整理、…

Linux技术,winSCP连接服务器超时故障解决方案

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 故障现象 使用 sftp 协议连接主机时, 明显感觉缓慢且卡顿,并且时常出现如下报错: 点击重新连接后,又有概率重新连接上; 总之在"连接上"和&…

【Web】NSSCTF Round#16 Basic个人wp(全)

出题友好&#xff0c;适合手生复健。 目录 ①RCE但是没有完全RCE ②了解过PHP特性吗 ①RCE但是没有完全RCE 上来就是一段md5八股 (string)就是不让用数组了&#xff0c;然后强比较需要md5碰撞 ?md5_1%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc…

josef约瑟 中间继电器 HJDZ-E440额定电压:AC220V 卡轨安装

HJDZ-静态中间继电器 系列型号&#xff1a; HJDZ-A200静态中间继电器&#xff1b;HJDZ-A110静态中间继电器&#xff1b; HJDZ-A002静态中间继电器&#xff1b;HJDZ-A004静态中间继电器&#xff1b; HJDZ-E112静态中间继电器&#xff1b;HJDZ-E112L静态中间继电器&#xff1…

计算机网络——应用层(3)

计算机网络——应用层&#xff08;3&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 点对点&#xff08;P2P&#xff09;P2P网络一般用途优点缺点总结 套接字编程基本步骤UDP套接字TCP套接字基本步骤 二者对比 小程一言 我的计算机网络专栏&#xff0c;是自…

开放式耳机和骨传导耳机有什么区别?谁更值得入手?

很多人都知道开放式耳机&#xff0c;但很少有人知道其实骨传导耳机也算开放式耳机的一种&#xff0c;事实上&#xff0c;开放式耳机可以分为气传导耳机和骨传导耳机两种类型&#xff0c;这两种耳机佩戴方式都是开放双耳机&#xff0c;但传声方式有所不同&#xff0c;下面简单科…

《C语言学习》---郝斌版---笔记

简介 学习计算机&#xff0c;离不开C语言的学习&#xff0c;而C语言学习过程中的视频课教程&#xff0c;目前来说&#xff0c;如果郝斌老师的C语言排第二&#xff0c;没有人敢排第一 郝斌老师的C语言教程&#xff0c;通俗易懂&#xff0c;引人发思&#xff0c;特别适合新手入门…

如何定义核心场景用例?

首先我们解决两个问题&#xff1a; 1.什么是场景测试&#xff1f;2.什么是核心场景&#xff1f; 1、什么是场景测试&#xff1f; &#x1f3af; 1.1&#xff1a;什么是场景 事件触发时的情景形成了场景。场景必不可少的几个要素&#xff1a;环境、人、时间、行为。简而言之&…

Rust-变量

Rust的变量必须先声明后使用。对于局部变量&#xff0c;最常见的声明语法为&#xff1a; let variable:i32 100;与传统的C/C语言相比&#xff0c;Rust的变量声明语法不同。这样设计主要有以下几个方面的考虑。 语法分析更容易 从语法分析的角度来说&#xff0c;Rust的变量声明…

Linux系统编程(十一):高级 IO

参考引用 UNIX 环境高级编程 (第3版)嵌入式Linux C应用编程-正点原子 1. 非阻塞 I/O 阻塞就是进入了休眠状态&#xff0c;交出了 CPU 控制权阻塞 I/O 就是对文件的 I/O 操作&#xff08;读写操作&#xff09;是阻塞式的&#xff0c;非阻塞 I/O 就是对文件的 I/O 操作是非阻塞的…

网络技术基础入门全套实验-厦门微思网络CCNA实验手册

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 微思简介&#xff08;https://www.xmws.cn) 微思成立于2002年&#xff0c;是一个诚信敬业、积极向上、充满活力、专注技术服务的企业。 微思获得了八…

电子学会2023年12月青少年软件编程(图形化)等级考试试卷(四级)真题,含答案解析

青少年软件编程(图形化)等级考试试卷(四级) 分数:100 题数:24 一、单选题(共10题,共30分) 1. 运行下列程序,输入“abcdef”,程序结束后,变量“字符串”是?( )

Linux--部署 Tomcat 及其负载均衡

1.案例前置知识点 1&#xff09;Tomcat简介 名称由来&#xff1a;Tomcat最初是由 Sun的软件构架师詹姆斯邓肯戴维森开发的。后来他帮助将其变 为开源项目&#xff0c;并由Sun贡献给Apache软件基金会。由于大部分开源项目OReilly都会出一本相关的 书&#xff0c;并且将其封面设…

SpringMVC视图

文章目录 1、ThymeleafView2、转发视图3、重定向视图4、视图控制器view-controller5、总结 SpringMVC中的视图是View接口&#xff0c;视图的作用渲染数据&#xff0c;将模型Model中的数据展示给用户SpringMVC视图的种类很多&#xff0c;默认有转发视图和重定向视图当工程引入js…

2024几个测试接口的好工具,效率加倍~

作为一名后端程序员&#xff0c;一定要对自己写的接口负责&#xff0c;保证接口的正确和稳定性。因此&#xff0c;接口测试也是后端开发中的关键环节。 但我相信&#xff0c;很多朋友是懒得测试接口的&#xff0c;觉得这很麻烦。一般自己写的接口自己都不调用&#xff0c;而是…

在Linux上搭建Maven仓库

目录 一、下载安装包二、安装maven三、修改配置文件settings.xml四、配置环境变量五、测试maven是否可用 一、下载安装包 我在这里为大家准备好了apache-maven-3.5.0-bin.tar.gz&#xff0c;百度网盘下载链接如下&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bGun…