JAVA学习笔记五

 

 

递归:(典型例子就是计算阶乘)

①必须有递归头,如果没有递归头,程序将陷入死循环,最终程序内存溢出

②还必须有递归体,什么时候需要调用自身方法。

 

 

JAVA内存分析:

①堆:存放new的对象和数组可以被所有的线程共享,不会存放别的对象引用

②栈:存放基本变量类型(会包含这个基本类型的具体数值)

引用对象的变量(会存放这个引用在堆里面的具体地址)

③方法区:可以被所有的线程共享

包含了所有的class和static变量

 

 

数组相关知识:

1.数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化;

2.数组的四个特点:

①长度确定,数组一旦被创建,大小就是不可改变的;

②数组元素必须是相同的类型,不允许出现混合类型;

③数组中的元素可以是任何数据类型,包括基本类型和引用类型;

④数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量;

数组本身就是对象,JAVA中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

 

稀疏数组:

1.当一个数组中大部分元素为0,或者大部分元素相同时,可以使用稀疏数组来保存该数组;

2.稀疏数组的处理方式:

①记录数组有几行几列,有多少个不同值;

②把具有不同值的元素的行和列记录在一个小规模的数组中,从而缩小程序的规模;

 

 

posted @ 2021-03-07 22:35  大器晚成316  阅读(22)  评论(0)    收藏  举报