内部类分为:成员内部类,静态内部类,局部内部类,匿名内部类。
内部类定义:innerclass,在类的里面定义类就是内部类。
静态内部类和成员内部类可以用访问控制权限的修饰符修饰。public,protected,private,缺省,局部的不可以,匿名内部类相当于局部内部类。
内部类重要的作用:可以访问外部类中私有的数据。
成员内部类:1)成员内部类里面不能有静态方法和静态变量。2)成员内部类可以等同看作成员变量。3)成员内部类可以访问外部类所有的数据。
静态内部类:1).静态内部类可以直接访问外部类的静态数据,无法直接访问成员数据。2)静态内部类可以等同看作静态变量。
局部内部类:1)重点:局部内部类在访问局部变量的时候,局部变量必须使用final修饰。因为局部变量只能有一个值,不能更改。2)局部内部类等同于局部变量。
匿名内部类:这个类没有名字
public class Test{
//静态方法
public static void t(CustomerService cs){
cs.logout();
}
//入口
public static void main(String[] args){
//调用t方法
//使用匿名内部类的方式执行t方法
//整个这个"new CustomerService(){}"就是个匿名内部类
t(new CustomerService(){
public void logout(){
System.out.println("exit!");
}
});
//匿名内部类的优点:少定义一个类.
//缺点:无法重复使用!
}
}
//接口
interface CustomerService{
//退出系统
void logout();
}
2.数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。String有有length()这个方法。
3、HashMap和Hashtable的区别?
4.heap和stack有什么区别?
栈内存(stack):栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。
栈内存(heap):一般用于存放不放在当前方法栈中的那些数据,例如,使用new创建的对象都放在堆里,所以,它不会随方法的结束而消失。
注意:方法中的局部变量使用final修饰后,放在堆中,而不是栈中。
网友评论