It depends on what your knowledge background is. If you have the concept of OOP, that is, Object Oriented Programming, then it's not going to be hard. But if you start without any programming experience. Then might have to know basic concept such as procedural programming at first. But the key is don't make the learning too theoretical, Java has different application field, such as building website or Android applications. Find your interested subject, learn and try, it's never going to be difficult.