Okay, I didn't check the java documentation on whatever you have posted. Java spec could say anything as it doesn't mandate what should happen on DB side when the connection is closed. If you want to verify your self and if you have access to Oracle with DBA privilege you can try these things
1. Write a java program with preparedstatement (open connection, bind values, fire query and close the connection)
2. Run the program twice
3. Go to Oracle
i) Query V$SQLTEXT by filtering on the table name.
You should get the hash value of the query.
ii) With that hash value query the V$SQL view and select the columns like
executions, loads, open_versions.
iii) You will see that the statement executed through JDBC the execution count as 2.
If you aren't satisfied forget this.