类比C语言初识Java(3)

1.输入

2.一维数组的定义与使用

3.数组是引用类型

4.二维数组

1.输入

我们先回想C语言当中如何输入,一般使用scanf进行数据的输入。而在Java中,输入这个操作要更加繁琐。

首先,我们先输入Scanner+enter,进行导包这个操作。至于什么是包,什么又叫导包,我们后面在类和对象中再进行了解。现阶段我们只需要进行Scanner+enter这个输入就可以了,Java会帮助我们自动导包。当导包成功后,我们代码顶上会出现这个包:

 而后,我们在Scanner后面加上这样一行代码:

Scanner scan=new Scanner(System.in);

我们可以记忆为固定格式,这样,我们就可以利用scan关键字进行输入的操作。因为可以输入的数据类型有很多,我们就举几个例子:

1)String a=scan.nextLine();->读入一行

2)int b=scan.nextInt();->读入一个整形

当我们需要输入的数据不同,scan.后面的便也不同,读者可以自行摸索,我们也可以通过帮助手册进行搜索,查找我们的需要。这里我们选取一些

当我们输入完成的时候,最后要加一行scan.close();进行资源的关闭。 

2.一维数组的定义和使用

在C语言中,我们数组的创建是这样的:

int arr[5]={0,1,2,3,4};

在java中,数组的定义略有不同,有三种方式进行创建。其中一种是与C语言完全相同,在Java中也能用上一行的代码进行创建,但Java中一般不会这么写。那么我们来介绍另外两种创建方式:

1)int[]arr2=new int[10];->创建了一个大小为十的数组

2)  int[]arr3=new int[]{0,1,2,3,4};->创建了一个元素为0,1,2,3,4的数组

那么,arr2并没有初始化,那么此时这个数组中存放的是多少呢?同样,如果我们定义一个char数组呢?boolean数组呢?我们可以通过调试进行观察。

我们能看到,当我们并未进行初始化时,int型存放的都是0;double型存放的是0.0,同样short long 可以以此类推。而需要注意的是,char类型数组每一个元素存放的是\u0000,布尔型数组存放的全部是false,这是需要我们记住的。 

我们可以通过使用循环遍历数组。在C语言中我们用sizeof(arr)/sizeof(arr[0])进行数组长度的计算,但在Java中,我们只需要通过 数组名.length 就可以得到数组的长度,更加方便。下面我们利用这两点对数组进行输出:

        int[]arr=new int[]{0,1,2,3,4};
        int i=0;
        for(i=0;i<arr.length;i++){
            System.out.println(arr[i]);

 这样我们就能够输出这个数组:

3.数组是引用类型

数组是一种引用类型。当我们创建出int[]arr1=new int[]{0,1,2,3,4}这样一个数组的时候,它代表着arr1这个引用指向了这样一个数组对象,指向了0的地址。那么,下面这行代码又是什么意思呢?

int[]arr2=arr1;

这代表着当前这个数组对象有两个引用正在指向,即这两个引用同时指向了一个对象。那么,当我们通过arr1对数组的元素进行改变时arr2也会进行改变,反之一样,因为他们本质指向了同一个对象。这里我们需要注意,引用不可以指向引用,arr2仅仅指向了arr1这个引用所指向的对象。

当一个对象再没有引用指向它了,那么JVM会自动将它回收掉。

下面我们一起来认识NULL

int[]arr3=null;

这代表arr3这个引用并不指向任何对象。arr3并没有长度,那么如果强行输出arr3长度,会出现什么呢?

        int[]arr3=null;
        int a=0;
        a=arr3.length;
        System.out.println(a);

当我们运行起来,会发现Java报了异常,这个异常叫空指针异常,Java中不存在 指针的概念,它仅仅表示这个null没有长度可言。

4.二维数组

二维数组可以简单理解为用一维数组为元素组成的一维数组,具体有如下创建方式:

1)int[][]arr1={{1,2,3},{4,5,6},{7,8,9}};

2)int[][]arr2=new int[2][2];

而创建后未初始化时数组中的元素与一维数组完全一样。我们用arr[0].length访问列的长度,即有几列,用arr.length访问行的长度,即有几行。

当我们在Java中写不规则数组时,列可以省略,但行不能省略。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值