当前位置: 首页 > news >正文

Day08-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\array-ArrayDemo01~07

数组

  1. 首先要声明数组变量才能使用如dataType[] arrayRefVar;
  2. java语言中使用new操作来创建数组,如dataType[ ] arrayRefVar = new dataType[arraysize]
  3. 数组通过索引访问,索引从0开始

内存分析

  1. 堆:存放new的对象和数组;可以被所有的线程共享,不会存放别的对象引用

  2. 栈:存放基本变量类型(包括变量的具体数值;声明数组时先在栈中生成一个空间存放带名称的数组);引用变量的对象(会存放这个)

  3. 方法区:可以被所有的线程共享;包含了所有的class和static变量

  4. 声明数组时(int[] = array)先在栈中生成一个空间存放带名称的数组

  5. 创建数组时(array = new int[10]),栈中的数组前往堆中开辟了一个分为十小份的内存空间。

  6. 给数组中的元素赋值(num[0] =1),堆中的内存空间才被赋值

  7. 不能越界输出,数组下标越界java.lang.ArrayIndexOutOfBoundException

三种初始化

  1. 静态初始化:没有事先给定空间,赋值几个就是几个空间

int[] a = {1,2,3};

Man[] mans = {new Man(1,1),new Man(2,2)};

  1. 动态初始化:先设置了一定的空间

int[] a = new int[10];

a[0] = 1;

a[1] = 2;

数组的默认初始化:数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中每一个元素也按照实例变量同样的方式被隐式初始化,即创建int[10]时,其中int[0]到int[9],均被赋值,其值为0

数组的四个基本特点

  1. 长度确定,创建后不可更改
  2. 元素必须是相同类型
  3. 数组中元素可以是任何类型,包括基本类型int等和引用类型Man等
  4. 数组变量属于引用类型,数组也可以看成对象
  5. 数组本身就是对象,java的对象存储在堆中,因此数组无论保持原始类型还是其他对象类型,数组对象本身是在堆中的,数组元素相当于对象的成员变量
  6. 数组边界,合法区间:[0,length-1] java.lang.ArrayIndexOutOfBoundException

数组的使用

  1. For-Each循环:arrays.for
  2. 数组作方法入参
  3. 数组作返回值
  4. 普通for循环

多维数组

int[][] array = {{1,2},{2,3},{3,4},{4,5}};//int[4][2],四行两列/*1,2 array[0]2,3 array[1]3,4 array[2]4,5 array[3]*/

冒泡排序(八大排序中最出名的)

嵌套循环中,算法的时间复杂度为O(n2)

http://www.hskmm.com/?act=detail&tid=17401

相关文章:

  • yolov10_float16.tflite TO yolov10_int8.tflite
  • ansible注意的和错误代码分析
  • 用 Rust 和 Tesseract OCR 识别验证码
  • 基于寄存器地址amp;标准外设库的LED流水灯
  • 用 Swift 和 Tesseract OCR 实现验证码识别
  • Rust 和 Tesseract OCR 实现验证码识别
  • AI-Powered-ToDo-List
  • Netty:完成RPC服务(实战)
  • Python 在 Web 开发中的应用与趋势
  • LLM MOE的进化之路
  • 相交链表-leetcode
  • AtCoder ARC114 总结 (A-C)
  • 告别单张保存!PPT 图片无损批量提取,这 3 种方法亲测有效!
  • ?模拟赛(2) 赛后总结
  • 日总结 8
  • 完整教程:讲一下ZooKeeper的持久化机制
  • 2025.9.25 sos dp小记
  • 英语_阅读_A farmer dream_待读
  • docker 私有仓库 harbor
  • vite+ts取别名@
  • 掌握C2重定向器:红蓝队攻防实战指南
  • 2025秋_3
  • day004
  • 软件测试团队准备解散了......
  • 2025秋_4
  • 【STM32H7】从零开始搭建的HAL库工程模板(基于CubeMX)
  • 重生之从零开始的神经网络算法学习之路 —— 第八篇 大型数据集与复杂模型的 GPU 训练实践
  • Avalonia:开发Android应用
  • MIT s6.828环境搭建
  • kubernetes事件监控工具--Kube-Event