JAVA RESOURCES
Useful links, sites, and tutorials to aid your journey in Java.
ORACLE JAVA DOCUMENTATION
This is Oracle's official Java documentation. It includes a detailed list of all the classes, templates, methods, etc. that come with Java. Obviously, you shouldn't try to read through the entire thing, but it is certainly useful for looking up specific things. If you ever have trouble with some class or are unsure of which parameters a method takes, try searching it up here.

CODEACADEMY
CodeAcademy offers an excellent free Java course on their website. If it is your first time learning Java, this is a great resource for you. Their step by step course covers all the basics of Java, and provides some practice projects along the way. While this is by no means a particularly advanced course, it does a good job teaching Java in an understandable way.

GEEKSFORGEEKS (JAVA)
GeeksForGeeks is a popular website for programmers. GeeksForGeeks has a variety of resources related to programming, but one great resource they have is their very thorough online guide (linked below) for Java. It is much more in-depth than the CodeAcademy tutorial, so it is recommended for people with a little more experience with Java. There are over a hundred different specific topics on Java, so there is plenty to look at. It is also a great place for anyone to find specific answers to specific questions about Java, whether that be syntax, logic, time complexity, etc.

COLLEGE BOARD
For those of you that didn't know, College Board has a variety of resources on their website for each of their AP exams. The ones linked below are mostly for students taking the AP Computer Science A exam. The resources College Board put on their website are specifically tailored to the material that will be tested on the AP exam. Thus, this is a great resource for students planning to take it. However, it can also be helpful to those who wish to simply study Java. I encourage those who are interested to check out the video series on Java that are available on the website. If Collegeboard won't let you view it on their website, they can also be found on YouTube.

IDES FOR JAVA
Having a good IDE is vital to a smooth programming experience. While it is possible to scrape by using online compilers, using a dedicated IDE to code and run your program is infinitely better. Below are some great IDEs for Java.
INTELLIJ IDEA
IntelliJ IDEA is one of the best dedicated Java IDEs out there. Made by the same developers as CLion IDE, IntelliJ comes with very powerful tools. Unlike CLion however, IntelliJ is free. While they do have a paid premium edition, the free community edition offers all the features you need for most programming. It is recommended to spend some time learning all the features IntelliJ has. These powerful tools can greatly speed up your coding and catch mistakes early on. It has a very modern feel to it and offers many customization options. A very powerful IDE for Java.

VISUAL STUDIO CODE
Visual Studio Code, often simply referred to as VS Code, is a programming platform designed by Microsoft. It is completely free and comes with tons of powerful features. The base IDE comes with support for multiple languages, including Java, which can be enabled by installing an extension. VS Code comes with a lot of features that can seem confusing at first, but it is certainly worth it to take a bit of time to learn how to use it. With the right extensions and customizations, your code will seemingly write itself. VS Code is a very solid IDE, especially if you plan on learning other languages as well.

ECLIPSE
The Eclipse IDE is another very popular choice for Java programmers. Although it is older than IDEs like VS Code and IntelliJ, it is still a great IDE. It has many great features and runs well, but can be difficult to learn and use due to its older UI. For those who wish to avoid using VS Code, Eclipse is a pretty good option. Again, it is recommended to watch a few tutorials on how to use it before diving into coding, as it can be rather confusing at the start. Installing and setting it up also comes with a lot of customization options, so it's best to know what you are doing before you download it. However, if set up well, it can be a very efficient development platform for a variety of languages.
