val1 と val2 が何かが質問に含まれていません。
重要な情報は全部書いてください。
このSystem.out.print(val1*val2+"");
の+演算子とダブルクォート2つは、次のSystem.out.print(val1*val2); の結果を文字列として扱って、結果同士を隣り合わせにするという認識で合っていますでしょうか?
System.out.print(val1val2+""); の文を実行するのに、
次の行のSystem.out.print(val1val2); の文の実行結果を利用することは
あり得ません。
System.out.print(val1*val2+""); の文の実行だけを見ましょう。
val1*val2+"" という式の評価結果を表示するだけですから、その意味を考えましょう。
例えば、int val1 = 7, val2 = 5; だったとします。
val1*val2 の評価結果は 35 です。
35+"" で int と String の +演算を実行しないといけません。
int と int の足し算や、String と String の連結は分かりますよね。
int と String を +演算子でつなぐと、int が String に変換されて
String と String の連結になります。
すなわち、"35" + "" になり、その評価結果は "35" です。
System.out.print("35"); は標準出力に 35 と表示します。
どこが分からなかったのかを教えてください。
追記
間違って「連接」と書いていたのを「連結」に修正しました。
ロマンスカーや江ノ電の連接台車を調べていたところだったので、
つい連接と書いてしまいました。