一、基本概念:
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. 衡兰芷若成绝响,人间不见周海媚(4k修复基于PaddleGan)

    一代人有一代人的经典回忆,1994年由周海媚.马景涛.叶童主演的<神雕侠侣>曾经风靡一时,周海媚所诠释的周芷若凝聚了汉水之钟灵,峨嵋之毓秀,遇雪尤清,经霜更艳,俘获万千观众,成为了一代人的 ...

  2. 启发式搜索(heuristic search)———A*算法

    在宽度优先和深度优先搜索里面,我们都是根据搜索的顺序依次进行搜索,可以称为盲目搜索,搜索效率非常低. 而启发式搜索则大大提高了搜索效率,由这两张图可以看出它们的差别: (左图类似与盲搜,右图为启发式搜 ...

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

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

  4. 一篇可供参考的 K8S 落地实践经验

    前言 k8s 即 Kubernetes,是一个开源的容器编排引擎,用来对容器化应用进行自动化部署. 扩缩和管理 本篇文章将分享 k8s v1.18.8 的安装,以及其面板,监控,部署服务,使用Ingr ...

  5. GaussDB(DWS)中的分布式死锁问题实践

    本文分享自华为云社区<GaussDB(DWS)中的分布式死锁问题实践>,作者: 他强由他强 . 1.什么是分布式死锁 分布式死锁是相对于单机死锁而言,一个事务块中的语句,可能会分散在集群里 ...

  6. X410的白嫖方案

    微软商店下的x410要收费试用也就几天,记录白嫖方案.配置和使用跳转到上一篇文章:Windows下使用图形化的Havoc C2 编译运行 GitHub上start最多的是这个仓库,但是已经很久没有维护 ...

  7. 面试官喜欢问Nacos原理?直接把这篇文章甩给他!

    大家好,我是三友~~ 今天就应某位小伙伴的要求,来讲一讲Nacos作为服务注册中心底层的实现原理 不知你是否跟我一样,在使用Nacos时有以下几点疑问: 临时实例和永久实例是什么?有什么区别? 服务实 ...

  8. Python——第二章:文件操作

    文件操作 1. 找到这个文件. 双击打开它 open(文件路径, mode="", encoding="") 文件路径: 1. 绝对路径 d:/test/xxx ...

  9. 一文了解Vprix容器流媒体平台和传统云桌面的区别、优劣势

    在当今数字化时代,随着云计算和远程办公的兴起,云桌面项目成为了提升工作效率和灵活性的重要工具.云桌面项目通过将用户的桌面环境和应用程序虚拟化,为用户提供了随时随地访问个人工作环境的便利.本文将介绍Vp ...

  10. html2pdf

    nodejs 生成pdf比较靠谱,使用chrome核心渲染: puppeteer / phantom 爬虫都好用 good