zoukankan      html  css  js  c++  java
  • java基础知识4

    1、泛型

    (1)泛型的好处:

     1、把原来程序运行时可能发生的问题,转变为编译时的问题。

     2、提高程序的安全型。

    (2)泛型的擦除机制

     让编译器在源代码级别上,即挡住向集合中插入非法数据。但编译器编译完带有泛型的

     的Java程序后,生成的class文件中将不再带有泛型信息。简单的说:泛型只在编译阶段有效

     运行阶段无效。

    (3) 泛型的应用

     1、在类上声明泛型

      class 类名<T> {}

      类上声明的泛型可以应用在什么位置?

       泛型可以应用于实例属性、和实例方法上。

       类的成员:成员属性  成员方法

       成员属性:实例属性  类属性

       成员方法:实例方法  类方法

     类上声明的泛型为什么不能应用在类属性,类方法上呢,因为类属性,类方法可以直接通过类名调用,这时泛型还没有具体类型。类名.属性  类名.方法。

     泛型如果应用在方法上可以应用于参数和返回值上。

    public class Genec<T>{

      T t;

         public T  fun( T t1){

      

      }

    }

    2、在方法上声明泛型

     声明泛型与使用泛型的区别?

     声明泛型:<>当括号

     应用泛型:不带括号

    怎样在方法上声明泛型?

    》泛型必须声明在返回值之前。

    public <T> void fun1(T t2){

    在方法上声明泛型,怎样使用?

    方法上的泛型只能在方法上使用。可以在方法的参数上以及返回值上

    //在这个方法上声明泛型
     public  static <T>  T  show(T t){
      T m;
      return null;
     }

     3、泛型的通配符为?

    主要有两个应用:

    (1) ? extends E

    在Collection接口中声明

    boolean addAll(Collection<? extends E>);

    本类以及所有子类型

     public void fun1(){
      List<Integer> list1 = new ArrayList<Integer>();
      list1.add(1);
      list1.add(2);
      list1.add(3);
      
      List<Double> list2 = new ArrayList<Double>();
      list2.add(1.0);
      list2.add(2.0);
      list2.add(3.0);
      
      List<String> list3 = new ArrayList<String>();
      list3.add("a");
      list3.add("b");
      list3.add("c");
      
      List<Object> list = new ArrayList<Object>();
      
      list.addAll(list1);  //addAll(Collection<? extends E> c)
      list.addAll(list2);
      list.addAll(list3);
      System.out.println(list); 
     }

    (2) ? super E

           本类以及父类.

           TreeSet(Comparator<? super E> comparator)

           TreeSet集合中的元素要求必须有自然顺序(Comparable接口)         如果没有自然顺序,就需要人为指定比较器(Comparator接口)

      2、枚举 

  • 相关阅读:
    ZOJ1450 BZOJ1136 BZOJ1137 HDU3932[最小圆覆盖]
    POJ 1755 Triathlon [半平面交 线性规划]
    POJ 3384 Feng Shui [半平面交]
    POJ 3525 Most Distant Point from the Sea [半平面交 二分]
    POJ 1279 Art Gallery [半平面交]
    POJ3335 POJ3130 POJ1474 [半平面交]
    POJ 3608 Bridge Across Islands [旋转卡壳]
    nginx访问量统计
    PV UV QPS 并发数
    PV、UV、IP之间的区别与联系
  • 原文地址:https://www.cnblogs.com/mzzy/p/3976444.html
Copyright © 2011-2022 走看看