第六课:数组和字符串

第六课:数组和字符串

一、数组的定义与格式

1、定义:存储同一种数据类型的多个元素的容器

2、格式:

  • 数据类型[ ] 数组名; eg. int [] a; 定义一个int类型的数组a变量
  • 数据类型 数组名[ ]; eg. int a [ ] ; 定义一个int类型的a数组变量

二、数组的初始化

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

  • 格式:数据类型[ ] 数组名= new 数据类型[数组长度]

    int []arr = new int[3];
    //定义了一个int类型的数组,这个数组中可以存放3个int类型的值
    
*补充知识 ——Java中的内存分配

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

区域 所存内容
栈(stack) 存储局部变量(基本类型的变量和对象的引用变量)
堆(heap) 存储new出来的东西(对象和数组)
方法区
本地方法区 和操作系统有关
寄存器 给CPU使用

局部变量:在方法定义中或者方法声明上的变量都称为局部变量

堆内存的特点:

  • ①每一个new出来的东西都有地址值

  • ②每个变量都有默认值:

    byte,short,int,long默认为0;

    float,double默认为0.0;

    char默认为\u0000;

    booean默认为false;

    除此之外的引用类型默认null

  • ③堆内存使用完毕就变成垃圾,但是并没有立即回收,会在垃圾回收器空闲的时候回收(栈内存的数据是用完就释放掉

2、静态初始化
  • 初始化时只给出初始值,由系统决定数组长度

  • 格式:数据类型 [] 数组名 = new 数据类型 [ ] {元素1,元素2…};

    int[] arr = new int[] {
         1,2,3};
    //定义了一个int类型的数组,这个数组中可以存放三个int类型的值,并且值分别是1,2,3
    int[] arr = {
         123};   //简化的写法
    

三、数组操作的常见问题

1、下标越界

数组下标由0开始,n个元素的数组下标最大是array[n-1],很容易写成array[n],这样就会下标越界。

2、空指针异常
//引用类型的常量,空常量,null
arr = null;
System.out,println(arr[0]);

此时数组为空常量,相当于数组名是个空指针,已经不再指向堆内存了,而我们依旧用了数组名去访问元素,就会导致空指针异常。

3、待补充。。。

四、数组的相关算法

1、数组的遍历

Java提供了数组长度属性,直接数组名.length就可以获取数组长度,常用作循环遍历数组的结束控制条件

 for(int i=0;i<arr.length;i++)
 {
   
     System.out.println(arr[i]);  
 }
2、获取数组的最大值
//求数组最大值的方法
public static int getMax(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值