zoukankan      html  css  js  c++  java
  • JAVA基础知识总结:五

    一、初步认识数组
    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>二分法查找
    思路:前提是一个数组是有序,通过折半来缩小查找范围,提高效率

    每天多努力一点,你将会变得更好。
  • 相关阅读:
    android 添加图片时错误:android libpng error: Not a PNG file
    hdu4553
    zoj2706
    zoj3349
    zoj3606
    主席树 静态区间第k大
    主席树:动态 Kth
    zoj3633
    zoj3381
    zoj 3540
  • 原文地址:https://www.cnblogs.com/lidar/p/7743140.html
Copyright © 2011-2022 走看看