Java数组内存图&方法

Java数组内存图&方法

1.数组常见使用

1.1数组的内存图

在JVM中,内存划分出不同的区域,比如堆内存、栈内存、元空间…

img

img

img

img

img

直接打印数组名字,出来的是一串地址值,因为数组也是引用数据类型

1.2数组常见操作 JDK提供好的

Arrays: JDK为我们提供好的工具类,里面有很多工具方法,用法跟我们前面的Math类似

在这里插入图片描述

2.方法入门

方法:对某个功能,我们期望将其定义成方法,目的是重复使用。执行某个方法的时候,方法需要传递

参数,这个参数我们称之为实际参数,简称实参;方法定义时的参数,我们称之为形式参数,简称形

参。

2.1语法

定义方法,抓住两个重点:

  1. 何时需要定义形参:看你的方法的执行是否需要未知量参与,若需要未知量,则定义为形参

  2. 何时需要返回值:看你的方法的执行结果是否需要给别人使用,若需要,则使用return 返

回。

public static void/数据类型 方法名(数据类型1 形参名称1,....,数据类型n 形参n) { 
    //方法体 
    return 数据类型;
}public static:暂且不管,写死 
    ②返回值类型:void,我们的这个方法执行完之后不需要返回值;若有返回值,则使用return + 返回值类型 返回
    若没有返回值,则不用使用return 
    ③方法名:一般采用动宾结构,而且小驼峰命名规则 
    ④形参列表:多个形式参数,我们称为形参列表
2.2方法求两数之和
/**
* 计算两个整数的和 
* @param num1 数1 
* @param num2 数2 
*/ 
public static void sum(int num1,int num2) { 
    System.out.println(num1 + num2);
}
2.3求数组的最大值
/**
* 求数组的最大值
* @param arr  待求的数组
* @return 返回该数组中的最大值
*/
 public static int getMax(int[] arr){
     int max = arr[0];
     for(int i = 1; i < arr.length; i++){
         if(arr[i] >= max){
             max = arr[i];
         }
     }
     return max;
 }
2.3向String数组中插入
/**
     * 向数组中插入一个元素
     * @param names  待操作的数组
     * @param name  待插入的人
     * @return  插入之后的数组
     */
    public static String[] insertSomeOne(String[] names,String name) {
        //找空位置
        int index = -1;
        for (int i = 0; i < names.length; i++) {
            if(names[i] == null) {
                index = i;
                break;
            }
        }

        if(index == -1) {
            System.out.println("兄弟,咱们班人满了,不给插班....");
        } else {
            names[index] = name;
        }

        return names;
    }

2.4 从String数组中删除
/**
     * 从数组中移除一个人
     *
     * @param names
     * @param name  在数组中有可能找不到,查无此人,若有的,在数组中肯定会对应一个index
     * @return
     */
    public static String[] delSomeOne(String[] names,String name) {
        int index = -1;
        for (int i = 0; i < names.length; i++) {
            if(name.equals(names[i])) {
                index = i;
                break;
            }
        }

        if(index == -1) {
            System.out.println("咱班查无此人:" + name);
        } else {
            System.out.println("index:" + index);
   /*         for (int i = names.length-1; i >index ; i--) {
                names[i-1] = names[i];
            }*/

            for (int i = index; i < names.length -1; i++) {
                names[i] = names[i+1];
            }

            names[names.length - 1] = null;
        }

        return names;
    }
2.5 方法重载

定义:在同一个类中,定义多个同名的方法,方法名一样,形参列表不同【顺序、类型、个数】,与返

回值类型和访问修饰符无关。

作用:提高方法调用的灵活性。

2.6 可变参数(JDK1.5新特性,和增强for循环一样)

就当成数组使用

//todo 可变参数: jdk1.5 新特性,就把它当成数组使用
//注意点: 可变参数一定要放在形参列表的最后
 public static double sum(int num1,double ... nums){
     double sum = 0;
     sum += num1;
     for (double num : nums){
         sum += num;
     }
     return sum;
 }










  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knight10zzzz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值