被Java泛型坑惨了

下面的Java代码会不会报错
输出是什么

import java.util.HashMap;
import java.util.Map;

public class Test {

    public static void main(String[] args) {

        Map map1 = new HashMap();
        map1.put("key", new Integer(100));
        Map<String, String> map2 = map1;
        Integer value = Integer.valueOf(((Object)map2.get("key")).toString());
        System.out.println(value);
    }
}

1.不会报错
2.输出为:100

其实也不是泛型的问题 第一个Map没有定义泛型默认为 Map<Object,Object> 所以在输出的时候会出现类型转换的异常 所以泛型最好还是指定下