Question: If I connect with Java to MySQL on my localhost server, I access instantaneously.  

But if I connect outside of the localhost, from a network PC (192.168.1.100), it is very slow (4-5 seconds).  

And, if I connect from a public IP to my MY SQL server, it is also very slow (6 seconds or more).

Answer: 
Because your computer needs time to send packets to external servers and they need time to send packets back. It's called network latency, and is not an issue with Java specifically, but a general network issue.
It will always take longer to make a connection across the network than to make the same connection locally. However, assuming you have a fairly typical local network, 4-5 seconds sounds a bit extreme. My guess (and it is just a guess) would be that the majority of the extra time is being consumed by network name resolution (i.e. DNS and/or netbios). 

I would suggest that you try the connection using a numeric IP address, rather than a name.