第六天 2018.8.4

今日内容
1.Arrays工具类
2.方法传参和返回值
3.可变参数
4.二维数组
5.调试好文档注释

1.Arrays工具类

1.1二分查找
  • Arrays.binarySearch(arr,22);
    前一个参数是数组,后一个是要查找的数值
  • 排序Arrays.sort(arr);
  • 拷贝Arrays.copyOf(arr, arr.length);前一个为被拷贝的数组,后一个为要拷贝的长度,返回值是拷贝好的数组
  • 填充Arrays.fill(arr, 10)前一个是原数组,后一个是填充后的数量
  • 将数组转化为字符串Arrays.toString(arr);

2.方法的传参和返回值

2.1基本类型作为方法的参数

方法传基本类型的参数不影响原本方法中的值,因为基本数据类型存在栈中。在引用方法结束出栈时就已经摸消了操作后没有返回的值。
示意图
如图,在黄线以下的调用函数在被被调用函数运行期间,栈的内存地址固定,没有发生变动。

2.2引用类型的传参

方法传引用类型的参数会改变原本方法中的值,因为引用数据类型在栈中存储的是它在堆中的地址,传参后也是,因此传参后改变了引用类型在堆中的内容,原本方法读取的同一地址的引用类型的值也会改变。
示意图
换句话说,无论是原方法还是调用方法,他们在栈中存储的都不过是一个指针,实际内容是储存在堆中的。因此在执行了调用的方法改变了内容以后,原本方法中的内容由于是同一个地址,所以也会改变。

2.3总结:

Java中的方法传参采用的是传值的方式,方法的返回值如果是基本类型则返回实际数据,如果是引用类型则返回地址。
基本类型

特殊:String作为引用类型在这里视同基本类型。

3.可变参数

不定长参数 如int… arr
世界上等同于数组,只不过不需要
注意:
一个方法只能有一个可变参数
可变参数智能在参数列表最后

4.二维数组

二维数组的本质是在栈中存储了堆中多个数组的地址的数组。
示意图

5.文档注释

与多行指数不同,文档注释的格式为/* /多一个*号
@author 表示作者
@version 表示版本
@see 表示参考版本
@since 表示从某时开始
在方法中还有
@param 参数
@return 返回值
写好文档注释,在代码提示里会有你写的文档注释作为解释
还可以生成api文档,在类上右击导出,点击Javadoc,在不能向下走的Vm设置中写上编码方式

6.JVM内存分配

6.1方法区

氛围静态区、串池(常量池,用于存储字符串常量)、代码段
jdk1.8后,改名为元空间,串池移入堆中

6.2内存分配图

示意图

7.面向对象

略过

猜你喜欢

转载自blog.csdn.net/qq_34939549/article/details/81414473