JavaSE day14笔记

第十四天课堂笔记

  • 课上: 适当做笔记
  • 课下 : 总结 , 读代码 , 反复敲代码 , 做练习

数组★★★

  • 数组 : 存储多个 同一类型 的容器
  • 格式 :
  • 数组类型 : 引用数据类型, new运算符在堆中 分配一块连续的存储空间 , 系统会给数组元素默认初始化 , 将该数组的引用赋值给数组名
    • 引用数据类型包括 : 类 \ 接口 \ 数组 \ 枚举 \ 注解 \ record
    • int[] 和 byte[] 是两个数据类型, 不存在想换赋值转换的情况
  • 如何定义一个数组
    • 动态初始化: 数据类型[] 数组名 = new 数据类型[长度];

    • 数组的静态初始化

      • 数据类型 [] 数组名 = new 数据类型 [] {值...};
      • 简化为: 数据类型 [] 数据名 = {值 ...} : 仅用于数组的静态初始化, 不能用于给数组名重新赋值
    • 注意 : new int[0] => 长度为0的数组,不能存储任何数据, 需要给该数组赋值一个长度大于0的数组才能使用

  • 说明

    • 索引值从0开始, 不能为负数, 索引值= [0 , 数组长度 - 1]

    • 数组名[索引值] ==> 变量名

    • 数组元素默认初始化值 : 0 , 0.0 , \u0000 , null , false

  • 包名 : 公司域名反写 + 项目名 + 模块名

    • 把类定义在包中后, 类的权限定类名(完整类名) = 包名.类名
  • char类型字符码值取值范围为 0 ~ 66535

数组循环遍历★★★

  • for循环遍历: for(int i = 0 ; i < 数组长度 ; i++){system.out.println(数组名[i])}
    • 数组长度 : 数组名.length
    • 逆序快捷键 : 数组名.forr
    • for循环 可以赋值 , 可以访问
  • 遍历 foreach循环 : 增强的for循环
    • for(数据类型 变量名 : 数组名) { 循环体 }
    • 先将数组值依次赋值给变量 ,再执行循环体
    • foreach仅用于访问
    • 输入iter : foreach循环代码块 / 方法名.for
  • Arrays.tostring(数组名);

数组扩容原理★

  • 步骤

    • 定义一个更大的数组
    • 把原来数组中的数据复制到大数字中 :
      • System.arraycope(src, srcPos , dest , destPos . length)
      • 把src数组中从srcPos开始 的元素 复制到 dest 数组中 destPos 的位置上, 复制 length 个元素
      • native关键字 : 方法体调用了C/C++编写的本地方法, 在Java程序中可以调用其他语言编写的代码
    • 让原来数组名引用这个更大的 数组

位运算符★

  • & , | , ~ , >> , << , >>>

数组特点★★★

  • 优点 : 查询效率高

    • 通过索引值 计算 每个数组元素的地址偏移量 ,==> ints + i * 数据所占字节数
    • 通过计算出来的地址, 直接访问
  • 缺点 : 插入删除效率低

    • 插入步骤: 将一个值, 插入到数组i的位置上

      • 定义一个更大的数组
      • 把数组从0 到 i个元素 复制到big数组的0位置上
      • 把值保存到数组i中
      • 把数组从i 开始的元素, 复制到big数组的i+1位置上, 复制 ints.length - i个元素

数组在方法中的使用★★★★

  • 数组在方法中的传递
    • 方法 : 完成某个功能编写的代码 , 实现代码复用
  • 数组作为方法返回值

相关推荐
龙鸣丿2 小时前
Linux基础学习笔记
linux·笔记·学习
Nu11PointerException4 小时前
JAVA笔记 | ResponseBodyEmitter等异步流式接口快速学习
笔记·学习
亦枫Leonlew5 小时前
三维测量与建模笔记 - 3.3 张正友标定法
笔记·相机标定·三维重建·张正友标定法
考试宝5 小时前
国家宠物美容师职业技能等级评价(高级)理论考试题
经验分享·笔记·职场和发展·学习方法·业界资讯·宠物
黑叶白树7 小时前
简单的签到程序 python笔记
笔记·python
幸运超级加倍~8 小时前
软件设计师-上午题-15 计算机网络(5分)
笔记·计算机网络
芊寻(嵌入式)9 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
准橙考典9 小时前
怎么能更好的通过驾考呢?
人工智能·笔记·自动驾驶·汽车·学习方法
密码小丑11 小时前
11月4日(内网横向移动(一))
笔记
鸭鸭梨吖12 小时前
产品经理笔记
笔记·产品经理