(c 是 static weak typing, java 是 static ok-not-very-weak typing)