一、初步认识数组
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课程设计(Calculator) 201521123027 陈龙

    1.团队博客链接 http://www.cnblogs.com/DevilRay/p/7064482.html 2.个人负责模块或任务说明 (1)主函数的编写: (2)加减乘除运算的实现: (3)求倒 ...

  2. 201521123029《Java程序设计》第十二周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  3. Mybatis第三篇【动态SQL】

    动态SQL 何为动态SQL??回顾一下我们之前写的SSH项目中,有多条件查询的情况,如下图 我们当时刚开始做的时候,是需要在Controller中判断SQL是否已经有条件了,因为SQL语句需要拼接起来 ...

  4. Mybatis第一篇【介绍、快速入门、工作流程】

    什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...

  5. Struts2第十一篇【简单UI标签、数据回显】

    Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签-也就是显示页面的标签-.. 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再被浏览器 ...

  6. JPA常用注解(转载)

    转自:http://blog.csdn.net/wanghuan203/article/details/8698102 JPA全称Java Persistence API.JPA通过JDK 5.0注解 ...

  7. Python生成器主要用法

    代码如下: #!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' def use(name): print(" ...

  8. vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例

    vue2中废弃了$dispatch和$broadcast广播和分发事件的方法.父子组件中可以用props和$emit().如何实现非父子组件间的通信,可以通过实例一个vue实例Bus作为媒介,要相互通 ...

  9. mvc一对多模型表单的快速构建

    功能需求描述 Q:在实际的开发中,经常会遇到一个模型中包含有多个条目的表单.如何将数据提交到后台? A: 以数组的形式提交到后台就Ok了(真的那么简单么,如果再嵌套一层呢?) A2:拆分多个模型,映射 ...

  10. JSP入门 el表达式

    我们已经知道el是jsp-2.0规范的一部分,tomcat-5.x版本以上都已经能够支持jsp-2.0规范,但在更低版本的tomcat和webphere,weblogic中还是无法使用这一便捷方式. ...