Can I declare something like this??
static volatile boolean first=false;
To expand on Michael's comment.
static
simply means not associated with an instance of the containing class.
volatile
simply means that the value may be changed by other threads without warning.
So your question boils down to "can a field not associated with an instance of the containing class be changed by another thread without warning?"
As Michael pointed out, the answer to that question is yes. Instance association is orthogonal to concurrent modification.