I would strongly recommend taking a look at my below online Java course on Udemy. It is currently one of their top 3 paid Java courses and is one of their longest too. It has around 10k students from over 125 countries and has a rating of 4.5 out of 5 from over 2k reviews. Students include both beginner level as well as experienced Java professionals. It is also part of "Udemy for Business" program that is used by companies like PayPal, Apple, Wipro, etc. to upskill their employeed. The course is extremely in-depth and covers tons of design principles and best practices that any Java professional has to know. The course is also highly practical in that every concept is demonstrated in code and the course includes an instructor-led project that is implemented in a professional way ~ uses MVC pattern (with the exclusion of UI part ~ a Java program is used instead) & TDD principle for parts of the code. The course also has a 3-hour chapter exclusively on JVM Internals and there is an Eclipse tutorial included. Other important stuff like Generics, Concurrency, Functional-style programming (lambdas, method references, functional interfaces, stream API), Collections framework, Exception handling, etc. are covered at very in-depth level. Regarding OOPS concepts like inheritance, polymorphism, interfaces, abstract classes, etc., a real-world case study is used, which is later implemented in project form. There are lot of coding exercises too and student solutions are evaluated for correctness instantly via junit test cases. So, take a look at the course content, the reviews and the preview video and you can decide. Questions can be asked in the Q&A forum and almost always you will get an answer from me within 24 hours and the answers are all very detailed. You will also get life-long access and if you don't like the course, you have 30-day money back guarantee. So, you get to learn all of this great stuff from the comfort of your home (and at a fraction of cost).