栈和堆

【栈和堆】
栈:先进后出,后来先出
堆:先进先出 ,后来后出


定义泛型类:就是把<>放在类上
一个大写字母代表一个类型。

定义泛型【类】格式: 
public  class  类名<E>{}

定义泛型【方法】格式
public <T> void show(T t){}
把明确类型推出到了调用方法上。


定义泛型【接口】格式
public  interface  接口名<T>{
public abstract void show(T t);
}

【实现】泛型接口格式
第一种:在实现泛型接口时明确泛型的类型。
public  class  类名  implements  泛型接口<String>{
public void  show(String s);
}

第二种:在类上继续加上泛型
public class 类名<T> implements 泛型接口<T>{
public void show(T t){}
}

泛型的通配符【?】
-----------------------例子1----------------
class Animal{}
class Dog extends Animal{}
class Pag{}
//向下限定
ArrayList<? extends Animal> al=new ArrayList<Animal>();
ArrayList<? extends Animal> a2=new ArrayList<Dog>();
ArrayList<? extends Object> a3=new ArrayList<Pag>();
ArrayList<? extends Object> a4=new ArrayList<Object>();
//<? extends Object>表示只有继承了Object类的子类才能实例化该泛型

//向上限定
ArrayList<? super Animal> aal=new ArrayList<Animal>();
ArrayList<? super Object> aa2=new ArrayList<Object>();
ArrayList<? super Dog> aa3=new ArrayList<Dog>();
ArrayList<? super Dog> aa4=new ArrayList<Animal>();
ArrayList<? super Dog> aa5=new ArrayList<Object>();
//<? super Animal>表示只有自己或者父类才能实例化该类。
------------------------end--------------------------




【枚举类型】 
关键字enum
定义格式: enum 类名{}
----------------------------------例子知识的---------------------------
/**
 * 自定义一个枚举类
 * 枚举要注意的细节:
 * 1.枚举类也是一个特殊的类。
 * 2.枚举值默认的修饰符是public static final.
 * 3.枚举值的数据类型,是枚举值所属类的类型,枚举值是指向了本类的对象。
 * 4.枚举类的默认构造方法修饰符为private
 * 5.枚举值必须要位于枚举类的第一行语句
 * 6.枚举类可以定义自己的成员变量和成员函数。
 * 7.枚举类可以自定义构造函数,但是构造函数的修饰符必须是private
 * 8.枚举类可以存在抽象的方法,但是枚举值必须要实现抽象的方法。
 *
 */
enum Sex{
man,woman,man_01("男");//枚举值
// man_02("女");//错误,枚举值必须要位于枚举类的第一行语句

//public static final Sex man=new Sex(); 相当于man
String value;//定义枚举类的成员变量

private Sex(){}
//构造函数
private Sex(String str){
this.value=str;
}
//定义枚举类的成员函数
public void getValue(){
System.out.println(this.value);
}
}
-------------------------------------------------列子结束end---------------------------------
-------------------------------------------------例子2  枚举类中的抽象方法----------------------------------------
/**
 * 枚举类,定义其抽象方法
 * 枚举值可以有抽象方法,但枚举值必须要实现抽象方法。
 * @author Administrator
 *
 */
enum Man{
Sex{
public void Man_run(){

}
},
Sex_man("男"){
public void Man_run(){
System.out.println("我是枚举类的抽象方法。");
}
};
public String value;

//构造方法
private Man(){}
//构造方法
private Man(String str){
this.value=str;
}
//抽象方法
public abstract void Man_run();
}
---------------------------------------------------------end结束----------------------------------------------------------
/**
 * 复习集合
 * 单列集合
 * -------------| Collection 单列集合的根接口
 * -----------------| List 如果是实现了List接口集合类具备的特点:有序,可重复。
 * ---------------------| ArrayList 底层使用Object数组实现的。特点:查询速度快,增删慢。
 * ---------------------| LiskedList 底层是使用了链表数据结构实现的。特点:查询慢,增删块。
 * ---------------------| Vector 底层使用Object数组实现的,实现与ArrayList是一样,只不过是线程安全的,操作效率低。
 *
 * -----------------| Set 如果是实现了Set接口集合具备的特点:无序,不可重复
 * ---------------------| HashSet 底层使用的是哈希表具备的特点:无序,不可重复。
 * ---------------------| TreeSet 底层使用二叉树实现。
 * 
 * 
 * 双列集合:
 * -------------| Map (只需要把Map接口的方法全部练习一遍即可)
 * ----------------| HashMap 底层使用的是哈希表实现的。
 * ----------------| TreeMap 底层使用二叉树实现
 * ----------------| HashTable
 *
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值