This document provides an overview of getting started with Java. It discusses what Java is, its evolution and key features like object-oriented programming. It reviews object-oriented programming concepts and demonstrates how to implement Java classes. The document also covers setting up a Java development environment, compiling and running Java programs, and local Java user groups and resources for learning more.
2. Whoâs Mike?
⢠BS in CS from
⢠âPetrochemical Research Organizationâ
⢠Java Queue News Editor, InfoQ
⢠Ai-Logix, Inc. (now AudioCodes)
⢠Amateur Computer Group of New Jersey
2
3. Objectives (1)
⢠What is Java??
⢠Evolution of Java
⢠Features of Java
⢠Review of Object-Oriented Programming
(OOP)
3
4. Objectives (2)
⢠Getting Started with Java
⢠introduction to the Java class mechanism
⢠how to implement Java classes
⢠Live Demos (yea!)
⢠Java Resources
4
5. What is Java?
⢠âJava is C++ without guns, knives, and clubs.â
James Gosling,âfatherâ of Java, Sun Microsystems
⢠âJava is simple, object-oriented, distributed,
interpreted, robust, secure, architecture neutral,
portable, high performance, multithreaded
dynamic language.â
Sun Microsystems
5
6. Evolution of Java (1)
⢠Created by James Gosling (with Patrick
Naughton)
⢠Sun Microsystems
⢠1991 - originally named âOakâ
⢠consumer applications
⢠architecture agnostic
⢠object-oriented
6
7. Evolution of Java (2)
⢠1994 - Project â*7â dissolved
⢠but in the meantime...
⢠1995 - Java introduced at Sun World â95
⢠HotJava browser
7
8. Features of Java
⢠Object-Oriented
Programming (OOP)
Language
⢠Documentation
Generation
⢠Applets and Applications
⢠Comprehensive
Exception Handling
⢠Java Database
Connectivity (JDBC)
⢠Java Beans
⢠Enterprise Java Beans
⢠No pointers!!
8
9. OOP Review (1)
⢠Programming Paradigm
⢠Four (4) Main Attributes
⢠data encapsulation
⢠data abstraction
⢠inheritance
⢠polymorphism
9
10. OOP Review (2)
⢠Abstract Data Type (ADT)
⢠user-deďŹned data type
⢠use of objects through functions (methods)
without knowing the internal representation
10
11. OOP Review (3)
⢠Interface
⢠functions (methods) provided in the ADT that
allow access to data
⢠Implementation
⢠underlying data structure(s) and business logic
within the ADT
11
12. OOP Review (4)
⢠Class
⢠DeďŹnes a model
⢠Declares attributes
⢠Declares behavior
⢠Is an ADT
⢠Object
⢠Is an instance of a class
⢠Has state
⢠Has behavior
⢠May have many unique
objects of the same class
12
13. Advantages of OOP
⢠Interface can (and should) remain
unchanged when improving implementation
⢠Encourages modularity in application
development
⢠Better maintainability of code
⢠Code reuse
⢠Emphasis on what, not how
13
14. Some Java Keywords
⢠class
⢠new
⢠private,
protected, public,
package
⢠try, throw, catch,
finally
⢠final
⢠extends
⢠implements
⢠abstract
⢠interface
14
15. Classes (1)
⢠A user-deďŹned abstract data type
⢠Extension of C structs
⢠Contain:
⢠constructor
⢠data members and member functions (methods)
15
25. Java Development Kit
(JDK)
⢠Available from Oracle web site
⢠java.sun.com
⢠Java SE (standard edition)
⢠latest version - Java 9.0.4
⢠Java 10 available on March 20, 2018
⢠Documentation in full HTML format
25
26. Working with Java (1)
⢠Setup environment and path:
⢠set JAVA_HOME=path
⢠set PATH=%PATH%;%JAVA_HOME%bin
⢠export JAVA_HOME=path
⢠export PATH=$JAVA_HOME/bin
26
27. Working with Java (2)
⢠Source code
⢠.java extension
⢠Intermediate bytecode
⢠.class extension generated after successful
compilation
⢠Bytecode interprested by JavaVirtual
Machine (JVM)
27
28. Working with Java (3)
⢠Compile Java source code:
⢠javac -Xlint:all -d path
filename.java
⢠Run the application:
⢠java -classpath path filename
28
29. Working with Java (4)
⢠Run the applet:
⢠in browser via HTML ďŹle within <applet></
applet> tags
⢠appletviewer path filename.html
29
30. Directories and
Packages (2)
⢠Consistent directory structure
⢠source code (*.java)
⢠byte code (*.class)
⢠Map directories with package name
⢠under the src folder
30
33. Java IDEs (1)
⢠IntelliJ IDEA 2017.3
â˘jetbrains.com/idea
⢠stay tuned for version 2018.1 coming soon
⢠Eclipse IDE
â˘eclipse.org/ide
33
34. Java IDEs (2)
⢠NetBeans 8.2
â˘netbeans.org
⢠currently being moved from Oracle to Apache
34
35. Local Java User Groups
(1)
⢠ACGNJ Java Users Group
⢠facilitated by Mike Redlich
⢠javasig.org
⢠Princeton Java Users Group
⢠facilitated byYakov Fain
⢠meetup.com/NJFlex
35
36. Local Java User Groups
(2)
⢠NYJavaSIG
⢠facilitated by Frank Greco
⢠javasig.com
⢠PhillyJUG
⢠facilitated by Martin Snyder, et. al.
⢠meetup.com/PhillyJUG
36
37. Local Java User Groups
(3)
⢠Capital District Java Developers Network
⢠facilitated by Dan Patsey
⢠cdjdn.com
⢠currently restructuring
37
39. Upcoming Events
⢠ACGNJ Java Users Group
⢠Dr. Venkat Subramaniam
⢠Monday, March 19, 2018
⢠DorothyYoung Center for the Arts, Room 106
⢠Drew University
⢠7:30-9:00pm
⢠âTwelve Ways to Make Code Suck Lessâ
39