Need to rant

I love my boyfriend to death i really do, he’s my best friend and i’d do anything for him. We don’t fight really at all and we’re usually really good at communicating things. I know he loves me more than anything and we’ve been together for a bit over two years. but he sometimes just gets really annoyed for no reason. Usually it’s not a big deal, but last night he really upset me and made me cry the whole night. I’m overly sensitive when it comes to people being mad at me so usually I sweat it off as me being over dramatic but I know I didn’t do anything.

In highschool I used to help teach a biology class and took college level bio and extra years of science so he had coke to me and asked some questions about his biology homework since he didn’t understand a few things.

I was explaining something to him and he kept getting frustrated, so I asked him to ask me again what specifically he needed explained thinking I heard it wrong. I dumbed it down even more, he then said that’s not what I asking but what I was saying was the answer to his question. I asked him to replay what his professor said in the video, low and behold it was exactly what I had said to him.

He said “I just don’t understand will you always end up with H2O” and I explained it depends on what process it goes through but for what he was learning about H2O will always be a byproduct. (dehydration reaction).

he then interrupts me and tells me to “shut the fuck up, I have a fucking question if you would fucking let me ask it. all this shit you’re telling me isn’t needed” and then asks me “yes or no, will water always come out of it” i just gave up and said yes and said I was going to bed and left him.

whenever he gets annoyed he’ll swear at me.

I don’t know how to tell him that I can’t deal with it anymore. I don’t know if I did anything wrong I was just trying to help him, I even searched everywhere for my own notes I used to have so he could use them and the night before I had helped him as well and had no problems.

I’m so bad at communicating when I get yelled at because i have a tendency to just shut down. He’s a really amazing guy he just has some anger issues. Usually he apologizes but he didn’t this time and I guess didn’t see it as a problem. Were both going to be 20 soon and it’s so childish and I don’t want to be treated like this, i’m just not sure what to do. I don’t want to breakup bc this doesn’t happen often but when it does it makes me so upset. Any ideas on how to tell him that he needs to figure out his anger problems?