一、基本概念:
1、数字为引用数据类型
2、数组实际上是一个容器,可以同时容纳多个元素
3、数组可存储基本数据类型,也可以存储引用数据类型的数据
4、数组一旦创建、长度不可变、且数组中元素类型必须统一
5、数组可以通过Length获取长度
6、数组中每个元素都有下标,0开始,以1递增,最后一个元素下标:Length-1
7、数组优点:查询某个下标的元素时候效率较高
8、数组缺点:数组增删元素效率比较低,无法存储大数据量
 
二、数组语法:
1、数组类型,以及动态初始化时默认值
int[] array1          --0
double[]array      --0.0
boolean[]array3  --false
String[]array4     --null
Object[]array5    --null(引用类型)
short[]array6      --0
long[]array7       --0.0L
float[]array8       --0.0F
char[]array9       --\u000
2、初始化
静态初始化:
int[]array1=new int[]{100,200,300};
动态初始化:默认值0
int[]array1=new int[5];
3、(反向)遍历一维数组
 
三、方法的参数为数组
1、参考示例
2、再说main方法,传递参数
Idea-run-editconfig-设置传递参数
 
四、数组存储为引用数据类型(结合多态实现)
package cnblogs;
public class TestAdvance09array4 {
public static void main(String[] args) {
Cat a1=new Cat();
Bird a2=new Bird();
Animal[] animals={a1,a2};
for(int i=0;i<animals.length;i++){
//调用公有的方法
animals[i].move();
//特有方法需要向下转型
if( animals[i] instanceof Cat) {
Cat cat=(Cat)animals[i];
cat.catchMouse();
}
else if( animals[i] instanceof Bird){
Bird bird=(Bird)animals[i];
bird.sing();
}
}
}
} class Animal{
public void move(){
System.out.println("Animal move...");
}
} class Cat extends Animal{
public void move() {
System.out.println("猫在走猫步...");
}
public void catchMouse(){
System.out.println("猫捉老鼠...");
}
} class Bird extends Animal{
public void move() {
System.out.println("鸟在飞翔...");
}
public void sing(){
System.out.println("鸟在唱歌...");
}
}
查询运行结果:
 
五、数组扩容(效率较低,因涉及到全量的拷贝)
1、arraycopy()方法,4个参数:
(1)源数组(2)起始下标(3)目标数组(4)起始下标(5)长度
2、示例代码
 
六、二维数组
1、二维数组的遍历
2、二维数组的入参传递
 

java进阶(9)--数组的更多相关文章

  1. Java进阶2 数组内存和对象的内存管理知识

    Java进阶2 数组内存和对象的内存管理知识 20131028 前言: 在面试的时候,如果是Java的编程语言,也许你认为没有什么可以问的,只能够说明你对于Java了解的太浅了,几乎就是两个星期的节奏 ...

  2. JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践

    JAVA进阶之旅(二)--认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践 我们继续聊JAVA,这次比较有意思,那就是反射了 一.认识 ...

  3. Java中的数组操作进阶

    package com.mi.array; import java.util.Arrays; /** * System.arraycopy(i, 0, j, 0, i.length);这种复制会覆盖目 ...

  4. Java进阶代码

    本文重在温习……不过初学以及进阶高手不可错过 1.  public static void arraycopy(全小写)(object src,int srcPos,object dest,int d ...

  5. 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)

    本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为.同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1. ...

  6. JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法

    JAVA进阶之旅(一)--增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法 学完我们的java之旅,其实收获还是很多的,但是依然还有很 ...

  7. Java进阶(三十九)Java集合类的排序,查找,替换操作

    Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...

  8. Java进阶(三十八)快速排序

    Java进阶(三十八)快速排序 前言 有没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对"6 1 2 7 ...

  9. Java进阶之路

    Java进阶之路——从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序 ...

  10. Java进阶3. 内存回收机制

    Java进阶3. 内存回收机制 20131029 前言: 学过C++的都知道,C++中内存需要程序员自己维护.说道这里,很多开发的同学就感觉很痛苦,当他转向Java的时候,就会说你看Java多好啊,程 ...

随机推荐

  1. Storm 集群的搭建及其Java编程进行简单统计计算

    一.Storm集群构建 编写storm 与 zookeeper的yml文件 storm yml文件的编写 具体如下: version: '2' services: zookeeper1: image: ...

  2. 看看 Asp.net core Webapi 项目如何优雅地使用分布式缓存

    前言 缓存是提升程序性能必不可少的方法,Asp.net core 支持多级缓存配置,主要有客户端缓存.服务器端缓存,内存缓存和分布式缓存等.其中客户端缓和服务器端缓存在使用上都有比较大的限制,而内存缓 ...

  3. 三个月我迁移了100PB数据

    2023年马上结束,这一年做了不少事情,有一项我可以吹好几年,忍不住和大家分享一下啊. 需求 去年底收到一项需求,要求2个月内从某云存储迁移100PB数据到微软云存储,包含几百亿个文件.当时听到这个数 ...

  4. Visual Studio 2022版本17.8中的实用功能

    前言 今天介绍一下Visual Studio 2022版本17.8这一发行版中的4个比较实用功能. 保留大小写查找和替换 这个功能之前就有,不过我觉得对于日常搜索.替换而言还是比较实用的.在执行查找. ...

  5. Centos 利用本地镜像安装yum源

    前提 在"设置"中确保两点 1.勾选"已连接" 2.添加上本地的"centos.iso"镜像文件 切换到用户目录 cd / 新建一个iso目 ...

  6. [Python急救站]百钱买百鸡

    百钱买百鸡:一人用100元买了100只鸡,其中公鸡5元一只,母鸡3元一只,小鸡1元一只.问:公鸡.母鸡.小鸡各多少只? 程序采用穷举法. for x in range(1, 21): for y in ...

  7. 文心一言 VS 讯飞星火 VS chatgpt (32)-- 算法导论5.2 4题

    四.利用指示器随机变量来解如下的帽子核对问题(hat-heck problem):n位顾客,他们每个人给餐厅核对帽子的服务生一顶帽子.服务生以随机顺序将帽子归还给顾客.请问拿到自己帽子的客户的期望数是 ...

  8. MySQL进阶篇:详解索引使用_最左前缀法则

    MySQL进阶篇:第四章_四.一_ 索引使用_最左前缀法则 最左前缀法则 如果索引了多列(联合索引),要遵守最左前缀法则.最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列.如果跳跃某一列 ...

  9. 手把手带你入门加密算法的Python实现

    摘要:一个简单的md5加密算法,带你解开所谓"加密"过程的神秘面纱. 一个简单的md5加密算法,非常适合新手练习 链接:> aHR0cDovL3d3dy5jaHVjaHVqa ...

  10. GaussDB(for openGauss)让数据“存得下、算得快、算得准”

    摘要:本文从总体架构.数据分布方式.计算下推.数据强一致等方面进行介绍GaussDB(for openGauss). 1.前言 随着云计算规模越来越大,企业业务数据量呈指数级增长,传统数据库在海量数据 ...