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!!!

Internationalization and Security