返回

栈和堆

发布时间:2022-10-22 00:09:30 310
栈:先进后出,后来先出

 堆:先进先出
 ,后来后出



 定义泛型类:就是把<>放在类上

一个大写字母代表一个类型。


 定义泛型【类】格式: 

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

  *

  */
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线