^This. In Java is very, very easy allocate thousands of new objects without noticing (a common example is making tons of String objects). Allocation time by itself wont be noticeable (unless you're allocating many complex objects, it those cases it is recommended that you reuse such objects where makes sense), but the allocation time + garbage collection time can build up and be a problem eventually.
Though I'm not sure if he meant a wrapper coded by him or the boxed Double
By looking around I'm inclined to say that Java has earned its reputation of being "slow" because is very easy and convenient to allocate new objects around at every single line of code, inside loops (worst), at the "return" of all methods (not so bad), etc.
Java has a lot of problems here...
basically, it is fairly easy to write code which starts spewing garbage at high speeds, and internally (in its libraries) makes considerable use of operations which solve problems simply by creating new objects only to discard them again, coupled with a lack of compound value-types, limited ability to perform lifetime inference, lack of reference arguments, ... leaving "new" as mostly the primary solution to "pretty much everything".
writing code which is more conservative with memory in Java is possible, just it requires care and isn't usually really all that pretty.
usually the problem is mostly not obvious as the JVM also has a pretty fast GC (so, the GC may run once every few seconds, and largely escape notice).
(I still though much prefer other more sanely designed languages...).
now as for sin/cos performance:
usually this becomes more relevant when these are being used many millions of times per second or similar.