复习

/*
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学习笔记第五天(数组上)相关推荐

  1. Java学习笔记(五)——数组

    一.数组使用方法 1. 声明数组 语法: 数据类型[ ] 数组名: 或者   数据类型 数组名[ ]: 其中,数组名可以是任意合法的变量名 2. 分配空间 简单地说,就是指定数组中最多可存储多少个元素 ...

  2. 尚学堂Java学习笔记

    尚学堂Java学习笔记 ============================ J2SDK&JRE J2SDK:JAVA2 SOFTWARE DEVELOPMENT KIT JRE:JAVA ...

  3. 尚硅谷SpringBoot学习笔记

    目录 简介​编辑 快速搭建一个SpringBoot的网页 自动配置原理 容器功能 组件添加 原生配置文件引入 配置绑定 自动配置原理 1.引导加载自动配置类 2.按需配置开启自动配置项 开发小技巧 1 ...

  4. 尚硅谷Java入门视频教程第三章——数组

    尚硅谷Java入门视频教程第三章 第二章复习 课后习题 复习 嵌套循环典型例题 Ecplise的安装使用 第3章:数组 3.1 数组的概述 3.2 一维数组的使用 3.3 多维数组的使用 3.4 数组 ...

  5. 尚硅谷JVM学习笔记:1.JVM与Java体系结构

    JVM上篇:内存与垃圾回收篇(一) 笔记来源:尚硅谷宋红康JVM全套教程(详解java虚拟机)_哔哩哔哩_bilibili 1.JVM与Java体系结构 1.1前言 开发人员如何看待上层框架 一些有一 ...

  6. Dubbo之《尚硅谷》学习笔记

    一.基础知识 1.分布式基础理论 1.1 什么是分布式系统? <分布式系统原理与范型>定义: "分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统" ...

  7. 尚硅谷Netty学习笔记

    Netty 一些问题 1.阻塞与非阻塞 阻塞和非阻塞指的是执行一个操作是等操作结束再返回,还是马上返回 举例:在 BIO 案例的 handler 方法中,如果读取不到数据就会阻塞在 read() 方法 ...

  8. Docker_尚硅谷视频学习笔记

    文章目录 1 Docker 简介 前提知识+课程定位 Docker 是什么? 问题:为什么会有docker出现 docker理念 总结 能干嘛 之前的虚拟机技术 容器虚拟化技术 开发/运维(DevOp ...

  9. 尚硅谷Vue2学习笔记分享

    前言 这里是尚硅谷Vue2的学习笔记分享. 原视频是尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通 Vue3的笔记链接 文章目录 前言 初识Vue 模板语法 数据绑定 el和data ...

  10. JavaWeb尚硅谷【学习笔记】(整合)未完成

    文章目录 一.HTML 1.网页的组成部分 2.HTML简介 3.HTML文件的书写规范 4.HTML标签的介绍 5.标签的语法 6.常用标签介绍 二.CSS技术 1.CSS技术介绍 2.CSS语法规 ...

最新文章

  1. LeetCode简单题之二进制矩阵中的特殊位置
  2. CSS列表和一些变化情况
  3. Python Cookbook (2) 文件
  4. 10-C++远征之模板篇-学习笔记
  5. 2021年中国余热回收锅炉市场趋势报告、技术动态创新及2027年市场预测
  6. [Errno 256] No more mirrors to try.
  7. 协卡助手未连接服务器,重新安装协卡助手安装进程卡死解决方法
  8. layim之创建群聊
  9. ManiGAN Text-Guided Image Manipulation
  10. ABP 代理JS 生成
  11. C语言入门(一):基础语法
  12. 仅存放常用的工具类,自用
  13. Adobe认证证书(ACCD/ACPE)说明
  14. 2022年厦门大学计算机考研复试分数线多少
  15. 实验室预约管理系统(Java+SSH+Web+MySQL+ofbiz系统)
  16. i am freshman
  17. PyDraw 所见即所得的 Python GUI 绘制框架 开源代码源自 JY Lin
  18. 信用评分卡模型解决方案
  19. C4D模型工具—镜像
  20. 计算机专业英语词组,计算机专业英语词组计算机专业英语词组.doc

热门文章

  1. 【ESP32之旅】ESP32C3 Arduino库使用方法
  2. 【开源】技术宅硬核跨年,DIY墨水屏日历:自动刷新位置、天气,随机播放2000多条「毒鸡汤」...
  3. Python:忽如一夜春风来,千树万树梨花开
  4. 查看主板型号 两种方法
  5. 基于雷电模拟器利用python制作手游脚本 (神都夜行录,古剑奇谭木语人) (一)
  6. 云计算与分布式技术-常见云的比较
  7. 东芝和摩飞多功能锅到底哪一款值得拔草呢?本篇深度评测让你剁手不后悔;
  8. repo的安装和使用
  9. Pytorch:三、数据的迭代训练(猫狗)
  10. pythyon爬虫实现12306查票