Well lets see
Ans according to the question nos
1. Is your InnerClass static coz if so then you can specify as InnerClass i = new InnerClass();
Now why whenever I see such code I forget about inner class and think in a simple terms inorder for a reference / object to be created the class should be accesible. what I mean is you are trying to create an object of class InnerClass in main static method, so is InnerClass which is non static accessible in main method I don't think so.
2. Good theory but it is not in terms of the
word instance method, I think (my understanding) you can only say that a method is instance of a particular class if it overrides it, which is not in the case of Thread class, so if you think in OO methodlogy the method wait() even though inherited from object into Thread it still belongs to Object hence the answer is no.
3.Sorry didn't understand the question pls give more info.
4.Well in a way you are correct but I don't think the difference immutable are used on objects, where as final is used on class but both literal meaning is the same.
5. Signed shift operators are >> & <<
6. well
java compiler will not complain but as you know that trasient is used to prevent serlization of a variable and static variable is any way not serialized hence it is not needed or useless to specify transient on static variable.
7. No, compiler will complain if they are not initilized before use.
8.
A. is wrong coz no throws at all compiler will complain
B. Is fine as BaseException can handle subexception as well.
C.Is also fine same as B, and runtimeexception need not be in throws clause anyway.
D. It is fine as Exception is the Base of the BaseException hence can handle both BaseException and SubException
E. is wrong coz no throws for BaseException and subException types.