Stress. But get checked by a good doctor.
If you are of a normal BMI and have had routine physical examinations and your cholesterol has been normal, it is not very likely you have a heart problem. It is more likely due to anxiety and/or musculoskeletal pain. If you do not know your cholesterol, triglyceride levels, are overweight, are apple-shaped, and don't exercise regularly, you should have a physical exam and report the symptoms. If heart disease runs in your family or if you have a congenital heart or electrical problem, you could have a heart attack at your age. I knew a girl whose parents diet of heart attacks in their 40s, and she had her first heart attack in her 20s.