1.递归,汉诺塔
2Java final关键字和构造方法的关系。
private final char[] value; //字符数组,私有最终变量,只能赋值一次
public MyString()
{
this.value = new char[0];
}
当没有构造方法是,在value处报错The blank final field value may not have been initialized
当有构造方法没有this.value = new char[0];时,在构造方法处报错The blank final field value may not have been initialized
当MyString方法如上时,则不报错。这是为什么?
解决:当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。final变量=常量(并未完全理解,以后可以在工作中继续理解深入)
3 Iterable和iterator是什么,什么区别,生成器,迭代器
Iterable
Iterator
包含3个方法: hasNext , next , remove。remove按需求实现,一般它很少用到,以至于Eclipse接口方法自动补全时,都忽略了remove放方法。
4 Java内部类
作用
1.内部类可以很好的实现隐藏
一般的非内部类,是不允许有 private 与protected权限的,但内部类可以
2.内部类拥有外围类的所有元素的访问权限
3.可是实现多重继承
4.可以避免修改接口而实现同一个类中两种同名方法的调用。
5.Java基本数据类型和引用数据类型区别
基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。
引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。
基本类型:
基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。
引用类型:
是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。
6.Java堆和栈
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。
7.快速排序
8.java 位运算符