数组与递归方法

来源:互联网 发布:篮球数据英文缩写psa 编辑:程序博客网 时间:2024/05/20 17:39

7.24学习心得

1.数组(重点)

  • 数组也是一种类型,下标从0开始。

  • 可存储基本类型,也可以存储引用类型。

  • 数组中元素具有相同的数据类型。

  • 定义方式(2种):type[] arrayName; (常用) type arrayName[];
    同一个程序选择同一种定义数组的方式。

  • 静态初始化:int[] a={1,2,3}; 动态初始化:int[] a=new int[3];

  • 常见问题:java.lang.ArrayIndexOutOfBoundsException:N(数组索引越界异常)

数组索引越界异常

  • java 中要将一个字符串转换成一个字符数组需要使用 String 类中提供的 toCharArray() 方法进行操作。例:
String str = "abcde";char[] ch = str.toCharArray();
  • 数组的实际内容存放在堆中,指针存放在栈空间
    存储形式:相邻的一块内存空间

  • 冒泡排序:

冒泡排序

  • 二分法—先排序,从中间开始查,小向左查,大向右查,然后再从中间开始查。

  • “==”、equals()和Arrays.equals() 区别(重点)**

代码

解释

Integer a = 123; Integer b = 123; 相等吗?true
Integer a = 246; Integer b = 246; 相等吗?false

为什么?

public static Integer valueOf(int i) {assert IntegerCache.high >= 127;if (i >= IntegerCache.low && i <= IntegerCache.high)return IntegerCache.cache[i + (-IntegerCache.low)];return new Integer(i);}

==比较的是地址值 Integer的数据直接赋值,如果在-128到127之间,会直接在缓冲池里获取数据。针对-128到127之间的数据,做了一个数据缓冲池,如果数据时该范围内的每次并不创建新的空间。因为创建了新空间地址值不同所以是false,用equals比较就是true。

2.面向对象的三个特征:封装、继承、多态

对象的定义:Student std=new Student();

3. static关键字:静态

  • 特点:随着类的加载而加载
    优先于对象存在
    被所有对象所共享(同类共享)
    可以直接被类名调用

  • 注意:静态方法只能访问静态成员,但是非静态方法可以访问静态成员。
    静态方法中不可以使用this,super关键字。

  • main函数是静态的。

4.递归方法

  • 实现一个整数的阶乘

阶乘

  • 实现数组全排列

排列组合