0%

Java 编程基础(六):方法及方法调用

1. Java 支持可变长度参数,可变长度参数的语法及格式是

  • 语法:在数据类型后面加三个点即:
  • 格式:可变长度参数必须是参数列表中的最后一个;一个方法也只能有一个可变长度参数。

2. 可变参数的作用是

 简化代码书写,因为可变长度参数实际上会转换为数组参数

3. “return 可以用于方法内的任意地方”,对吗

 对。

4. 方法返回值类型为 void 也可以使用 return 吗

 可以,return;

5. 请写出下面程序结果并分析

char a = 'a';
char b = 'b';
System.out.println(Math.max(a, b));
  • 结果是数字 98。
  • 参数是字符类型的,但 Math 并没有定义针对字符类型的 max() 方法,这是因为 char 其实就是一个整数,Java 会自动将 char 转换为 int,然后调用 Math.max(int a, int b)
  • 如果 Math 中没有定义针对 int 类型的 max() 方法,调用也会成功,会调用 long 类型的 max() 方法。
  • 如果 long 类型也没有会调用 float 类型的 max() 方法。如果 float 类型也没有,会调用 double 类型的。Java 编译器会自动进行类型转换,并寻找最匹配的方法
  • 在只有一个方法的情况下,即没有重载,只要可以进行类型转换,就会调用该方法。在有方法重载的情况下,会调用最匹配的方法

6. 简单介绍一下栈的概念

  • 栈是一块内存,特点是先进后出。栈一般是从高位地址向地位地址扩展
  • 栈用来存放方法调用过程中需要的数据,包括参数(基本类型)返回地址以及方法内部定义的局部变量
  • 方法中的基本数据类型的参数和方法内定义的基本数据类型的变量,都分配在栈中,这些变量只有在方法被调用的时候才分配,而且在方法调用结束后就被释放了

7. 对象类型的内存分配是怎样的

  • 数组和对象类型,都有两块内存,一块存放实际的内容,一块存放实际内容的地址
  • 实际的内容空间分配在堆上,但存放地址的空间是分配在栈上。即:栈地址,堆内容

8. 什么是值传递引用传递,Java 是值传递还是引用传递

 参考知乎:Java 到底是值传递还是引用传递?

-------------------- 本文结束感谢您的阅读 --------------------