尚硅谷java学习笔记第五天(数组上)
复习
/*
1000以内的完数
*/public class Test {public static void main(String[] args) {for(int i = 1;i <= 1000;i++){//遍历1000以内的数int sum = 0;//初始化1000以内每个数的因数的和for(int j = 1;j < i;j++){//遍历1000以内每个数的因数if(i % j == 0){ sum += j; //1000以内每个数的因数累加 }}if(sum == i){System.out.println(i);//如果每个数的因数的和等于其数本身就输出} } }
}
五:数组
数组概述:
数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。
数组的常见概念
数组名
下标(或索引)
元素
数组的长度
一维数组
/**一.数组概述:*1.数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。 * *2数组的相关概念**>数组名*>元素*>角标,下标,索引*>数组的长度:元素的个数**3.数组的特点*1)数组是有序排列的*2)数组本身属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型*3)创建数组对象会在内存中开辟一整块连续的空间*4)数组的长度一旦确定,就不能修改**4.数组的分类:*按照维数:一维数组,二维数组*按照数组元素的类型,基本数据类型的数组,引用数据类型元素的数组(对象数组)**5.一维数组的使用* ①一维数组的声明和初始化* ②如何调用数组的指定位置的元素* ③如何获取数组的长度* ④如何遍历数组* ⑤数组元素的默认初始化值* ⑥数组的内存解析**/public class ArrayTest {public static void main(String[] args) {//①一维数组的声明和初始化int num;//声明num = 10;//初始化int id = 1001;//声明加初始化int[] ids;//声明//静态初始化:数组的初始化和数组元素的赋值操作同时进行ids = new int[]{1001,1002,1003,1004};//动态初始化:数组的初始化和数组元素的赋值操作分开进行String[] names = new String[5];//也是正确的写法int[] arr = {1,2,3,4,5}; //类型推断//总结,数组一旦初始化完成,其长度就确定了//②如何调用数组的指定位置的元素//数组的角标(或索引)从0开始的,到数组的长度-1结束。names[0] ="王明";names[1] ="王和";names[2] ="张学良";names[3] ="孙巨龙";names[4] ="王宏志";//"王"charAt(0)//③如何获取数组的长度//属性:lengthSystem.out.println(names.length);//5System.out.println(ids.length);//4//④如何遍历数组/*System.out.println(names[0]);System.out.println(names[1]);System.out.println(names[2]);System.out.println(names[3]);System.out.println(names[4]);*/for(int i = 0;i < names.length;i++){System.out.println(names[i]);}//⑤数组元素的默认初始化值// 基本数据类型// 整型: 0// 浮点型:0.0// char:'0' 对应 Ascii码的值// boolean类型:falseSystem.out.println("*******整型*******");int[] arr = new int[4];for(int i = 0;i < arr.length;i++){System.out.println(arr[i]);}System.out.println("******整型********");short[] arr1 = new short[4];for(int i = 0;i < arr1.length;i++){System.out.println(arr1[i]);}System.out.println("*******浮点型*******");float[] arr2 = new float[4];for(int i = 0;i < arr2.length;i++){System.out.println(arr2[i]);}System.out.println("******char********");char[] arr3 = new char[4];for(int i = 0;i < arr3.length;i++){System.out.println(arr3[i]);}if(arr3[0] == 0){System.out.println("你好");}System.out.println("*****boolean******");boolean[] arr4 = new boolean[5];System.out.println(arr4[0]);//⑤数组元素的默认初始化值// 引用数据类型:nullSystem.out.println("*****引用数据类型******");String[] arr5 = new String[5];System.out.println(arr5[0]);if(arr5[0] == null){System.out.println("你好");} }
}
数组的内存解析
简单的内存解析
/**练习1*升景坊单间短期出租4个月,550元/月(水电煤公摊,网费35元/月),空调、卫生间、厨房齐全。*屋内均是IT行业人士,喜欢安静。所以要求来租者最好是同行或者刚毕业的年轻人,爱干净、安静。*/public class ArrayTest {public static void main(String[] args) {//0 1 2 3 4 int[] arr = new int[]{8,2,1,0,3};int[] index = new int[]{2,0,3,2,4,0,1,3,2,3,3};String tel = "";for(int i = 0;i < index.length;i++){tel += arr[index[i]];//18013820100}System.out.println("联系方式:" + tel);}
}
/*
练习2
从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’
其余 等级为’D’
提示:先读入学生人数,根据人数创建int数组,存放学生成绩。*/
import java.util.Scanner;
public class ArrayTest {public static void main(String[] args) {//1.使用Scanner,读取学生个数Scanner scan = new Scanner(System.in);System.out.println("请输入学生的个数:");int number = scan.nextInt();//2.创建数组,存储学生成绩,动态初始化 int[] score = new int[number];//3.给数组中的元素赋值System.out.println("请输入学生的成绩:");for(int i = 0;i < score.length;i++){score[i] = scan.nextInt(); }//4.获取学生成绩的最大值int max = 0;for(int i = 0;i < score.length;i++){if(max <= score[i]){max = score[i];}}//5.根据每个学生成绩与最高分的差距,得到每个学生的等级,并输出等级和成绩char level;for(int i = 0;i < score.length;i++){if(max - score[i]<= 10){level = 'A';}else if(max - score[i]<= 20){level = 'B';}else if(max - score[i]<= 30){level = 'C';}else{level = 'D';}System.out.println("student" + i + "score is " + score[i] +",grade is " + level);}}
}
多维数组的使用
Java 语言里提供了支持多维数组的语法。
如果说可以把一维数组当成几何中的线性图形, 那么二维数组就相当于是一个表格,像右图Excel 中的表格一样。
对于二维数组的理解,我们可以看成是一维数组 array1又作为另一个一维数组array2的元素而存 在。其实,从数组底层的运行机制来看,其实没有多维数组。
/** 二维数组的使用* * 1,理解* 对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。* 其实,从数组底层的运行机制来看,其实没有多维数组。* * 2.二维数组的使用* ①二维数组的声明和初始化* ②如何调用数组的指定位置的元素* ③如何获取数组的长度* ④如何遍历数组* ⑤二数组元素的默认初始化值* ⑥数组的内存解析* * 规定:二维数组分为外层数组的元素,内层数组的元素* int[][] arr = new int [4][3];* 外层元素;arr[0],arr[1]等;* 内层元素;arr[0][0],arr[1][2]等* 针对与初始化方式一:比如,int[][] arr = new int[4][3];* 外层元素的初始化值为:地址值* 内层元素的初始化值为;与一维数组初始化情况相同* 针对与初始化方式一:比如,int[][] arr = new int[4][];* 外层元素的初始化值为:null* 内层元素的初始化值为;不能调用,否则报错* * */public class ArrayTest {public static void main(String[] args) {//1.二维数组的声明和初始化int[] arr = new int[]{1,2,3};//一维数组//静态初始化int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};//动态初始化1String[][] arr2 = new String[3][2];//动态初始化2String[][] arr3 = new String[3][0];//也是正确的写法int arr4[][] = new int[][]{{1,2,3},{4,5},{6,7,8}};int[] arr5[] = new int[][]{{1,2,3},{4,5},{6,7,8}};//2.如何调用数组的指定位置的元素System.out.println(arr1[0][1]);//2System.out.println(arr2[1][1]);//nullarr3[1] = new String[4];System.out.println(arr3[1][0]);//3.获取数组的长度System.out.println(arr5.length);//3System.out.println(arr5[0].length);//3System.out.println(arr5[1].length);//2//4.如何遍历数组for(int i = 0; i < arr5.length;i++){for(int j = 0; j < arr5[i].length;j++){System.out.print(arr5[i][j] + " ");}System.out.println();}//5,二数组元素的默认初始化值int[][] arr = new int [4][3];System.out.println(arr[0]);//[I@15db9742 地址值System.out.println(arr[0][0]);//0System.out.println(arr);//[[I@15db9742//外层:地址值 内层:与一维数组初始化情况相同//6,数组的内存解析}
}
二维数组的内存解析
尚硅谷java学习笔记第五天(数组上)相关推荐
- Java学习笔记(五)——数组
一.数组使用方法 1. 声明数组 语法: 数据类型[ ] 数组名: 或者 数据类型 数组名[ ]: 其中,数组名可以是任意合法的变量名 2. 分配空间 简单地说,就是指定数组中最多可存储多少个元素 ...
- 尚学堂Java学习笔记
尚学堂Java学习笔记 ============================ J2SDK&JRE J2SDK:JAVA2 SOFTWARE DEVELOPMENT KIT JRE:JAVA ...
- 尚硅谷SpringBoot学习笔记
目录 简介编辑 快速搭建一个SpringBoot的网页 自动配置原理 容器功能 组件添加 原生配置文件引入 配置绑定 自动配置原理 1.引导加载自动配置类 2.按需配置开启自动配置项 开发小技巧 1 ...
- 尚硅谷Java入门视频教程第三章——数组
尚硅谷Java入门视频教程第三章 第二章复习 课后习题 复习 嵌套循环典型例题 Ecplise的安装使用 第3章:数组 3.1 数组的概述 3.2 一维数组的使用 3.3 多维数组的使用 3.4 数组 ...
- 尚硅谷JVM学习笔记:1.JVM与Java体系结构
JVM上篇:内存与垃圾回收篇(一) 笔记来源:尚硅谷宋红康JVM全套教程(详解java虚拟机)_哔哩哔哩_bilibili 1.JVM与Java体系结构 1.1前言 开发人员如何看待上层框架 一些有一 ...
- Dubbo之《尚硅谷》学习笔记
一.基础知识 1.分布式基础理论 1.1 什么是分布式系统? <分布式系统原理与范型>定义: "分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统" ...
- 尚硅谷Netty学习笔记
Netty 一些问题 1.阻塞与非阻塞 阻塞和非阻塞指的是执行一个操作是等操作结束再返回,还是马上返回 举例:在 BIO 案例的 handler 方法中,如果读取不到数据就会阻塞在 read() 方法 ...
- Docker_尚硅谷视频学习笔记
文章目录 1 Docker 简介 前提知识+课程定位 Docker 是什么? 问题:为什么会有docker出现 docker理念 总结 能干嘛 之前的虚拟机技术 容器虚拟化技术 开发/运维(DevOp ...
- 尚硅谷Vue2学习笔记分享
前言 这里是尚硅谷Vue2的学习笔记分享. 原视频是尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通 Vue3的笔记链接 文章目录 前言 初识Vue 模板语法 数据绑定 el和data ...
- JavaWeb尚硅谷【学习笔记】(整合)未完成
文章目录 一.HTML 1.网页的组成部分 2.HTML简介 3.HTML文件的书写规范 4.HTML标签的介绍 5.标签的语法 6.常用标签介绍 二.CSS技术 1.CSS技术介绍 2.CSS语法规 ...
最新文章
- LeetCode简单题之二进制矩阵中的特殊位置
- CSS列表和一些变化情况
- Python Cookbook (2) 文件
- 10-C++远征之模板篇-学习笔记
- 2021年中国余热回收锅炉市场趋势报告、技术动态创新及2027年市场预测
- [Errno 256] No more mirrors to try.
- 协卡助手未连接服务器,重新安装协卡助手安装进程卡死解决方法
- layim之创建群聊
- ManiGAN Text-Guided Image Manipulation
- ABP 代理JS 生成
- C语言入门(一):基础语法
- 仅存放常用的工具类,自用
- Adobe认证证书(ACCD/ACPE)说明
- 2022年厦门大学计算机考研复试分数线多少
- 实验室预约管理系统(Java+SSH+Web+MySQL+ofbiz系统)
- i am freshman
- PyDraw 所见即所得的 Python GUI 绘制框架 开源代码源自 JY Lin
- 信用评分卡模型解决方案
- C4D模型工具—镜像
- 计算机专业英语词组,计算机专业英语词组计算机专业英语词组.doc