IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JAVA学习笔记4 -> 正文阅读

[Java知识库]JAVA学习笔记4

JAVA学习笔记4

数组

  • 数组的定义格式:

    • 格式1: 数据类型[] 变量名(推荐使用这种格式
      • 范例:int[] arr
      • 定义了一个int类型的数组,数组名是arr
    • 格式2:数据类型 变量名[]
      • 范例:int arr[]
      • 定义了一个int类型的变量,变量名是arr数组
  • 数组初始化之动态初始化

    • 定义:初始化时只指定数组长度,由系统为数组分配初始值

    • 格式:数据类型[] 变量名 = new 数据类型[数组长度];

    • 范例: int[] arr = new int[3];

      int:说明数组中的元素类型是int类型;

      []:说明这是一个数组;

      arr:这是数组的名称;

      new:为数组申请内存空间;

      int:说明数组中的元素类型是int类型;

      []:说明这是一个数组;

      3:数组长度,其实就是数组中的元素个数

      public class array3 {
          public static void main(String[] args) {
              int[] arr = new int[3];
              System.out.println(arr);
              System.out.println(arr[0]);
              System.out.println(arr[1]);
              System.out.println(arr[2]);
          }
      }
      
  • 数组初始化之静态初始化

    • 静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度

      • 格式:数据类型[] 变量名 = new 数据类型[] {data1,data2,data3…};

      • 范例: int[] arr = new int[] {1,2,3};

      • 简化格式:数据类型[] 变量名 = {data1,data2,data3…};

      • 范例: int[] arr = {1,2,3};

        public class array2 {
            public static void main(String[] args) {
                int[] arr = {1,2,3};
                System.out.println(arr);
                System.out.println(arr[0]);
                System.out.println(arr[1]);
                System.out.println(arr[2]);
            }
        }
        
  • 数组元素访问

    • 数组变量访问方式

      • 格式:数组名
    • 数组内部保存数据的访问方式

      • 格式:数组名[索引]

        索引是数组中数据的编号方式

        作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名

      • 索引的特征:

        • 索引从0开始
        • 索引是连续的
        • 索引逐一增加,每次加1
  • 数组操作的两个常见小问题

    • 索引越界:访问了数组中不存在的索引对应得元素,造成索引越界问题

      运行后显示:
      ArrayIndexOutOfBoundException
      
    • 空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常

      • null:空值,引用数据类型的默认值,表示不指向任何有效对象

        运行后显示:
        NullPointerException
        

内存分配

  • JAVA中内存分配

    • 数组在初始化时,会为存储空间添加默认值

      • 整数:默认值0
      • 浮点数:默认值0.0
      • 布尔值:默认自false
      • 字符:默认值是空字符
      • 引用数据类型:默认值是null
    • 栈内存:存储局部变量

      • 局部变量:定义在方法(函数)中的变量,例如:arr

        ? 使用完毕,立即消失

    • 堆内存:存储new出来的内容(实体,对象)

      • 每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时回收

数组常见操作

  • 遍历

    • 结合循环语句
  • 获取数组元素数量

    • 格式:数组名.length
    • 范例:arr.length
  • 遍历通用格式

    • int[] arr = {...}
      for(int x = 0;x<arr.length;x++){
      arr[x]    //对arr[x]进行操作
      }
      
  • 获取最值

    public class array {
        public static void main(String[] args){
            int[] arr = {12,45,98,73,60};
            int max = arr[0];
            for(int x=1;x<arr.length;x++){
                if(arr[x]>max){
                    max = arr[x];
                }
            }
            System.out.println("max:" + max);
        }
    }
    

方法

  • 方法概述

    • 方法是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
    • 注意
      • 方法必须先创建才能使用,该过程称为方法定义
      • 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
  • 方法定义

    • 格式

      public static void 方法名(){
          //方法体
      }  
      
    • 范例

      public static void array(){
          //方法体
      }
      
  • 方法调用

    • 格式

      方法名();
      
    • 范例

      array();
      

      注意:方法必须先定义后调用,否则程序将报错

    • 方法调用过程

      public static void main(String[] args) {
              ness();
          }
      
          public static void ness() {
              int number = 10;
              if(number % 2 == 0){
                  System.out.println(true);
              }else{
                  System.out.println(false);
              }
          }
      
  • 带参数方法的定义

    • 格式:public static void 方法名(参数){…}

    • 格式(单个参数):public static void 方法名(数据类型 变量名){…}

    • 范例(单个参数):public static void ness(int number){…}

    • 格式(多个参数):public static void 方法名(数据类型 变量名1,数据类型 变量名2,…){…}

    • 范例(多个参数):public static void ness(int number1,int number2){…}

    • 注意

      • 方法定义时,参数中的数据类型和变量名都不能缺少
      • 方法定义时,多个参数之间使用逗号(,)分隔
  • 带参数方法的调用

    • 格式:方法名(参数);

    • 格式(单个参数):方法名(变量名/常量值);

    • 范例(单个参数):ness(7);

    • 格式(多个参数):方法名(变量名1/常量值1,变量名2/常量值2);

    • 范例(多个参数):ness(6,7);

    • 注意

      • 方法调用时,参数的数量和类型必须与方法定义中的设置相匹配,否则程序报错
    • public class array4 {
          public static void main(String[] args) {
              int number = 10;
              Number(number);
          }
          public static void Number(int number) {
              if(number % 2 == 0){
                  System.out.println(true);
              }else{
                  System.out.println(false);
              }
          }
      }
      
    • 形参和实参

      • 形参:方法定义中的参数,等同于变量定义格式

        ? 例如:int number

      • 实参:方法调用中的参数,等同于使用变量或常量

        ? 例如:10 number

  • 带返回值方法的定义和调用

    • 带返回值方法定义

      • 格式:

        public static 数据类型 方法名(参数){
            return 数据;
        }
        
      • 范例1:

        public static boolean ness(int number){
            return true;
        }
        
      • 范例2:

        public static int getMax(int a,int b){
            return 100;
        } 
        
    • 带返回值方法调用

      • 格式1:方法名(参数);

      • 范例:

        ness(5);
        
      • 格式2:数据类型 变量名 = 方法名(参数);

      • 范例:

        boolean flag = ness(5);
        
        • 注意:方法的返回值通常会使用变量接收,否则该返回值将无意义
  • 方法注意事项

    • 方法不能嵌套定义

    • void表示无返回值,可以省略return,也可以单独书写return,后面不能加数据

    • 方法的通用格式

      • 格式:

        public static 返回值类型 方法名(参数){
            方法体;
                return 数据;
        }
        
      • public static 修饰符,先记住这个格式

      • 返回值类型 方法操作完毕之后返回的数据的数据类型

        ? 如果方法操作完毕,没有数据返回,这里写void,而且方法体中一半不写return

      • 方法名 调用方法时候使用的标识

      • 参数 由数据类型和变量名组成,多个参数之间用逗号隔开

      • 方法体 完成功能的代码块

      • return 如果方法操作完毕,有数据返回,用于把数据返回给调用者

    • 定义方法时,要明确返回值类型和参数的类型及数量

    • 调用方法时

      • void类型的方法,直接调用即可
      • 非void类型的方法,推荐用变量接收调用
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:04:44  更:2021-07-27 16:06:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/22 23:33:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码