How Much Java you need to learn for a good Selenium Scripting ?

1)OOP’s concept – Class, Objects Polymorphism, Inheritance and Encapsulation
2)Java Programming essentials- Object Instances, method overloading/overriding concepts and packages
3)Control Statements – While, do-While, Switch, If statements – This will help us in writing the scripts 
  for a multiple scenario statements and decision making scenarios.
4)Looping statements – This will help us in scenarios like, iterating through a large table to find
  a record that you want and Running the same test for multiple number of times.
5)Arrays Concepts – This will help us in having some set of datas of same type in a static way.
6)Threads and MultiThreading Concepts – This will help us in making run our scripts in different
  threads that will help us in achieving better performance.
7)Java Collections Framework – ArrayLists and HashMaps – This will help us in maintaining a 
collection of data’s. Particularly useful for scenarios where you need to compare the data from Web app
  UI with the DB. [OR] From UI to another UI
8)File Streams – This will be helpful in externalization of data through CSV, Excel or Java Properties file.