欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > 【java】一维数组

【java】一维数组

2025/11/28 6:36:01 来源:https://blog.csdn.net/weixin_45746689/article/details/140992570  浏览:    关键词:【java】一维数组

目录

  • 一维数组内存分析
    • Java虚拟机的内存划分
    • 一维数组内存解析
  • 一维数组知识点
  • 一维数组课后练习

一维数组内存分析

Java虚拟机的内存划分

为了提高运行效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
在这里插入图片描述

java中的内存结构是如何划分的?(主要关心JVM的运行时内存环境)
将内存区域划分为5个部分,程序计数器、虚拟机栈、本地方法栈、堆、方法区
与目前数组相关的内存结构: int [] arr = new int[]{1,2,3}
1、虚拟机栈:用于存放方法中声明的变量.比如:arr
2、堆:用于存放数组的实体(即数组中的所有元素).比如:1,2,3

一维数组内存解析

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

一维数组知识点

package ArrayTest;/*** 1、数组的概念:是多个相同类型数据按照一定排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。* 2、数组的特点:①数组中的元素在内存中依次紧密排列的,有序的*              ② 属于引用数据类型变量;数组的元素可以是基本数据类型,也可以是引用数据类型*              ③数组一旦初始化完成,数组的长度就确定了;并且数组长度不能更改*              ④创建数组队形会在内存中开辟一整块"连续的空间"。占据的空间大小,取决于数组的长度和数组中元素的类型。* 3、数组的分类:*       ①:按照元素的类型:基本数据类型的数组、引用数据类型的数组*       ②:按照数组的维度来分:一维数组、二维数组。。。* 4、一维数组的使用:*       ①数组的声明和初始化*       ②调用数组的指定元素*       ③数组的属性:length,表示数组的长度*       ④数组的遍历*       ⑤数组元素的默认初始化值*           1)浮点型数组元素的默认初始化值*           2)字符型数组元素的默认初始化值*           3)字符型数组元素的默认初始化值*           4)boolean型数组元素的默认初始化值*           5)引用数据类型数组元素的默认初始化值*       ⑥一维数组的内存解析*/public class OneArrayTest {public static void main(String[] args) {//1、数组的声明和初始化// 声明数组double[] prices;// 静态初始化:数组变量的赋值与数组元素的赋值操作同时进行prices = new double[]{12.34,13.11};//        String[] names = new String[]{"拌海蜇","龙须菜"};// 动态初始化:数组变量的赋值与数组元素的赋值操作分开进行String[] foods = new String[4];//2、数组元素的调用//通过角标的方式,获取数组元素//角标的范围从0开始,到数组长度-1结束
//        System.out.println(prices[0]);foods[0]="拌海蜇";foods[1]="龙须菜";foods[2]="炝冬瓜";foods[3]="玉兰花";
//        System.out.println(foods[2]);//3、数组的长度:用来描述数组容器中容量的大小
//        System.out.println(prices.length);
//        System.out.println(foods.length);//4、数组的遍历for(int i=0;i<prices.length;i++){System.out.println(prices[i]);}//        //5、数组元素的默认初始化值
//        int arr1 [] = new int[3];
//        System.out.println(arr1[0]);}}
package ArrayTest;public class OneArrayTest1 {public static void main(String[] args) {//5.数组元素的默认初始化值//整型数组元素初始化值:0int [] arr1 = new int[4];System.out.println(arr1[0]);int[] arr2 = new int[4];for(int i=0;i<arr2.length;i++){System.out.println(arr2[i]);}//浮点型数组元素的默认初始化值:0.0float [] float1 = new float[4];System.out.println(float1[0]);//字符型数组元素的默认初始化值:0char [] char1 = new char[4];System.out.println(char1[0]);if(char1[0]==0){System.out.println("111");}else if(char1[0]=='0'){System.out.println("222");}else if(char1[0]=='\u0000'){System.out.println("333");}//boolean型数组元素的默认初始化值:falseboolean [] boolean1 = new boolean[4];System.out.println(boolean1[1]);//引用数据类型数组元素默认初始化值:nullString [] strings = new String[4];for(int i=0;i<strings.length;i++){System.out.println(strings[i]);}//6.数组的内存解析int a1[] = new int[]{1,2,3,4};int [] a2 = a1;a2[1]=10;System.out.println(a1[1]); //10}
}

一维数组课后练习

package ArrayTest;import java.util.Arrays;
import java.util.Scanner;public class OneArrayExer {public static void main(String[] args) {/*** 案例:“破解”房东电话号码*/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 tell = "";for(int i=0;i<index.length;i++){int value = index[i];//2 3tell+=arr[value];//2}System.out.println(tell);/*** 案例:输出英文星期几* 用一个数组,保存星期一到星期天的7个英语单词,从键盘输入1-7,显示对应的单词* {"Monday","Tuesday","Wednesday","Thursday","Friday""Saturday","Sunday"}*/String [] days = new String[]{"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};Scanner scanner = new Scanner(System.in);int number = scanner.nextInt();if(number<1 || number >7){System.out.println("您输入的数据有误。");}elseSystem.out.println(days[number-1]);/*** 案例:学生考试等级划分* 从键盘读入学生成绩,找出最高分,并输出学生成绩等级* 成绩>=最高分-10  等级为‘A'* 成绩>=最高分-20  等级为‘B'* 成绩>=最高分-30  等级为‘C'* 其余 等级为‘D'*提示:先读入学生人数,根据人数创建int数组,存放学生成绩*/System.out.println("请输入学生人数");int num = scanner.nextInt();System.out.print("请输入"+num+"个学生成绩");double [] grade =new double[num];for(int i=0;i<grade.length;i++){int grades = scanner.nextInt();grade[i]=grades;}double max_num = max(grade);System.out.println("最高分为:"+max_num);for(int j=0;j<grade.length;j++){if(grade[j]>=max_num-10){System.out.println("等级为A");}else if(grade[j]>=max_num-20){System.out.println("等级为B");}else if(grade[j]>=max_num-30){System.out.println("等级为C");}else{System.out.println("等级为D");}}}private static double max(double[] grade) {Arrays.sort(grade);return grade[grade.length-1];}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词