大数据基础之java方法

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据基础之java方法

方法简介

  1. 什么是方法

    • 在java用来存放一小段代码或指定功能的工具,在调用该方法后可以实现内部存储的功能.
  2. 方法的定义

    /*
    java中的方法:
        就类似于python中的方法,就是在类的内部,封装一小段代码实现固定功能的代码块,想要执行此功能时直接调用方法即可
    
        方法的定义:
         public static void main(String[] args) {
    
        }
    
        修饰符 返回值类型 方法名 (参数类型 参数名称1, 参数类型 参数名称2.....) {
            方法体: 要实现的功能代码.
            return 返回值;
        }
        修饰符: 对于方法的权限,特性,调用方式等进行修饰 public 公共权限, static 静态方法
        返回值类型: 标注我们要返回值数据的类型,如果返回值类型不匹配则报错  void 代表无返回值
        参数:
            参数类型 接收参数时只能接收固定类型的参数 参数名称  局部名称,出了方法就消失了
            在定义位置的淡出叫做形参
            在调用位置的参数叫做实参
        方法体:实现功能的代码可以是一行,也可以是多行,但是务必注意,一个方法实现的功能尽量单一
        return: 结束方法的执行,同时返回返回值,返回值类型要与方法定义时,标注的类型相同
    
        方法的种类: 无参无返回值 无参有返回值 有参无返回值  有参有返回值
     */
    public class Demo01 {
        public static void main(String[] args) {
            //方法的调用 使用方法名称( 传参) 即可
            func1();
            func2("正国");
            System.out.println(func3());
            System.out.println(func4(5,4));
    
        }
    
        /**
         * 无参无返回值方法
         */
        public static void func1(){
            System.out.println("hello itcast!!!");
        }
    
        /**
         * 有参无返回值
         */
        public static void func2(String name){
            System.out.println("和" +name+"真开心呀!!");
        }
    
        /**
         * 无参有返回值
         */
        public static String func3(){
            return "我想去回家看电影,千万不要把我落下!";
        }
        /**
         * 有参有返回值
         */
        public static int func4(int a, int b){
            return a + b;
        }
    }
  3. 方法的注意事项
  4. 方法的使用

    public static void main(String[] args) {
        int[] arr1 = {11, 22, 99, 44, 55};
        printArray(arr1);
    
        System.out.println(getMax(arr1));
    
        int[] arr2 = compute(3,4);
        printArray(arr2);
    }
    
    public static void printArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
    
    public static int getMax(int[] arr){
        int maxNum = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if(arr[i] >maxNum){
                maxNum = arr[i];
            }
        }
        return maxNum;
    }
    
    public static int[] compute(int a, int b){
        // 1.创建一个长度为4的空数组
        int[] arr = new int[4];
        // 2. 计算加减乘除的结果,赋值给数组中的0-3号下标的元素
        arr[0] = a + b;
        arr[1] = a - b;
        arr[2] = a * b;
        arr[3] = a / b;
        // 3.将数组返回
        return arr;
    }
  5. 方法重载

    /*
    方法重载:
        1. 方法名称相同 但是方法的参数列表不同
            参数列表不同:  double a, double b
                数据类型不同  int a, int b
                参数数量不同  int a, int b , int c
                参数顺序不同  int b   int a
        2.和修饰符无关
        3.和返回值类型无关
        4.和参数名无关
    需求:
    1. 定义方法compare(), 用来比较两个整型数据是否相等.
    2. 要求兼容所有的整数类型, 即(byte, short, int, long)
    
     */
    public class Demo03 {
        public static void main(String[] args) {
            //定义不同数据类型的变量
            byte a = 10;
            byte b = 20;
            short c = 10;
            short d = 20;
            int e = 10;
            int f = 10;
            long g = 10;
            long h = 20;
    
            System.out.println(compare(a, b));
            System.out.println(compare(c, d));
            System.out.println(compare(e, f));
            System.out.println(compare(g, h));
            
            // 方法重载我们一直在用  println
            
        }
    
        public static boolean compare(byte a, byte b) {
            return a == b;
        }
        /**
         * 可以使用方法重载,给同一个方法名添加不同的参数列表,使方法的兼容性增加
         * 使用重载方法时,调用位置会根据传参数量,传参类型不同自动选择合适的方法进行使用
         */
        public static boolean compare(short a, short b) {
            return a == b;
        }
        public static boolean compare(int a, int b) {
            return a == b;
        }
        public static boolean compare(long a, long b) {
            return a == b;
        }
    
    }

    public static void open(){}
    public static void open(int a){}
    static void open(int a,int b){}
    public static void open(double a,int b){}
    public static void open(int a,double b){}
    public void open(int i,double d){}
    public static void OPEN(){}
    public static void open(int i,int j){}

  6. 参数传递问题

    /*
        方法传参:
        引用数据类型(String, int[], float[]..): 在传参时传递的是地址,叫做引用传递
        引用类型数据,将数据传递到方法内部,修改内部数据后,外部数据受影响
        基础数据类型(int float boolean..): 在传参的时候传递的是值, 叫做值传递
        基础类型数据,将数据传递到方法内部,修改数据后,外部数据不受影响
     */
    public class Demo04 {
        public static void main(String[] args) {
            //创建一个引用类型数据
            int[] arr1 = {11,22,33,44,55};
            //将int[] 类型数据传入到方法中
            func1(arr1);
            System.out.println(Arrays.toString(arr1));  // [199, 22, 33, 44, 55]
    
            int num = 5;
            func2(num);
            System.out.println(num); // 5
    
        }
        public static void func1(int[] arr){
            arr[0] = 199;
        }
    
        public static void func2(int a){
            a = 10;
        }
    }
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
12天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
53 4
|
23天前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
43 17
|
16天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
32 2
|
17天前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
23天前
|
存储 机器学习/深度学习 大数据
量子计算与大数据:处理海量信息的新方法
【10月更文挑战第31天】量子计算凭借其独特的量子比特和量子门技术,为大数据处理带来了革命性的变革。相比传统计算机,量子计算在计算效率、存储容量及并行处理能力上具有显著优势,能有效应对信息爆炸带来的挑战。本文探讨了量子计算如何通过量子叠加和纠缠等原理,加速数据处理过程,提升计算效率,特别是在金融、医疗和物流等领域中的具体应用案例,同时也指出了量子计算目前面临的挑战及其未来的发展方向。
|
24天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
19 3
|
26天前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
|
24天前
|
Java 开发者
在Java多线程编程中,选择合适的线程创建方法至关重要
【10月更文挑战第20天】在Java多线程编程中,选择合适的线程创建方法至关重要。本文通过案例分析,探讨了继承Thread类和实现Runnable接口两种方法的优缺点及适用场景,帮助开发者做出明智的选择。
16 2
|
24天前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
16 1
|
24天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
28 1