Melka, thanks for the info.
So basically,
Arduino environment = Just programs Arduino hardware, provides a serial terminal.
More precisely, simplified C++ designed for use the AVR Library, and embedding everything needed to burn programs in the Arduino and compatible boards.
Processing = simplified Java (that some people use to communicate with Arduino hardware?)
Yes, but you can do that with any language able to exchange data through a serial link, ie almost all of them.
I don't know much about Java but if I wanted to spend time on OO, I think C++ would be more appropriate. Personal Opinion of course!
Let's say religious opinion. Starting this kind of discussion is a bit like smoking while making nitroglycerin.
As an atheist (*Basic-smashing atheist, but atheist), I'd say you won't do the same things in Java and C++. C++ have a more complicated and somehow more complete (wet floor...) approach of OOP, than Java, but isn't a strictly-OO language, as there can be structures (functions, variables, etc.) outside of classes, for C compatibility.
(... ok, I will burn in hell.)
A neutral advice would look like : OOP is basically a paradigm, which you can learn more easily without a language.
(... seems like it's gotta be only a few centuries in purgatory)