一、初步认识数组
1.理解数组
数组是用来存储相兼容数据类型的定长的容器
特点:

a.只能存放相兼容数据类型,不能存放多种数据类型
b.可以存放基本数据类型和引用数据类型
c.数组是定长的,一旦被初始化,数组的长度就不能发生改变
d.将数组中存储的数据称为元素
2.使用数组的好处:
可以自动给数组中的数据从0开始编号,方便操作这些数据,我们把这些编号叫做下标(索引)

3.定义数组
数组是一种引用数据类型
int x = 4;
int 是一种基本数据类型,int[]是一种引用数据类型,用来表示数组

int[] y = xxx;

方式一:数据类型[] 数组名称,例如:int[] x,String[] s
方式二:数据类型 数组名称[]
推荐使用方式一

二、数组的初始化

Java中的数组必须先初始化,然后才可以使用,所谓初始化,就是为数组中的每个数组元素开辟内存空间,并且为每个元素赋初始值

1.静态初始化
初始化的时候由程序员指定每个数组元素的初始值,交给系统去计算数组的长度(大小)
语法:元素类型[] 数组名称 = new 元素类型[]{元素0,元素1,元素2.。。。。。};

2.动态初始化
初始化是程序员只需要指定数组的大小(长度),对应的初始值由系统自行进行分配
语法:元素类型[] 数组名称 = new 元素类型[数组的长度];

系统对初始值的分配规则:
a.整型:0
b.浮点型:0.0
c.boolean:false
d.字符型:‘\u0000’(在不同的系统平台上的展示结果是不一样的,有的是方框(口),有的是空格)
e.引用数据类型:null

注意:在初始化数组时,静态初始化和动态初始化一定不要同时使用(在指定数组长度的同时,不要给数组中每个元素赋初始值)

数组初始化完成之后,就可以使用数组了,包括数组元素的访问,给数组元素赋值,获取数组的长度等

三、数组的使用
见代码

四、内存中的数组

数组是一种引用数据类型,数组元素和引用变量在内存中时分开存放的
数组引用变量存放在栈空间中,数组元素存放在堆空间中

扩展:
1>基本数据类型和引用数据类型在内存中的区别?
基本数据类型
int x = 4;
int y = x;
y = 20;
x = ?

引用数据类型
int[] a = {22,33};
int[] b = a;
b[0] = 18;
a[0] = ?

2>内存的分类:
a.寄存器:最快的存储区,由编译器根据需求进行分配,我们在程序中无法控制
b.栈:存放基本数据类型的变量和引用数据类型的引用
特点:被执行完成之后,函数或者变量所占用的空间会被销毁
c.堆:存放new出来的对象,例如:new出来的实际的数组元素
d.静态域:存放静态成员(static)
e.常量池:基本类型常量和字符串常量

举例:内存结构------》一套房子
卧室----睡觉
厨房----做饭
客厅----招待客人

五、数组的应用

1.排序

1>冒泡排序
思路:比较相邻两个下标对应的元素值,如果符合条件就交换位置(最值出现在最右边)

2>选择排序
思路:固定一个下标,然后使用这个下标对应的值依次和他后面的值进行比较

2.查找
1>顺序查找
思路:遍历数组,依次把每一位元素和要比较的数值进行比较

2>二分法查找
思路:前提是一个数组是有序,通过折半来缩小查找范围,提高效率

JAVA基础知识总结:五的更多相关文章

  1. java基础知识(五)java类

    类是java的核心和本质,是java语言的基础. 一.java中的类 1.类class 一个类可以包含局部变量.实例变量.类变量(静态变量) 一个类至少有一个构造方法,如果没有,系统会默认给出一个无参 ...

  2. 对象数组、集合、链表(java基础知识十五)

    1.对象数组的概述和使用 * 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. Student[] arr = new Student[5]; //存储学生 ...

  3. Java基础知识陷阱(五)

    本文发表于本人博客. 今天我来说说关于静态变量初始化.数组.==与equals的问题,看下面代码: public class Test{ private final int age; private ...

  4. JAVA基础知识(五)数据类型转换

     当使用 +.-.*./.%.运算操作时,遵循如下规则: 1.只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型: 2.如果两个操作数中有一个 ...

  5. Java基础知识陷阱系列

    Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四 ...

  6. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  7. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  8. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  9. Java 基础知识总结

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.数据类型:  数据类型:1>.基本数据类型:1).数值型: 1}.整型类型(byte  8位   (by ...

  10. Java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

随机推荐

  1. 陈敏 Java课设实验报告

    1.团队课程设计博客链接 http://www.cnblogs.com/ohanna/p/7064305.html 2.个人负责模板或任务说明 1.负责完成主界面 2.随机数的产生, 3.数字大小的比 ...

  2. eclipse中svn插件在线安装方式

    SVN插件地址:http://subclipse.tigris.org/update_1.8.x 第一步:eclipse>Help菜单>Install New Software- 第二步: ...

  3. python 中的%s是什么意思呢?

    今天忽然想写Python中的%s的意思,它怎么理解呢,我查阅了一下相关文献,然后结合了自己的理解,分析如下: 这是一个字符串格式化语法(这是从c 中调用的) 具体请参阅     http://www. ...

  4. Java Classloader机制解析(转)

    做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结.因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspo ...

  5. TCHAR

    定义 TCHAR :通过define 定义的字符串宏 因为C++支持两种字符串:常规的ANSI编码 (使用""包裹).Unicode编码(使用L" "包裹).因 ...

  6. 糖果大战 hdu1204

    糖果大战 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  7. 玩转 sublime3 第二弹 ES6环境

    安装node: node作为JS的运行环境必须安装 文件下载:https://nodejs.org/dist/v6.11.4/node-v6.11.4-x64.msi 备注:可以去官网 https:/ ...

  8. eclipse建立一个jsp项目遇到的问题及解决

    打开eclipse  在workplace 区域空白处,右键 填写好Project name,之后,点击finished 即可. 选中webcontent,新建一个文件夹,并新建一个jsp 文件 新建 ...

  9. 用MXNet实现mnist的生成对抗网络(GAN)

    用MXNet实现mnist的生成对抗网络(GAN) 生成式对抗网络(Generative Adversarial Network,简称GAN)由一个生成网络与一个判别网络组成.生成网络从潜在空间(la ...

  10. 手动添加 Git bash 到鼠标右键

    由于不知原因,右键没有了Git Bash Here,没有这个右键菜单导致获取Git仓库中的代码很不方便,所以决定通过注册表的方式将这个菜单加出来. 1.win + R,输入"regedit& ...