Write a Java program which can perform the following types of operations based on input provided by the user:
Basic mathematical calculations: addition, subtraction, multiplication and division
Trigonometric functions: sine, cosine and tangent (ask if user wants to specify value in degrees or radians)
Note: Only the basic operations just described are required.