Definitely go with IntelliJ, have quoted my above post above about why it's so awesome.
Some books that I'd recommend:
Head First Java is a great book.
Thanks for the suggestions. I was looking at Head First Java and Effective Java, but noticed that Head First Java doesnt include Java 8 features.
Do you know of any good intro books that include Java 8 features? In particular lambdas, reg expressions, and Java FX? My class will be going over these concepts:
Classes and Objects - 10%
Interface, Nested Classes, Functional Concepts - 20%
- primitive types and references to objects
- programming with types and packages
- generics and annotations
Exceptions - 5%
- working with interface
- static nested classes
- inner classes
- anonymous inner classes
- lambda expressions
- functional interfacaes
Threads - 15%
- exception handlers, transfer of control
- asynchronous exceptions
- try, catch, finally blocks
Standard Java Packages - 10%
- creating threads using Thread class/Runnable interface
- synchronization design, wait / notify
- thread scheduling, management and thread group
Networking - 10%
- java.io - Input/Output Stream, Reader/Writer and serialization
- java.net - Sockets
- java.util - Collections: Set, List, Queue, Map
Java FX - 10%
- InetAddress class
- socket and server socket
- uniform resource locator - URLConnection class
Remote Method Invocation - 10%
- build-in UI controls
- Webview and Swing interoperability
- self-contained application development model
Introduction to Java Enterprise Edition - 10%
- RMI specifications
- RMI client and RMI server
- RMI tools: rmic, rmiregistry
- JDBC - Data Access APIs
- servlets