Is he serious? Do all guys do this?

My boyfriend calls me terrible names when he is mad, or even slightly agitated. He knows they hurt me and has caused me huge self esteem issues and has lead to me having a lot of insecurities. He calls me "pig" and "fat" and the reasons it hurts so bad is because im not some skinny chick but im not some big girl. I guess im "thick" but more healthy. Im like 5"7 and 170 lbs. So if he thinks im so fat and a pig why would he stay with me? Its ruining my self esteem and causing deeper emotional issues for me. Do all guys say shit thats mean when they are angry?
Is he serious? Do all guys do this?
Post Opinion