I am working on java for past two years, & I have a good understanding of its core concepts. But Now I want to go ahead and learn some advance features like how could I connect any hardware device(usb etc) to my program. So could anyone suggest me any good book on topics like that.
I don't know exactly what you are speaking to here but I will suggest the book of books for java programmers. Effective Java by Joshua Bloch. I am sure it has been recommended a million times here but a million and one couldn't hurt if it get's another reader.
I was interested, about a year ago, in how to read game controllers attached via USB with Java. That was when I found out about something called "JInput," that might interest you. Search for it on Google and you'll get all you need.
Historically, it appears that JInput was born when someone else needed to read a game controller, and found out that Java's commitment to platform-independence meant (as of when JInput was created, anyway) it couldn't give you direct access to controllers (I guess because these things tend to be platform-specific).
An irony, imho, of platform-independence is that some of the things you want to do in Java will force you to write native code, and to use the Java Native Interface. Thus, you will be able to write your application in Java, but only on machines where you have access to a native implementation of whatever platform-specific resources you want to use. For example, I've been writing a bunch of stuff that uses the Windows DirectShow API. My application is in Java, but it calls a lot of native methods I wrote in C++, since there's no other way to call the DirectShow API routines. (There's a library out there that does this, but it does nothing to hide DirectShow from the Java user, which means the code is as non-portable as it could be; I wanted something with at least the potential to move to a non-Windows platform someday.)
JInput is, I believe, an open source project. Maybe there will be something there to help you.