IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 2021-09-21、22-学习日志10-IDEA基本运用 |数组 -> 正文阅读

[开发工具]2021-09-21、22-学习日志10-IDEA基本运用 |数组

1.IDEA的步骤

①创建一个空项目(JavaSE_Code)

②创建一个新模块(idea_test)

③在idea_test模块下的src下创建一个包(com.itheima)

④在com.itheima包下新建一个类(Helloworld)

⑤在HelloWorld类中编写代码

⑥在idea中执行程序

1.2)IDEADE 项目结构

?1.3)IDEA中内容辅助键和快捷键

1.3.1)内容辅助键:

①快速生成语句:

? ? ? ? ? ? ? ? 快速生成main()方法:psvm,回车

? ? ? ? ? ? ? ? 快速生成输出语句:sout,回车

②内容辅助键:

? ? ? ? ? ? ? ? Ctrl + Alt + space(内容提示,代码补全等)

1.3.2)快捷键:

①注释:

? ? ? ? ? ? ? ? 单行:选中代码,Ctrl + /,再来一次,就是取消

? ? ? ? ? ? ? ? 多行:选中代码,Ctrl + Shift + /,再来一次,就是取消

②格式化:

? ? ? ? ? ? ? ? Ctrl + Alt +L

2.数组

定义:数组(array)是一种用于存储多个相同类型数据的存储模型

2.1)定义格式:

格式一:????????数据类型[] 变量名

范例:? ? ? ? ? ? int[] arr

定义了一个 int 类型的数组,数组名是 arr

格式二:? ? ? ? 数据类型? ? ? ? 变量名[]

范例:? ? ? ? ? ? int? ? ? ? ? ? ? ? ? ?arr[]

顶一个一个int类型的变量,变量名是arr数组

3.数组初始化

概述:Java中的数组必须先初始化,然后才能使用。

所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值

数组初始化方式:

①动态初始化:初始化时只指定数组长度,由系统为数组分配初始值

格式:? ? ? ? 数据类型 [] 变量名 = new 数据类型[数组长度];

范例:? ? ? ? ? ? ? ? int [] arr = new int[3];

public class ArrayDemo1 {
    public static void main(String[] args) {
        int[] arr = new int[3];
        /*
            左边:
                int:说明数组中的元素类型时int类型
                []:说明这是一个数组
                arr:这是数组的名称
            右边:
                new:为数组申请内存空间
                int:说明数组中的元素类型时int类型
                []:说明这是一个数组
                3:数组长度,其实就是数组中的元素个数
         */
    }
}

②静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度

格式:????????数据类型 [] 变量名 = new 数据类型 [] {数据1,数据2,数据3,...};

范例:? ? ? ? ? ? ? ? int []?arr = new int [] {1,2,3};

简化格式:?数据类型 [] 变量名 = {数据1,数据2,数据3,...};

范例:? ? ? ? ? ? ? ? int [] arr = {1,2,3};? ??

public class ArrayDemo1 {
    public static void main(String[] args) {
        //定义数组
        int[] arr = {1, 2, 3};

        //输出数组名
        System.out.println(arr);

        //输出数组中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}

4.数组元素访问

①数组变量访问方式:

格式:数组名

*注数组名就是我们的数组变量,我们可以对他进行输出

②数组内部保存数据的访问方式(意思是:数组中的元素的访问凡是)

格式:数组名[索引]

*注:索引:是数组中数据的编号方式(计算机是从0开始)

? ? ? ? ?作用:索引用于发个文数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名

? ? ? ? ?特征①:索引从0开始

? ? ? ? ?特征②:索引是连续的

? ? ? ? ?特征③:索引逐一增加,每次加1

public class ArrayDemo1 {
    public static void main(String[] args) {
        int[] arr = new int[3];
        /*  动态初始化
            左边:
                int:说明数组中的元素类型时int类型
                []:说明这是一个数组
                arr:这是数组的名称
            右边:
                new:为数组申请内存空间
                int:说明数组中的元素类型时int类型
                []:说明这是一个数组
                3:数组长度,其实就是数组中的元素个数
         */
        //输出数组名
        System.out.println(arr);//[I@ba4d54
        //输出数组中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        //因为数组元素由3个,索引从0开始。
    }
}

5.内存分配

Java中的内存分配:Java程序在运行时们需要在内存中分配空间,为了提高运算效率,就对空间进行了不同区域的划分,因为每一篇区域都有特定的处理数据方式和内存管理方式???????

?

*注: int[3] 储存格式,左边 0,1,2 是索引,右边(三个0)是:数组在初始化时,会为存储空间添加默认值

整数:默认值0

浮点数:默认值0.0

布尔值:默认值false

字符:默认值是空字符

引用数据类型:默认值是null

?

?栈内存:存储布局变量

定义在方法中的变量,例如:arr使用完毕,立即消失

堆内存:存储new出来的内容(实体,对象)

数组在初始化时,会为存储空间添加默认值

????????整数:0

? ? ? ? 浮点数:0.0

? ? ? ? 布尔:false

? ? ? ? 字符:空字符

? ? ? ? 引用数据类型:null

每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收

?5.2)数组内存图(单个数组)

public class ArrayDemo2 {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr = new int[3];

        //输出数组名及元素
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

        //给数组中的元素赋值
        arr[0] = 100;
        arr[2] = 200;

        //再次输入数组名及元素
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}

?运行:

[I@ba4d54
0
0
0
[I@ba4d54
100
0
200

??5.3)数组内存图(多个数组)

public class ArrayDemo2 {
    public static void main(String[] args) {
       
        //定义两个数组
        int[] arr = new int[2];
        int[] arr2 = new int[3];
        
        //分别输出数组名及元素
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        
        System.out.println(arr2);
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);
        
        //然后分别给数组中的元素赋值
        arr[0] = 100;
        arr2[0] = 200;
        arr2[2] = 300;
        
        //分别再次输出数组名及元素
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        
        System.out.println(arr2);
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);
    }
}

?运行:

[I@ba4d54
0
0
[I@12bc6874
0
0
0
[I@ba4d54
100
0
[I@12bc6874
200
0
300

?

?5.4)数组内存图(多个数组指向相同)

public class ArrayDemo2 {
    public static void main(String[] args) {
        //定义第一个数组
        int[] arr = new int[3];
        arr[0] = 100;
        arr[1] = 200;
        arr[2] = 300;
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

        //定义第二个数组指向第一个数组
        int[] arr2 = arr;
        arr2[0] = 111;
        arr2[1] = 222;
        arr2[2] = 333;
        //输出两个数组的名及元素
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr2);
        System.out.println(arr[0]);
    }
}

?运行:

[I@ba4d54
100
200
300
[I@ba4d54
111
[I@ba4d54
111

?

?*注:当两个数组指向相同的时候,任何一个数组修改了对内存的数据,另外一个数组访问时,也是发生了改变。

?5.5)数组操作中的常见问题

①索引越界:如果访问了数组中不存在索引对应的元素,会造成索引越界问题

eg:

int[] arr = new int[3];

System.out.println(arr[3]);

*注:第一行数组元素是3,按照计算机的存储方式,索引从0开始,元素0,1,2;

? ? ? ? ?而第二行输出这个 arr[3] ,这里要求输出的是 arr数组索引3的对应数字,超出了索引目录

②控制异常:访问的数组已经不再指向对内存的数据,造成空指针异常

eg:

int[] arr = new int[3];

System.out.println(arr[2]);

arr = null

System.out.println(arr[0]);

*注:

null:空值,引用数据类型的默认值,表示不指向任何有效对象

public class ArrayDemo3 {
    public static void main(String[] args) {
        int[] arr = new int[3];

        /*
        System.out.println(arr[3]);
        ArrayIndexOutOfBoundsException
        */

        /*
        //把null赋值给数组
        arr = null;
        System.out.println(arr[0]);
        NullPointerException
        */

    }
}

6.数组常见操作

6.1)遍历

遍历:获取数组中每个元素

格式:数组名.length

范例:arr.length

*注:这样就能获取到 arr 数组中所有的元素个数

如上:通用格式:

int[] arr = {......};

for(int x=0;x<arr.length;x++){

? ? ? ? arr[x]

}

public class ArrayDemo4 {
    public static void main(String[] args) {
        //定义数组
        int[] arr = {11,22,33,44,55};
       
        //使用通用的遍历格式
        for(int x=0;x<arr.length;x++){
            System.out.println(arr[x]);
        }
    }
}

运行:

11
22
33
44
55

?6.2)最值

一般是采用数组来进行数据的保存的。

int[] arr = {...,...,...,...};

public class ArrayDemo5 {
    public static void main(String[] args) {
        //定义数组
        int[] arr = {12,39,58,99,77,66};

        //定义一个变量,用于保存最大值(or最小值)
        //取数组中第一个数据作为变量的初始值
        int max = arr[0];

        //与数组中剩余的数据逐个比对,每次比对将最大值保存到变量中
        for(int x = 1; x < arr.length; x++){
            if(arr[x] > max){
                max = arr[x];
            }
        }

        //循环结束打印变量的值
        System.out.println("max:" + max);
    }
}

运行:

max:99

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:39:21  更:2021-09-23 11:39:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:56:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码