I am still in process of learning java. So Whatever i say may or may not work.
I watched Code with Mosh Youtube video. Then I like that guy so I purchased it's course. I can't compare it with other course's out there because that's the only one I took and to be hones I think I made a pretty good choice. I don't like Udemy courses because I think if someone is talented enough they won't make courses on Udemy only people will make courses on Udemy will be those who need money desperately and don't have proper professional skills. I might be wrong but that what i think.
I recently started using Roadmap.sh and there are some fundamentals topics that are not in code with mosh so i am leaning that. Note : there is no course that will teach you everything despite some topics are missing in codewithmosh.com i think its pretty good learning resource.
I also have @tulip rover as an mentor signed up but i haven't talked to him for a while
I also have other people in real life that keeps teaching me cool stuff like singleton factory pattern and MVC model High level stuff so I can know how things work
I also use learn.java recommend by @knotty lion in general chat
Average learning roadmap for Java SE:
1. To learn basics of Java: https://learn.java/
2. Once you know how to code, the next goal is to understand the data structures. (You can get the book by paying for it or there are some people who love to share knowledge at no cost online)
3. Learn about operating systems, forking processes, threads, sockets and other internal stuff. (This is a lot of theory and needs to be practiced a lot to master it)
4. At the very end, learn design principles. (This will change the way you code. In past you would be creating programs that would break if any changes are made, the design principles will resolve that issue by 99%.)
This is not the end, the journey has just begun
and i also use https://jenkov.com/
One more thing Java is not hard.