找回密码
 立即注册
首页 业界区 安全 Java-SE DAY3

Java-SE DAY3

归筠溪 昨天 12:05
JAVA 方法

Java 方法是语句的集合,它们在一起执行一个功能。
设计方法的原则:一个方法只完成1个功能,这样利于我们后期扩展
方法包含一个方法头和一个方法体
  1. public static int add(int a,int b){                        // static 声明类方法,int 指定方法返回类型
  2.     return a+b;
  3. }       
  4. // return 除了在方法中代表返回的意思,还代表终止的函数的意思
复制代码
修饰符:可选,定义了该方法的访问类型
返回值类型:字面意思,即返回值的类型,void 为无返回
方法重载:即一个方法名被定义两次( 如两次参数不同 | 类型不同 ),用于一个方法应对多种情况
命令行传参

args.length                                                            # 获取数组长度
在进行编译执行class 文件时,需注意package 的声明,需回到package 的根路径运行,否则会无法找到主类
main 方法也可传参,即定义main 方法的接受即可传参
可变参数

在方法声明时,在指定参数类型后加一个省略号(...)
一个方法只能指定一个可变参数,其必须是方法的最后一个参数
可变参数的本质就是数组
  1. public void Hello(String ... a){                       
  2.         System.out.println(a)
  3. }
复制代码
递归

​        递归的本质就是A方法调用A方法自己调用自己
​                递归头什么时候不调用自身方法,如果没有头,将陷入死循环。
​                递归体什么时候需要调用自身方法
​        递归尽量不使用,由于 JAVA 是栈开发,每调用一个方法,就会多一个栈堆叠起来,若调用方法过多,会导致占用大量内存空间
数组

​        int[]  nums;                                                                # 定义数组
​        int  nums[]                                                                  # 定义数组,类C
​        nums = new int[10]                                                    # 初始化/创建 nums,最大元素为10个
​        nums.length                                                                   # 获取数据的总元素个数
内存分析

: 存放new 的对象和数组
​         可以被所有的线程共享,不会存放别的对象引用
: 存放基本变量类型(会包含这个基本类型的基本数据)
​         引用对象的变量(会存放这个引用在堆里面的具体地址)
​                栈是存放变量/数组的内存地址,堆是存在变量/数组的真实值
  1. // 静态初始化:创建 + 赋值
  2. int[] a = {1,2,3,4,5,6,7,8,9};
  3. System.out.println(a[0]);
  4. //动态初始化: 包含默认初始化
  5. int[] b  = new int[10];
  6. b[0] = 10;
复制代码
<img alt="image-20250924145212177" loading="lazy">

数组小结

长度是确定的,数组一旦被创建,其元素大小就无法改变
元素必须是相同的类型
数组中的元素可以是任何类型,包括基本类型和引用类型
数组对象本身是在堆中的
ArrayIndexOutOfBoundsException: 数组下标越界异常
  1. // 数组是相同的数据类型(类型可以为任何类型)的有序集合
  2. // 数组也是对象。数组元素相当于对象的成员变量
  3. // 数组的长度是确定的、不可变的。
复制代码
数组的使用

数组可作为传参,也可作为返回类型/值
  1. // 加强型for 循环
  2. for (int array : arrays){}                        // 取出arrays 数组中每个元素循环
  3. // 定义返回类型为数组,且传入值为数组
  4. public static int[] arrayFindMAX(int[] array){}
复制代码
多维数组

多维数组:可以看成是数组的数组
二维数组: 一个特殊的数组,每个元素都是一个一维数组
int a[][] = new int[2][5];                        // 初始化一个二维数组,可以看成一个2行5列的数组
int[][] array = {{1,2},{3,4},{5,6}};        // 定义一个二维数组并向其中赋值
Arrays类详解

数组的工具类 java.util.Arrays                                        // util 为java 的工具类
  1. Arrays.toString(arr)                                                // 打印数组
  2. Arrays.sort(arr)                                                        // 对于数据进行排序(默认正序)
  3. Arrays.fill(arr,0)                                                        // 将arr 中所有的数据替换为0   
复制代码
冒泡排序

总共八大排序,冒泡排序为最出名的排序算法之一
冒泡排序:比较两个相邻的元素,如果第一个数比第二个数大,交换他们的位置,每次比较都会产生一个最大或最小数字,下一轮则可以少一次排序
稀疏数组

用于存在大量无效值的情况;对于无效值如0,不会对其进行表示,而是只对有效值进行输出(且说明有效值位置)
左为原始数组,右为稀疏数组
1.png

稀疏数组为概念形式,属于算是算法(目的是节省数组空间),通过循环等手段,将原数组转换为稀疏数组

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册