As a Java developer playing with Rust during my spare time, debuts have been a little bit (ok very) difficult but the main issue was quite often the same: trying to write in Rust what I would have written with Java.
Like @kornel said, Rust isn't an OOP language so you need to reason differently...and by far more carefully, considering aspects you may have forgotten because of the JVM doing the job for you.
The compiler is great at helping you (ok, first you hate it, then you love it) and most of the times, once your code compiles, it does what you expect it to. There are many documentation and books available, the community is welcoming and patient with noob like us + there are lots of crates (serde, slog, failure, once_cell,...) that really helps once you get used to it.
The result is really worth a try (performance and resource consumption are just on another level) and it may even change the way you reason about your Java writing, for the better I think.
When it comes to performance tuning or issues, Java is not always that easy to get it right. You'll just end trying to figure out what happens and deal with an OS over another OS ('cause that's what the JVM truly is).
If performance is a matter to you, the real difference to me is that in Rust, you face it from the very beginning.
Rust is challenging, for sure, but once you have it right, it's more a road to a new world than a nightmare.
PS: If you don't know it, https://readrust.net/ is a daily set of information, crates, tools and articles about Rust and it's really worth having a look at it from time to time.