i need to know what would be better for me as i want to make programs for mac and windows with the same language, basically i want to make games,apps, just good applications but confused
I'd say C++, but you're definitely going to be getting biased answers on cplusplus.com.
Java's a bit simpler due to its automated memory management, but it doesn't give you as much low-level control of your program. Template metaprogramming seems really nice. C++ code can be harder to use due to memory management.
In Java, you have automated memory management and cross-platform. The extreme focus on O-o programming seems annoying, though. Also, because it's cross-platform, it'a slower.
There's nothing you can't do in either language, keep that in mind. They're both Turing Complete.