a) Starting from the first chapter, and found throughout the book in multiple places is the word "idiom" used in the programming context. I don't get a clear idea , what all can be called as an idiom and what cannot in the java programming world ?
b) I never get to use member classes/interfaces and wonder if I am missing something regarding their usage. When should we go about using a member class or interface , what should be deciding factors whether to make a class/interface an independent one or a member?
Idiom means a usage word or phrase which is particular to one language. For example we can say, “It is raining cats and dogs,” which sounds like nonsense when translated into another language. By “Java idiom,” Bloch means something which you write on way in Java but you would write differently in other languages.
I just searched my google books copy and the first 5 hits were not good! In one example, he writes "design patterns and idioms" and I think in that sense 'idiom' means something along the lines of the dictionary definition which relates to idioms in the English language - you can translate that for the Java language as something like "a typical way of doing something".
In the other 4 of the first 5 hits, he used the word 'idiom' when really he just means 'example'.
So, not great English.
In fact, a bit of an anti-pattern! ;)
They fall into that trap at Spring Frameworks, where every document contains a reference to the phrase "idiomatic Java" when really they would just do better to say 'correct Java' but I guess they felt that was a little arrogant - and to say "typical Java" made it sound a bit cheap.
My 2 cents!
I have seen things you people would not believe, attack ships on fire off the shoulder of Orion, c-beams sparkling in the dark near the Tennhauser Gate. All these moments will be lost in time, like tears in the rain.