【Java 入门】Day04-IDEA的使用&数组

#今日内容

  • IDEA基本使用
  • 数组的两种初始化(存储)
  • 数组元素访问(取出)
  • 数组内存图
  • 数组案例(掌握*****)

IDEA基本使用

参考《IDEA安装详解.pdf》

##01. 数组的概念

  • 什么是数组?
总结:
	1.  什么是数组?
		 可以存储多个元素,并且必须是同一种数据类型的元素的容器,叫数组


    	数组定义格式:
          格式一(推荐的方式):
                数据类型[] 数组名;
          格式二:
                数据类型 数组名[];

         实例:
             定义一个数组,存储学生成绩 浮点数
             double[] scores

             定义一个数组,存储学生的姓名
             String[] names

##02. 数组的定义格式一_动态初始化

  • 动态初始化格式为?
总结:
	什么是动态初始化:
		* 我们给出数组的长度,由系统给出默认的初始化值;
		int a = 10;
		
	   数组的格式:
	   	  数据类型[] 数组名 = new 数据类型[长度];

	   	 定义一个数组,存储50个学生成绩 浮点数
         double[] scores = new double[50];

         定义一个数组,存储80个学生的姓名
         String[] names = new String[80];

	   	

	格式解释:
		数据类型: 数组中的存储的元素是什么数据类型
	    []: 代表的是一维数组
	    数组名: 数组的名称 按照定义标识符的规则定义即可
	    new: 关键字,创建了一个数组
	    数据类型: 跟左边的数据类型是一致的
	    长度:  代表的是数组中可以存储多少个元素
	
举例:

##03. 访问数组元素进行获取

  • 直接打印数组变量, 结果是什么?
  • 索引概念如何解释?
  • 如何使用索引获取元素?
总结:

	1.直接打印数组变量名, 结果是什么?
		数组的地址值
	2.索引概念如何解释: 
		编号的意思,编号都是连续的
	3.如何使用索引获取元素
		获取元素的格式:
			数组名[索引]
		给元素赋值格式:
			数组名[索引] = 值;

	4.数组中最小索引是: 0
	  最大索引是: 数组的长度-1

##04. Java中的内存划分

  • Java中内存主要分为哪5个部分?
总结:
	* 栈 
		存储局部变量 在方法中或者是在方法的声明上()存储的变量
		程序的运行都必须要进栈的
	* 堆
		只要是能被new出来的都是存储在堆内存中
		地址值是以十六进制的形式打印出来的

		二进制  八进制  十六进制(0-9 a-f)

		整数类型 默认为 0
		浮点类型 默认为 0.0
		字符类型 默认为 '\u0000'  --> ' '
		布尔类型 默认为 false
		引用类型 默认为 null
	* 方法区
		存储.class文件的
	* 本地方法区
		跟系统有关的
	* 寄存器
		跟CPU有关系的

##05. 一个数组的内存图

##06. 两个数组的内存图

  • 看图说话
    总结: 每new一次, 系统就会在堆内存中开辟一块空间

##07. 两个引用指向同一个数组的内存图

##08. 数组的定义格式二_静态初始化

  • 静态初始化的基本格式为?
总结:
	静态初始化:
		我们给出数组中的元素,由系统自动计算数组的长度
		
		标准的格式:
			数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,....};
		简化的格式:
			数据类型[] 数组名 = {元素1,元素2,元素3,....};
		
举例:
  • 静态初始化有长度吗?
    有, 长度是有系统计算的
  • 两种初始化的应用场景?
总结:
	1. 如果我们知道数组的长度是多少,但是就是不知道数组中要存储的元素是什么,我们使用动态初始化

	2. 如果我们知道数组中要存储元素什么了,就不知道数组的长度是多少,就使用静态初始化

	   一个数组元素存储的是 星期一  星期日
	   String[] weeks = {"星期一","星期二",...."星期日"};

##09. 常见问题_数组索引越界异常

  • 索引越界异常如何产生的?
总结:
	1. 访问了不存在的索引 就会报 ArrayIndexOutOfBoundsException : 数组索引越界异常
	2.如何解决:
		只要访问存在的索引就可以解决这个问题

##10. 常见问题_空指针异常

  • 空指针异常如何产生的?
总结:
	引用类型变量 没有指向有效的堆内存中的地址了,就会报 NullPointerException: 空指针异常


	如何解决:
		只要让引用类型变量指向有效的堆存在中的地址即可,解决这个问题

#以下数组相关练习, 必须整明白 !!!

##11. 数组的遍历输出

案例代码:
    String[] weeks = {"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
    System.out.println(weeks[0]);
    System.out.println(weeks[1]);
    System.out.println(weeks[2]);
    System.out.println(weeks[3]);
    System.out.println(weeks[4]);
    System.out.println(weeks[5]);
    System.out.println(weeks[6]);

    System.out.println("~~~~~~~~~~~~~");

    for (int i = 0; i < weeks.length; i++) {
        System.out.println(weeks[i]);
    }

    // 数组名.fori 回车即可
    for (int i = 0; i < weeks.length; i++) {
        System.out.println(weeks[i]);
    }

##12. 求出数组中的最值

  • 需求: 获取数组中的最大值
思路:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值