三月周记

2018年3月12-2018-3月17

一、java中final关键字

http://www.importnew.com/7553.html

二、0x7FFFFFFF和hashCode

1、因为某些对象的hashCode可能会为负值,与0x7FFFFFFF进行与运算可以确保index为一个正数

/**
	 * Maps a long to an int with range of 0 to Integer.MAX_VALUE-1
	 */
	public static int idToIndex(long id) {
		return 0x7FFFFFFF & Longs.hashCode(id) % 0x7FFFFFFE;
	}

2018年3月19-2018-3月23

一、java中的打印格式,如s%,日期等

http://blog.csdn.net/lonely_fireworks/article/details/7962171

二、java中的泛型

http://www.runoob.com/java/java-generics.html

反泛型方法 1、普通的方法

public static < E > void printArray( E[] inputArray ){ }

2、有界的类型参数: 可能有时候,你会想限制那些被允许传递到一个类型参数的类型种类范围。例如,一个操作数字的方法可能只希望接受Number或者Number子类的实例。这就是有界类型参数的目的。 要声明一个有界的类型参数,首先列出类型参数的名称,后跟extends关键字,最后紧跟它的上界。

public static <T extends Comparable<T>> T maximum(T x, T y, T z) {}

3、类型通配符

类型通配符一般是使用?代替具体的类型参数。例如 List<?> 在逻辑上是List<String>,List<Integer> 等所有List<具体类型实参>的父类。

   public static void getData(List<?> data) {
      System.out.println("data :" + data.get(0));
   }
   
   public static void getUperNumber(List<? extends Number> data) {
          System.out.println("data :" + data.get(0));
       }

泛型类

public class Box<T> {}

猜你喜欢

转载自my.oschina.net/u/3267050/blog/1633781
今日推荐