A marker interface is a completely empty interface (no methods, no constants) which still means something if you implement it. One example is "Cloneable." If your class implements Cloneable, then the version of clone() inherited from Object knows that it's OK to try to clone your class. If you don't implement this empty interface, clone() throws CloneNotSupportedException. The only purpose of implementing Cloneable is to tell clone() that it's OK to run. This is what marker interfaces do.
A marker interface is an interface that has no methods or fields. It is used only to identify the semantics of that interface. Examples are java.io.Serializable, java.lang.Cloneable etc. A class implements java.io.Serializable just to tag that that class can be serialized. No methods are implemented in that class. It is also calles sometimes as a "Tag Interface" or a "Null Interface"