JAVAの本を読んで勉強中です。質問なんですが、

1つのコマンドライン引数を受け取り、この文字列をint型の値に変換してと
あるのですが、
int i = Integer.valueOf(args[0]).intValue();とある場合と
int i = Integer.parseInt(args[0]);とあるときがあるのですが、
この2つの違いがわかりません、
上は現在のオブジェクトの値をint型で返す。
下は基数10の数値として変換してint型で返す。
と言葉ではこうあるのですが、理解できません。
どうかこの初心者にもわかるように教えてください。
お願いします。