How can I explain to him that it is inappropriate to refer to nationality and skin colors so much without getting to deep?
But IS it inappropriate? Says who? By telling your child that the words "black" or "Chinese" are inappropriate and not something to be said in public, are you not, in effect, telling your child that they are something to be ashamed of, something inferior and hurtful ... like calling someone stupid or ugly?

To a young child who is raised without prejudice and bigotry, the words "black" or "Chinese" are simply facts, not insults ... just like the words "tall" or "blue-eyed" would be. I think you should congratulate yourself on the fact that your child sees nothing derogatory in these terms.

This is probably a phase your child is going through. Kids have to learn to organize the chaos that is their world, because for a child, the world gets a little bigger and a little more confusing every day.

Perhaps you could simply redirect your child's train of thought. When he says, "That black man over there has a cute dog.", you could say, "Which man? The man with the blue coat on? Yes, the tall man in the blue coat does have a cute dog!" If he sees race is not always the first/most important identifying characteristic, he will unconsciously start to mimic that phrasing.