How to check caseOwner is a user or queue ??



A) By Querying Owner.Type Field:  
       [SELECT Id,CaseNumber,OwnerId,Owner.Name,Owner.Type FROM Case]
       OR
       for (Case objCase : Trigger.new)
        If (objCase.Owner.Type == User.sobjecttype) { /*  Code if Owner is User*/}
else{/*code if Owner is Queue*/ }
       }
Possible values of Owner.Type are 
     1. User 
     2. Queue

B) if(string.valueOf(c.OwnerId).startsWith('005')){//owner is User       }
     if(string.valueOf(c.OwnerId).startsWith('00G')){//owner is Queue}

C)for (Case objCase : Trigger.new)
        If (objCase.OwnerID.getsobjecttype() == User.sobjecttype) { /*  Code if Owner is User*/}
else{/*code if Owner is Queue*/ }
    }

Counters