Map<String, Integer> iMap = new HashMap<>();
iMap.put("a", 1);
Integer a = iMap.getOrDefault("a", getNum());
private Integer getNum() {
System.out.println("getNum Method has been invoked");
return 123;
}
output: getNum Method has been invoked
the iMap has key "a", why getNum still has been invoked?