I am a Computer Science major. I would like a note-taking program that will allow me a lot of versatility with math notation, allows me to format java code samples similarly to StackExchange and lets me drag pictures into the program. If it lets me save my notes in a common file-format such as pdf, odt, doc, or similar, that would be good too.
I understand this is a lot of requirements, so if it's not possible I apologize. Please, just suggest the best fits you can find.
I always say this on StackExchange websites. If you feel this post requires down-voting, please let me know why. I believe this is encouraged.
Joplin is probably what you're looking for. It supports Markdown, and thus can be used to store code snippets. It also supports Math expressions using the Katex notation. Notes can be exported to PDF directly from Joplin. And of course, it supports images too.
For me, Joplin is the perfect Evernote alternative, and more, since it supports encryption, is open source and supports synchronization using a cloud sync service of your choice.
Orgmode in emacs fulfills all of your requirements and more.
Here is an example of an org file that includes both math and code: https://github.com/dryman/org-math/blob/master/README.org
.org files which are generated by org-mode also rendered GitHub.
I am a Physics graduate student, who has been using org-mode and emacs for 3 years, and I have amazed professors and students alike with how convenient and powerful notetaking in org-mode is.
If you haven't heard of org-mode yet, it tends to be advertised more as a task manager, but it is much more useful tome as a note-taking tool.