• 1-Java基础回顾整理_05_方法


    1、方法

      main()方法是交给主程序来使用的;

      main()方法外面的方法,不能直接使用,需要添加static关键字后,成为类方法,才能进行直接调用;

      设计方法的原则:

        最好要保持方法的原则性,也就是一个方法只完成一个功能,这样的话方便后期的维护和扩展。

    2、main()方法

      main()方法是在栈的最底层,涉及到JVM方面的内容;

    3、方法组成

      方法包含一个方法头和一个方法体,具体包含内容:修饰符、返回值类型、方法名、参数列表、方法体

      方法最主要的三要素:

        方法名(使用驼峰命名)、返回值类型、参数列表

      注意:

        1)方法的参数分为:实参、形参

          实参:就是调用方法的时候传递的实际参数值,如:test(1,2)

          形参:就是在定义方法的时候,括号里面设定的变量参数,用来赋值调用,如:test(int a,int b)

        2)方法的返回值类型若有,即为int、String这些,那么要在方法的最后写生return语句,否则会报错;

           若没有返回值类型,即为void,那么就不需要写return语句;

    4、return的作用

      1)返回对应的参数;

      2)终止方法的执行;

    5、方法调用

      Java支持两种方法的调用方式,主要是根据返回值类型来进行判断

      1)当有返回值时,方法调用通常被当做一个值,如:int num = max(30,40);

      2)当无返回值时,方法调用一定是一条语句,如:System.out.println("Hello world");

    6、值传递与引用传递

      Java采用的是值传递,基本都是通过方法里面的参数来进行值传递,值传递有一个拷贝的概念;具体会在JVM中涉及

    7、方法的重载

      在一个类中,方法名相同,形参不同的方法,就叫做方法的重载;

      注意:

        如果一个方法仅仅是返回值类型不同,那么不足以成为方法的重载。

    8、命令行传参

      有时候我们想在运行一个程序的时候再传递给它消息,那么就要靠传递命令行参数来给main()方法实现;如:在terminal窗口的命令行输入java Demo01 this is test 那么就能实现,对应的功能

    9、可变参数

      又叫做不定项参数,就是不确定参数具体有多少个,在指定参数类型的后面加上...符号,如:test(int ...i)

      注意:

        1)可变参数必须放在参数列表的最后面

        2)它是JDK1.5出现的产物

    10、调用方法的方式

      1)在方法上添加static关键字,成为类方法,然后通过类名.方法名(),调用

      2)new 对象,通过对象名.方法名()

    11、方法递归  (面试高频)

      说白了就是方法自己调用自己,但是如果没有任何考虑和限制条件的话,会报异常,会发生“栈溢出”的问题

      递归的结构:包含递归头和递归体两部分;

        递归头:就是确定什么时候不调用自身方法,是一个条件,如果没有递归头的话,那么将会陷入死循环;

        递归体:就是确定什么时候需要调用自身方法

        如:求阶乘  首先需要在开头加一个停止调用自身的条件,if(n == 1) return 1; 然后设置什么时候调用自己,else return n * f(n - 1);

          也就是说需要有一个边界条件(官方说法)

          前阶段      返回阶段 n * (n - 1)

    12、栈(扩展内容)

      Java都是使用栈机制的,栈相当于一个罐子,当调用一个方法的时候,就把这个方法压在罐子底部,调用一个往里面压一下,称为压栈,然后当使用完毕的时候,会从最上面依次向下将方法拿出来;

      即:后进先出原则

    13、接11的递归

      所以当遇到一些嵌套层次比较深的算法时,递归可能就不太适用了,可能会发生内存崩溃的问题,因为每嵌套一层,在调用的时候就会扩展一层,会占用内存空间,所以嵌套层次太多的话,就会发生内存崩溃的问题;

      也就是说,当递归的深度越大,那么它的时控性就不行了,就会变得很慢,而且会占用大量的内存空间,所以一般情况下,能不用递归就不用递归,当嵌套基数比较小时,可以适当的考虑

      我们主要使用的是递归的思想,利用它的思想来解决问题。

  • 相关阅读:
    jvm系列(二):JVM内存结构
    jvm系列(一):java类的加载机制
    配置中心选型
    抓取某一个网站整站的记录
    jvm系列(五):tomcat性能调优和性能监控(visualvm)
    网站文件系统发展&&分布式文件系统fastDFS
    spring aop
    禁止页面后退JS(兼容各浏览器)
    spring ioc
    spring帝国-开篇
  • 原文地址:https://www.cnblogs.com/hand-blog/p/13097055.html
Copyright © 2020-2023  润新知