java数组-一维数组

数组意义

-为了存储同种数据类型的多个值

数组概念

  • 数组是存储同一种数据类型多个元素的集合,也可以看成一个容器。
  • 数组可以存储基本数据类型,也可以存储引用数据类型。

数组定义格式

  • 数组类型[ ] 数组名 = new 数据类型[ 数组的长度 ]

数组的初始化动态初始化*

  • 什么是数组的初始化
  • 如何对对象数组进行初始化
    • 动态初始化 只指定长度,由系统给出初始值
      • int[ ] arr = new int[ 5 ];
      • 注意:不同类型的数组的默认值:
        • 整数类型:byte,short,int,long默认初始化只都是0;
        • 浮点类型:float,double默认初始化只都是0.0
        • 布尔类型:Boolean默认初始化只都是false
        • 字符类型:char默认初始化值’\u0000’
          • char在内存中占的两个字节,是16个二进制位
          • \u0000,每一个0其实代表的是16进制的0,那么四个0就是代表16个二进制位
            • 例如:输出arr的值为(system.out.print(arr)):[I@19bb25a
              • [ 代表是数组,几个就代表几维
              • I 代表是int类型
              • @ 是固定的
              • 19bb25a 代表的是十六进制的地址值
    • 静态初始化 给出初始值,由系统决定长度
  • 静态初始化的格式:
    • 数据类型[ ] 数组名 = new 数据类型 [ 数组长度 ];(数据类型[ ] 数组名 = new 数据类型[ ] {元素1,元素2,…..})
    • 简易格式:数据类型[ ] 数组名 = {元素1,元素2,…..}

      1、int[ ] arr = new int[]{0,1,2,5,6};
      也可以(先声明再赋值):
      int [ ] arr ; //声明数组引用
      arr = {0,1,2,5,6};
      不可以:int[ ] arr = new int[ 5 ]{0,1,2,5,6};
      2、int[ ] arr = {0,1,2,5,6};注:这种必须声明和赋值一起。

java中内存分配及栈和堆的区别

  • 栈(先进后出):
    • 存储局部变量(局部变量:定义在方法声明上和方法中变量)
  • 堆:
    • 存储new出来的数组或对象
  • 方法区:
    • 面向对象
  • 本地方法区:
    • 和系统相关
  • 寄存器:
    • 给CPU用的
      解说图一:
      这里写图片描述
      解说图二:
      这里写图片描述

数组下标越界异常,访问到数组中不存在的索引:

public class TestArray {
    public static void main(String[] args){
        int[] array = new int[3];//动态初始化,创建3块连续的空间。
        System.out.println(array[5]);
    }
}

报的错误,数组越界异常或叫角标越界异常:
这里写图片描述

获取数组的最值:

public class TestArray {
    public static void main(String[] args){
        int[] array = new int[]{1,5,6,8,9};
        getMax(array);
    }

    public static void getMax(int[] array){
        int max = array[0];
        for (int i = 0; i < array.length; i++){
            if (max < array[i]) max = array[i];
        }
        System.out.println(max);
    }
}

数组的反转(首位调换)

代码:

public static void main(String[] args){
        int[] array = new int[]{1,5,6,8,9};
        reverseArray(array);
        printArray(array);
    }

    public static void reverseArray(int[] arr){
        //arr[0]与arr[arr.length - 1 - 0]交换
        for (int i = 0;i < arr.length / 2; i++){
            int temp = arr[i];
            arr[i] = arr[arr.length -1 - i];
            arr[arr.length-1-i] = temp;
        }
    }

    public static void printArray(int[] arr){
        for (int i = 0 ;i < arr.length; i++)
            System.out.println(arr[i]);
    }

根据所给的数据获取该值在数组中的索引

代码:

public static void main(String[] args){
        int[] array = new int[]{1,5,6,8,9};
        System.out.println(getIndex(array, 8));
    }

    public static int getIndex(int[] arr , int value){
        for (int j = 0; j < arr.length; j ++){
            if (arr[j] == value)
                return j;
        }
        return -1;
    }
基于数据挖掘的音乐推荐系统设计与实现 需要一个代码说明,不需要论文 采用python语言,django框架,mysql数据库开发 编程环境:pycharm,mysql8.0 系统分为前台+后台模式开发 网站前台: 用户注册, 登录 搜索音乐,音乐欣赏(可以在线进行播放) 用户登陆时选择相关感兴趣的音乐风格 音乐收藏 音乐推荐算法:(重点) 本课题需要大量用户行为(如播放记录、收藏列表)、音乐特征(如音频特征、歌曲元数据)等数据 (1)根据用户之间相似性或关联性,给一个用户推荐与其相似或有关联的其他用户所感兴趣的音乐; (2)根据音乐之间的相似性或关联性,给一个用户推荐与其感兴趣的音乐相似或有关联的其他音乐。 基于用户的推荐和基于物品的推荐 其中基于用户的推荐是基于用户的相似度找出相似相似用户,然后向目标用户推荐其相似用户喜欢的东西(和你类似的人也喜欢**东西); 而基于物品的推荐是基于物品的相似度找出相似的物品做推荐(喜欢该音乐的人还喜欢了**音乐); 管理员 管理员信息管理 注册用户管理,审核 音乐爬虫(爬虫方式爬取网站音乐数据) 音乐信息管理(上传歌曲MP3,以便前台播放) 音乐收藏管理 用户 用户资料修改 我的音乐收藏 完整前后端源码,部署后可正常运行! 环境说明 开发语言:python后端 python版本:3.7 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:pycharm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值