Welcome to the Java 8 class!
VM Check: Did you all get an email assigning you a virtual PC? Please check the link and log in:
Remote PC Training Assignments VIRTUAL CHALLENGER - REMOTE TRAINING PC ASSIGNMENTS Apple Mac Users: If you have problems accessing your assigned remote PC, please contact My IT for directions on how to use Remote Desktop Connection from the Mac. Remote Training PCs: Techlearning2100
Java Research Assignment
We have a quick assignments. Here’s how it goes.
Everyone will be assigned a version of the JDK. You need to present back to the class what you think the most important feature added to that release.
If possible, show a code snippet of the feature of interest to the class.
Reena - What was the best feature in JDK 17?
Manish - What was the best feature in JDK 16
Amanda - What was the best feature in JDK 15
Lavanya - What was the best feature in JDK 14
Madhu - What was the best feature in JDK 13
James - What was the best feature in JDK 12
Mrunalini - What was the best feature in JDK 11
Laxmi S - What was the best feature in JDK 10
Sumaiya - What was the best feature in JDK 9
Gopu - What was the best feature in JDK 8
Veera - What was the best feature in JDK 7
Venkataramana - What was the best feature in JDK 6
Padmaja - What was the best feature in JDK 5
Pooja - What was the best feature in JDK 2
Present Your Findings. Introduce Yourself.
You will be given 10 minutes to research this topic.
You will then be asked to present your findings back to the class.
You will also be asked to introduce yourself and answer these questions:
- Name and Location
- Years of Java experience
- What topic in the book you are most interested in learning about?
- Are there any topics outside of the book you are interested in learning about?
- Do you feel like an explorer, vacationer or prisoner this week?
Course Topics
Which of the agenda topics are you most interested in?
- JVM (Memory Changes, etc.)
- Packaging Applications (Signing, Verifying JARs)
- Best Practices for Exception Handling
- Threading and Concurrency
- Networking (Sockets)
- Advanced JDBC
- Performance
- Writing Effective Java - best practices
- Data Structures - optimizing for performance and task
- Internationalization
- All Java Security topics
Java and HTML
Let’s dip our toes into the software development waters with a little HTML and Java development.
Tackle this little code scramble and get a web page working in your virtual machine:
https://www.mcnz.com/2020/02/09/roshambo-code-scramble-game.html
Experts only
If you’re a real expert, you’ll integrate a RESTful web service, deployed as a microservice to an AWS Kubernetes cluster, into your app. Here’s some hints:
https://www.mcnz.com/2020/02/09/roshambo-ajax-rest.html
Do it in Java
When you are done with the HTML code scramble, see if you can create the same application in Java. Here are some instructions:
https://www.mcnz.com/2021/07/20/java-roshambo-assignment.html
Exercise on Garbage Collection
Code the SnoopInt and MikeTyson classes from this exercise into a project in Eclise.
https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Performance-cost-of-Java-autoboxing-and-unboxing-of-primitive-types
You can name the project anything you want. Just get these two classes into Eclipse.
Then run the MikeTyson class. Bring up JConsole as it is running and connect to the process running the program.
Monitor the Java heap and memory management. How could you improve the application’s performance?
Working with Lambda Expressions
Take a look at the following page:
https://www.mcnz.com/2021/11/12/lambdas.html
Bring the code from this page into Eclipse and implement the functionality described inside the main method.
Exception Handling
We’re going to work on a threaded version of this application in the future. But for now, see if you can fix the issues with this application, and get the application running in your local workspace:
https://www.mcnz.com/2021/11/11/image-editor-exceptions.html
Day Two
Welcome to day two!
Agile Methodologies Discussion
Look at the 12 questions on this quiz.
Decide if you think the point is:
- actionable
- motivational
- debatable
- vague
We will run through this as a Kahoots Quiz, although there are no right answers.
https://create.kahoot.it/share/opinionated-agile/67110d1c-eb21-4a48-9018-b6d668bf763f
Threading and Concurrency
Not extra exercises. Just do the lab!
There may be a Kahoot on this topic in the future.
Networking
Just do the lab!
JDBC
Can you complete the JDBC scramble?
https://www.mcnz.com/2021/11/11/jdbc-scramble.html
Here’s a couple of scripts to create the database in Derby if you are so inclined:
https://github.com/learn-java-fast/java101/blob/master/rpsdbCreate.cmd https://github.com/learn-java-fast/java101/blob/master/rpsdbCreate.sql https://github.com/learn-java-fast/java101/blob/master/rpsdbSQL.cmd
Day Three
Performance Monitoring and Optimization
What’s new in the world of performance management? Sadly, nothing… Here’s an interview with Jevgeni Kabanov:
https://www.theserverside.com/tip/Are-production-performance-problems-plaguing-your-work
Why Java applications don’t scale linearly
https://www.theserverside.com/feature/Why-Java-Applications-Fail-to-Scale-Linearly
Fix your CPU
https://www.theserverside.com/answer/How-to-fix-high-Java-CPU-usage-problems
Effective Java
We’ll just do the lab here
We’ll also talk about the 12 factor application
Data Structures
Let’s look at Streams. We will discuss this code snippet together:
https://raw.githubusercontent.com/learn-java-fast/learn-java-8/master/com/mcnz/lambda/SimpleStreams.java
Then you’ll be given time to work on the following assignment to get more hands on.
https://raw.githubusercontent.com/learn-java-fast/learn-java-8/master/com/mcnz/lambda/StreamExamples.java
Day 4
The final day!!!