1、创建数组的三种方式:

①动态初始化:数组的初始化和数组元素的赋值操作分开进行

  dataType[ ] arrayRefVar = new dataType [ arraySize ] ;

            Emp [] emps=new Emp[3];
Emp emp1=new Emp(null,"a1",12,"0");
Emp emp2=new Emp(null,"aa2",13,"1");
Emp emp3=new Emp(null,"aaa3",14,"0");
emps[0]=emp1;
emps[1]=emp2;
emps[2]=emp3;

②类型推断:  dataType[ ] arrayRefVar = { value1,value2,..., valueN };

            Emp emp1 = new Emp(null, "a", 23, "男");
Emp emp2 = new Emp(null, "aa", 23, "男");
Emp emp3 = new Emp(null, "aaa", 23, "男");
Emp[] emps = {emp1, emp2, emp3};

③静态初始化:数组的初始化和数组元素的赋值操作同时进行

  dataType[ ] arrayRefVar = new dataType [ ] {value1,value2,..., valueN };

            Emp emp11=new Emp(8,"sdh",133,"1");
Emp emp22=new Emp(9,"sds",134,"0");
Emp[] emps11 = new Emp[] {emp11,emp22};

总结:有且总有一个体现元素个数的位置

2、数组的特点:
  ①数组是序排列的
  ②数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型
  ③创建数组对象会在内存中开辟一整块连续的空间
  ④数组的长度一旦确定,就不能修改。
3、数组的分类:
  ① 维数:一维数组、二维数组、。。。
  ② 数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组

4、一维数组元素的默认初始化值
  > 数组元素是整型:0
  > 数组元素是浮点型:0.0
  > 数组元素是char型:0或'\u0000',而非'0'
  > 数组元素是boolean型:false
  > 数组元素是引用数据类型:null

5、数组常见的异常类型

  ①.数组角标越界异常:ArrayIndexOutOfBoundsException

  ②.空指针异常:NullPointerException

二维数组的声明与初始化
正确的方式:   int[] arr = new int[]{1,2,3};//一维数组
//静态初始化
int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
//动态初始化1
String[][] arr2 = new String[3][2];
//动态初始化2
String[][] arr3 = new String[3][];
   //也是正确的写法:
int[] arr4[] = new int[][]{{1,2,3},{4,5,9,10},{6,7,8}};
int[] arr5[] = {{1,2,3},{4,5},{6,7,8}};//类型推断

二维数组元素的默认初始化值
 *  规定:二维数组分为外层数组的元素,内层数组的元素
 *   int[][] arr = new int[4][3];
 *   外层元素:arr[0],arr[1]等
 *   内层元素:arr[0][0],arr[1][2]等
 *
 *   数组元素的默认初始化值
 *   针对于初始化方式一:比如:int[][] arr = new int[4][3];
 *      外层元素的初始化值为:地址值
 *      内层元素的初始化值为:与一维数组初始化情况相同
 *     
 *   针对于初始化方式二:比如:int[][] arr = new int[4][];
 *    外层元素的初始化值为:null
 *      内层元素的初始化值为:不能调用,否则报错。

Arrays 类

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

  • 给数组赋值:通过 Arrays.fill 方法。
  • 对数组排序:通过 Arrays.sort 方法,按升序。
  • 比较数组:通过 Arrays.equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 Arrays.binarySearch 方法能对排序好的数组进行二分查找法操作
  • 将数组变成字符串(public static String toString(数组))Arrays.toString()

Java数组和Arrays 类的更多相关文章

  1. Java数组05——Arrays类

    Arrays类讲解  package array; ​ import java.util.Arrays; ​ public class ArrayDemon07 {     public static ...

  2. java数组中Arrays类

    使用Arrays类之后要先导入包,即在开头添加这行: import.java.util.Arrays 1,排序:Arrays.sort(数组名) 排序后为数组升序. 2,将数组转换成字符串:Array ...

  3. Java常用API(Arrays类)

    Java常用API(Arrays类) 什么是Arrays类? java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等.其所有方法均为静态方法,调用起来 非常简单. 这里我们 ...

  4. Java数组声明创建和使用以及多维数组、Arrays类、稀疏数组

    目录 数组概述 数组声明创建 内存分析 java内存分析 堆 栈 方法区 三种初始化 静态初始化 动态初始化 数组的默认初始化 数组的四个基本特点 数组边界 小结: 数组使用 数组基础使用 For E ...

  5. jdk1.8 对数组及arrays类对数组的操作与增强

    数组的初始化有两种方式 静态初始化: 初始化时由程序员显示置顶每个数组的初始值,由系统决定数组长度.如: int[] a1 = new int[] {1,2,3,4}; 动态初始化:初始化时由程序员只 ...

  6. Java基础 【Arrays 类的使用】

    package com.zuoyan.sort; import java.util.Arrays; public class ArraysClassDemo { public static void ...

  7. Java中的Arrays类使用详解

    首先先创建一个打印数组的方法,方便后面直接使用 public static void output(int []a) { for(int i=0;i<a.length;i++) { System ...

  8. java中的Arrays类

    今天刚接触了数组,学到了几个比较常用的方法 Fill方法:给数组赋值 sort方法:给数组升序 equals方法:比较数组中元素 值是否相等 binarySearch方法:对排序好的数组进行二分查找法 ...

  9. [java初探05]__数组的简单认识及Arrays类的常用方法

    数组是具有相同数据类型的一组数据的集合.在程序设计中,这样的集合称之为数组.数组的每个元素都具有相同的数据类型,在Java中数组也被看为一个对象. 在里,了解了数组的定义之后, 我们知道了,数组并不是 ...

随机推荐

  1. SMTP协议解读以及如何使用SMTP协议发送电子邮件

    电子邮件协议中POP3协议用于接收邮件,SMTP协议用于发送邮件.SMTP的全称为Simple Mail Transfer Protocol,也就是简单邮件传输协议,字如其名.   相较于POP3而言 ...

  2. 通过 SingleFlight 模式学习 Go 并发编程

    最近接触到微服务框架go-zero,翻看了整个框架代码,发现结构清晰.代码简洁,所以决定阅读源码学习下,本次阅读的源码位于core/syncx/singleflight.go. 在go-zero中Si ...

  3. Ubuntu22.04搭建PWN环境

    前言 最近尝试在Ubuntu最新的版本22.04版本上搭建PWN环境,有了之前在kali上搭建的经验,总的来说问题不大.但搭建的时候还是有不少地方出错了,好在搭建的过程中不断的拍摄快照,所以整个过程还 ...

  4. XCTF练习题---WEB---view_source

    XCTF练习题---WEB---view_source flag:cyberpeace{662b1cf989a0a7999a5589290ce5a88e} 解题步骤: 1.观察题目,打开场景 2.根据 ...

  5. Linux服务器安全加固10条建议

    以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过. 设置复杂密码 服务器设置大写.小写.特殊字符.数字组成的12-16位的复杂 ...

  6. Keepalived入门学习

    一个执着于技术的公众号 Keepalived简介 Keepalived 是使用C语言编写的路由热备软件,该项目软件起初是专门为LVS负载均衡设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后 ...

  7. MySQL(3) - 数据库表的相关操作

    1.数据库表的创建 逻辑库 1)创建逻辑库:CREATE DATABASE 逻辑库名称; 2)显示逻辑库:SHOW DATABASES; 3)删除逻辑库:DROP DATABASE 逻辑库名称; 数据 ...

  8. 生成器对象(自定义迭代器),自定义range方法,模块

    自定义迭代器 一 .生成器与yield ''' 我们得到一个迭代器通常都是调用可迭代对象的__iter__方法 ,例如 list.iter() 得到一个迭代器, 但是当list很大时候,就违背了pyt ...

  9. linux篇-centos7搭建apache服务器(亲测可用)

    1安装apache yum install httpd httpd-devel -y 2开启服务器 systemctl start httpd.service 3开机自启 systemctl enab ...

  10. df-查看磁盘目录空间大小

    查看磁盘分区挂载情况. 语法 df [option] 选项 -T 显示文件系统类型. -h 带单位显示. 示例 [root@localhost ~]# df -Th Filesystem Type S ...