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

JavaSE(上)-Day6

JavaSE(上)-Day6

  • 数组
    • 数组的定义
    • 数组的初始化
    • 打印数组分析
    • 数组索引
    • 数组内存图
  • 方法
    • 方法的定义和调用
    • 方法的重载
    • 方法的内存图
  • 二维数组
    • 二位数组的创建和初始化
    • 二维数组的内存图

数组

1.数组是一种容器,可以一次存储多个相同类型的数据

数组的定义

		int[] array1;int array2[];

数组的初始化

		// 1.两种静态初始化 静态初始化当开始明确了数组填充的值使用// 1.1 完整格式int[] array3 = new int[]{18, 24, 32};// 1.2 简写格式double array4[] = {175.5, 173.5, 182.0};// 2. 一种动态初始化 动态初始化开始只可以确定长度时使用int[] array33 = new int[10];array33[0] = 1;// 注意:数组动态初始化,会赋予默认值// 基本数据类型中:整数 0 浮点数 0.0 char '\u0000' boolean false // 引用数据类型: null

打印数组分析

		// 打印是数组的地址//[I@4eec7777、[D@3b07d329  [表示数组 I/D表示数组的类型 @后面是16进制,真正的地址

数组索引

  1. 数组索引从零开始
  2. 注意:数组索引不在范围内会报错

数组内存图

  1. 方法运行就会进入栈中执行
  2. new出现就会在堆中开辟地址 图1
  3. 多个数组可以指向同一个地址 图2
    在这里插入图片描述
    在这里插入图片描述

方法

  1. 方法是程序执行的最小单位
  2. 方法用于打包重复或者独立功能的代码
  3. 方法提高了代码的复用性和可维护性

方法的定义和调用

package com.itheima.demo;/*** 方法练习*/
public class MehthodDemo01 {public static void main(String[] args) {// 无参无返回值方法的调用// 看到方法调用方法,方法执行完毕返回调用处。playGame();//有参无返回值方法的调用// 方法调用填充的变量或字面量的数目和类型要与方法定义是参数保持一致// 方法调用的参数叫实参ChangC(15, 5);cicleS(2.2);// 有参有返回值方法的调用double s1 = getArea(1.2, 2.2);double s2 = getArea(1.5, 1.7);if (s1 > s2) {System.out.println("第一个长方形的面积大");} else if (s1 < s2) {System.out.println("第二个长方形的面积大");} else if (s1 == s2) {System.out.println("两个长方形的面积一样大");}}// 无参无返回值方法的定义public static void playGame() {System.out.println("1.选择角色");System.out.println("2.进入王者峡谷");System.out.println("3.对线");System.out.println("4.推水晶");System.out.println("5.打赢结束");}// 有参无返回值方法的定义// 方法定义的是形参// 计算长方形的周长public static void ChangC(int length, int width) {System.out.println(length * 2 + width * 2);}// 计算圆的面积public static void cicleS(double r) {System.out.println(r * r * Math.PI);}// 比较两个长方形的面积public static double getArea(double len, double width) {return len * width;}
}

方法的重载

  1. 同一个类中,有数目不同或形参类型不同的多个重名方法称之为重载,与返回值类型无关

方法的内存图

  1. 基本数据类型和引用数据类型的区别
  2. 基本数据类型的数据值是存在栈里变量定义的空间中的
  3. 引用数据类型的数据值是存在堆里开辟的空间的,开辟空间的地址存在栈里变量定义的空间中
  4. 数据类型的传值传递的就是栈里存储的数据。对应基本数据类型是真正的值,对应引用数据类型是地址。

二维数组

二维数组应用于对一组数据进行分组

二位数组的创建和初始化

  1. 静态初始化
int[][] arr1 = new int[][]{{1,2,3},{4,5,6}};
int[][] arr2 = {{1,2,3},{4,5,6}};
  1. 动态初始化
int[][] arr3 = new int[2][3];
arr[0][0] = 1; 
  1. 遍历二维数组(略)
  2. 动态给二维数组赋值(略)

二维数组的内存图

  1. 栈中执行main方法
  2. 栈中创建arr变量
  3. 堆中初始化一个长度为2的二维数组 索引0和1初始为null
  4. 堆中初始化两个长度为3的一位数组 索引填充值为0,地址分别填充至二维数组
  5. 栈中arr变量保存堆中的二维数组地址
    在这里插入图片描述
    1.特殊情况1 不指定每个一位数组的长度
    在这里插入图片描述
  6. 特殊情况2
http://www.lryc.cn/news/321587.html

相关文章:

  • (二十五)Flask之MTVMVC架构模式Demo【重点:原生session使用及易错点!】
  • [ C++ ] STL---list的使用指南
  • 数据可视化-ECharts Html项目实战(2)
  • 【Network Management】DCM模块唤醒网络是主动唤醒还是被动唤醒
  • yum repolist命令的介绍
  • 【日志分析】Android 运营商名称显示优先级(AlphaTag/SPN)
  • ocp考试是中文还是英文?ocp认证好考吗
  • python问题:vscode切换环境,pip安装库网络错误,不使用anaconda安装库
  • 理财第一课:炒股词典
  • 矩阵消元-MIT
  • 基于nodejs+vue班级管理系统的设计与实现-flask-django-python-php
  • 2024年起,游戏开发团队62%的从业人员使用AI智能技术
  • mysql 主从复制、读写分离、高可用
  • 力扣爆刷第100天之hot100五连刷86-90
  • Sublime Text3 C/C++一键调试运行代码
  • robots协议详解:爬虫也要有边界感
  • C#面:简述 var 和 dynamic
  • S32 Design Studio PE工具配置DMA
  • 【Effective C++】36绝不重新定义继承而来的non-virtual 函数
  • STM32-DMA数据转运
  • Vue 3 + TypeScript 项目中全局挂载并使用工具函数
  • 第二门课:改善深层神经网络<超参数调试、正则化及优化>-超参数调试、Batch正则化和程序框架
  • 漫谈微服务网关
  • 进击的PostgreSQL
  • 本地gitlab-runner的创建与注册
  • 《UE5_C++多人TPS完整教程》学习笔记28 ——《P29 Mixamo 动画(Mixamo Animations)》
  • 剑指offer力扣题集
  • 【商业|数据科学主题会议推荐】2024年商业分析与数据科学国际学术会议(ICBADS 2024)
  • 爬虫技术实战案例解析
  • Git 使用笔记