Java基础第六节 数组

本文探讨了Java中堆、栈与方法区的数据结构,重点讲解了数组的作用、内存分配特点以及==和equals的区别。特别介绍了数组的声明、初始化方式和Arrays工具类的使用,帮助读者掌握Java基础数据结构的运作机制。
摘要由CSDN通过智能技术生成

第六章 数组

堆和栈:

存储的是对象,每个对象都包含一个与之对应的class

JVM只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身

对象的由垃圾回收器负责回收,因此大小和生命周期不需要确定

每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象)

每个栈中的数据(原始类型和对象引用)都是私有的

栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)

数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会自动消失

方法区

静态区,跟堆一样,被所有的线程共享

方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量

public static void main(String[] args) {
    int score1= 90;
    int score2=90;
    int score3=88;
    int[] scores={10,20,30,40};
    int[] inscors=new int[10];
    System.out.println(inscors[0]);
        System.out.println(inscors[1]);
        System.out.println(inscors[2]);
        System.out.println(inscors[3]);
        System.out.println(inscors[4]);
        System.out.println(inscors[5]);
        System.out.println(inscors[9]);// 索引的最大值=数组的长度-1
    for (int i = 0; i < 10; i++) {
        inscors[i]=i+1;
        System.out.println("当前的索引是:"+i+",当前位置的值是:"+inscors[i]);
    }
    }

==和equals的区别:

==:当比较的是基本数据类型的时候比较是他们对应的数值

当比较的是对象的时候比较的是对应的内存地址(引用地址、对象地址)是否相同

equals:

基本数据类型类型不能使用equals,当比较对象(引用数据类型)的时候比较的是内存地址,当比较字符串的时候比较的是内容(String类重写了equals的方法

数组:数组的作用就是存储一组数据。

数组:开辟的是一个连续空间,根据下标操作每一个小空间。

java的数组空间是固定的,一经开辟不可更改。

每一个格子中放的内容必须一致。

java数组:定数据类型 定长度 一经定义不可更改

数组的声明格式以及初始化:

 声明一个数组:

数据类型[] 数组名(变量名);

给数组赋值:仅仅只是空间开辟

数组名=new 数据类型[长度];

数据类型[] 数组名(变量名)=new 数据类型[长度];--这是开辟一个初始长度的数组,但是小格子中没有内容保持默认。数字为0 引用为null boleanfalse。

声明同时直接初始化:即开辟连续空间并且每一个格子中都显示赋值。

数组类型【】 变量={};

数据类型[] 变量名=new 数据类型[]{};

Arrays工具类:

java.util包提供了许多存储数据的结构和有用的方法

Arrays类提供许多方法操纵数组,例如:排序,查询

Arrays类的sort()方法: 对数组进行升序排列

Arrays.copyOf()用法,这个方法是将原数组快速复制成一个新数组。如果新数组的长度小于旧数组的长度,将截取一部分旧数组中的元素,复制给新数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值