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.递归方法
- 实现一个整数的阶乘
- 实现数组全排列