Java Courseguide
Java Courseguide
Learn Java
ra mm i n g i n
Prog
250 Steps
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 1/203
9/17/2018 in28Minutes | (0/25)
Table of Contents
1. Congratulations
2. About in28Minutes
3. Getting Started
11. Loops
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 2/203
9/17/2018 in28Minutes | (0/25)
12. Reference Types
15. Collections
16. Generics
17. FunctionalProgramming
20. Files
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 3/203
9/17/2018 in28Minutes | (0/25)
Congratulations
You have made a great choice in learning with in28Minutes. You
are joining 100,000+ Learners learning everyday with us.
on APIs, Web Services and Microservices with Spring, Spring Boot and
Spring Cloud.
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 4/203
9/17/2018 in28Minutes | (0/25)
About in28Minutes
You need to get insight into the in28Minutes world to answer that.
What do we love?
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 5/203
9/17/2018 in28Minutes | (0/25)
Getting Started
Recommended Versions
Installation
Github : https://github.com/in28minutes...
PDF : https://github.com/in28minutes...
Troubleshooting
A 50 page troubleshooting guide with more than 200 Errors and Questions
answered
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 6/203
9/17/2018 in28Minutes | (0/25)
Introduction To Java
Programming With JShell
Steps
Step 00 - Getting Started with Programming
Step 01 - Introduction to Multiplication Table challenge
Step 02 - Launch JShell
Step 03 - Break Down Multiplication Table Challenge
Step 04 - Java Expression - An Introduction
Step 05 - Java Expression - Exercises
Step 06 - Java Expression - Puzzles
Step 07 - Printing output to console with Java
Step 08 - Printing output to console with Java - Exercise Statements
Step 09 - Printing output to console with Java - Exercise Solutions
Step 10 - Printing output to console with Java - Puzzles
Step 11 - Advanced Printing output to console with Java
Step 12 - Advanced Printing output to console with Java - Exercises and Puzzles
Step 13 - Introduction to Variables in Java
Step 14 - Introduction to Variables in Java - Exercises and Puzzles
Step 15 - 4 Important Things to Know about Variables in Java
Step 16 - How are variables stored in memory?
Step 17 - How to name a variable?
Step 18 - Understanding Primitive Variable Types in Java
Step 19 - Understanding Primitive Variable Types in Java - Choosing a Type
Step 20 - Java Assignment Operator
Step 21 - Java Assignment Operator - Puzzles on Increment, Decrement and
Compound Assignment
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 7/203
9/17/2018 in28Minutes | (0/25)
Step 24 - Java Conditionals and If Statement - Exercise Statements
Step 25 - Java Conditionals and If Statement - Exercise Solutions
Step 26 - Java Conditionals and If Statement - Puzzles
Step 27 - Java For Loop to Print Multiplication Table - Introduction
Step 28 - Java For Loop to Print Multiplication Table - Exercise Statements
Step 29 - Java For Loop to Print Multiplication Table - Exercise Solutions
Step 30 - Java For Loop to Print Multiplication Table - Puzzles
Step 31 - Programming Tips : JShell - Shortcuts, Multiple Lines and Variables TODO
Move up
Step 32 - Getting Started with Programming - Revise all Terminology
Exercises
Expressions
Print the following output by passing 4 values 5, ,6, 7 and sum of the numbers: 5
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 8/203
9/17/2018 in28Minutes | (0/25)
+ 6 + 7 = 18
Variables
If Statement
For Loop
Repeat the entire process at arriving at the Multiplication Table Print problem, now
for the number 7 . Start with fresh JShell session, if you're still using an existing
one for quite some time (Rinse, and repeat!).
Use the final solution to print Multiplication Tables for 6 and 10 .
Print the integers from 1 to 10 .
Print the integers from 10 to 1 .
Print the squares of the integers from 1 to 10 .
Print the squares of the first 10 even integers.
Print the squares of the first 10 odd integers.
Code Snippets
3*4
System.out.println(3*4)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 9/203
9/17/2018 in28Minutes | (0/25)
System.out.println("5 * 2 = 10")
3.0/2
System.out.println("5 * 2")
System.out.println(5 * 2)
System.out.println("Hello World")
System.out.println(5*3)
System.out.println("5 * 3")
System.out.println(5*3) System.out.println("5 * 1 = 5")
System.out.println("5 * 2 = 5")
System.out.println("5 * 3 = 5")
System.out.println("24 * 60 * 60")
System.out.println(24 * 60 * 60)
System.out.println("Hello World")
System.out.println("Hello World")
System.out.println(24 * 60 * 60)
System.out.println("Hello World")
System.out.println("HelloWorld")
System.out.println("hello world")
System.out.println("hello \"world")
System.out.println("hello \"world")
System.out.println("hello n world")
System.out.println("hello \n world")
System.out.println("hello \nworld")
System.out.println("hello\nworld")
System.out.println("hello\tworld")
System.out.println("hello \\ world")
System.out.println("hello \\\\ world")
Math.random()
System.out.println("hello \n world")
Math.min(23,45)
Math.min(23,4)
Math.max(23,4)
System.out.println("5 * 2 = 5")
System.out.println("5 * 2 = 10")
5*2
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 10/203
9/17/2018 in28Minutes | (0/25)
System.out.printf("5 * 2 = 10")
System.out.printf("5 * 2 = 10").println()
System.out.printf("5 * 2 = 10 %d", 5*2).println()
System.out.printf("5 * 2 = %d", 5*2).println()
System.out.printf("%d %d %d", 5, 7, 5 * 7).println()
System.out.printf("%d * %d = %d", 5, 7, 5 * 7).println()
System.out.printf("%d + %d + %d = %d", 5, 6, 7, 5 + 6 +
7).println()
System.out.printf("%d + %d + %d = %d", 5, 6, 7).println()
System.out.printf("%d + %d + %d", 5, 6, 7).println()
System.out.printf("%d + %d + %d", 5, 6).println()
System.out.printf("%d + %d + %d", 5, 6, 7, 8).println()
System.out.printf("Print %s", "Testing").println()
System.out.printf("%d + %d + %d", 5.5, 6.5, 7.5).println()
System.out.printf("%f + %f + %f", 5.5, 6.5, 7.5).println()
System.out.printf("5 * 2 = 10")
System.out.printf("%d * %d = %d", 5, 2, 5 * 2).println()
System.out.println("5 * 2 = 10")
System.out.printf("%d * %d = %d", 5, 2, 5 * 2).println()
System.out.printf("%d * %d = %d", 5, 1, 5 * 1).println()
System.out.printf("%d * %d = %d", 5, 2, 5 * 2).println()
System.out.printf("%d * %d = %d", 5, 3, 5 * 3).println()
System.out.printf("%d * %d = %d", 5, 4, 5 * 4).println()
number = 11
number
number = 12
number
number2 = 100
System.out.printf("%d * %d = %d", 5, 4, 5 * 4).println()
System.out.printf("%d * %d = %d", 5, i, 5 * i).println()
i
5 * i
i = 2
System.out.printf("%d * %d = %d", 5, i, 5 * i).println()
i = 3
System.out.printf("%d * %d = %d", 5, i, 5 * i).println()
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 11/203
9/17/2018 in28Minutes | (0/25)
i = 10
System.out.printf("%d * %d = %d", 5, i, 5 * i).println()
System.out.printf("a + b + c = a+b+c").println()
System.out.printf("%d + %d + %d = %d", a, b, c
,a+b+c).println()
a = 50 System.out.printf("%d + %d + %d = %d", a, b, c
,a+b+c).println()
b = 60
System.out.printf("%d + %d + %d = %d", a, b, c
,a+b+c).println()
int newVariable;
newVariable
int undeclaredVariable;
undeclaredVariable
5 * undeclaredVariable
a = 100
a = c
int noOfGoals;
int NoOfGoals;
int score;
short s;
float f = 4.0f;
float f2 = 4.5f;
double dbl = 4.5;
i = j
i
j
i = j
i = j * 2
i = i * 2
i = i + i
i = i - i
i = i - 1
i++
i
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 12/203
9/17/2018 in28Minutes | (0/25)
i++
i
i--
number = number + 1
number++ number--
++number
--number
number--
number
i = i + 2
i += 2
i -= 1
i *= 5
i
i /= 4
i %= 2
;
long l = 6_000_000_000l;
short numberOfGoals;
numberOfGoals++
numberOfGoals
numberOfGoals++
numberOfGoals
long populationOfTheWorld;
double average;
char ch = 'A';
ch = 'B'
char grade = 'C';
grade = 'A'
grade
boolean isEven;
isEven = true
boolean isPrime;
boolean isItRainingToday;
boolean areYouEnjoyingTheCourse;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 13/203
9/17/2018 in28Minutes | (0/25)
areYouEnjoyingTheCourse = true
System.out.printf("%d * %d = %d", 5, i, 5*i);
System.out.printf("%d * %d = %d", 5, i, 5*i).println()
System.out.printf("%d * %d = %d", 5, i, 5*i).println()
System.out.printf("%d * %d = %d", 5, i, 5*i).println()
i = 7
System.out.printf("%d * %d = %d", 5, i, 5*i).println()
i = 10
i < 5
i > 5
i <= 5
i <= 10
i >= 10
System.out.println("i is less than 5");
i
if (i<5)
System.out.println("i is less than 5");
i
i = 4
if (i<5)
System.out.println("i is less than 5");
int number1 = 5;
int number2 = 7;
if (number2>number1)
System.out.println("number2 is greater than number1");
number2 = 3
if (number2>number1)
System.out.println("number2 is greater than number1");
int a = 1;
int b = 2;
int c = 3;
int d = 1;
if(a+b > c +d)
System.out.println("a+b is greater than c+d");
a = 6
if(a+b > c +d)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 14/203
9/17/2018 in28Minutes | (0/25)
if(i==5)
System.out.println("i is odd");
System.out.println("i is prime");
if(i==5) {
System.out.println("i is odd");
System.out.println("i is prime");
}
if(i==5) {
System.out.println("i is prime");
}
System.out.printf("%d * %d = %d", 5, i, 5*i).println()
System.out.printf("%d * %d = %d", 5, i, 5*i).println()
i = i + 1
System.out.printf("%d * %d = %d", 5, i, 5*i).println()
i = i + 1
System.out.printf("%d * %d = %d", 5, i, 5*i).println()
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", 5, i, 5*i).println();
}
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", 6, i, 6*i).println();
}
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", 7, i, 7*i).println();
}
int table = 7;
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", table, i,
table*i).println();
}
table = 8
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", table, i,
table*i).println();
}
table = 8
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 16/203
9/17/2018 in28Minutes | (0/25)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 18/203
9/17/2018 in28Minutes | (0/25)
Introduction To Methods -
Multiplication Table
Steps
Step 00 - Section 02 - Methods - An Introduction
Step 01 - Your First Java Method - Hello World Twice and Exercise Statements
Step 02 - Introduction to Java Methods - Exercises and Puzzles
Step 03 - Programming Tip - Editing Methods with JShell
Step 04 - Introduction to Java Methods - Arguments and Parameters
Step 05 - Introduction to Java Method Arguments - Exercises
Step 06 - Introduction to Java Method Arguments - Puzzles and Tips
Step 07 - Getting back to Multiplication Table - Creating a method
Step 08 - Print Multiplication Table with a Parameter and Method Overloading
Step 09 - Passing Multiple Parameters to a Java Method
Step 10 - Returning from a Java Method - An Introduction
Step 11 - Returning from a Java Method - Exercises
Step 99 - Methods - Section Review
Exercises
Methods - Basics
Write and execute a method named sayHelloWorldThrice to print Hello
World thrice.
Write and execute a method that prints the following four statements:
I've created my first variable
I've created my first loop
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 19/203
9/17/2018 in28Minutes | (0/25)
I've created my first method
I'm excited to learn Java
Method Parameters
1. Write a method printNumbers(int n) that prints all successive integers
from 1 to n .
2. Write a method printSquaresOfNumbers(int n) that prints the squares
of all successive integers from 1 to n .
Code Snippets
3 * 4
$2
$2 * 3
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", table, i,
table*i).println();
}
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", table, i,
table*i).println();
}
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", table, i,
table*i).println();
}
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", table, i,
table*i).println();
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 20/203
9/17/2018 in28Minutes | (0/25)
}
int table = 7;
for( i =1; i<=10; i++) {
System.out.printf("%d * %d = %d", table, i,
table*i).println(); }
table = 8
for( i =1; i<=10; i++) {
} sayHelloWorldTwice()
void printLearningExperience() {
System.out.println("I've created sdf first variable");
System.out.println("I've created fsadjf first method");
System.out.println("I've created fsajdfl first loop");
System.out.println("I'm excited fasdflkjfskfsd learn
Java");
}
printLearningExperience()
sayHelloWorld(4)
{
System.out.printf("%d * %d = %d", 5, i, 5 *
i).println();
}
void printMultiplicationTable() {
for(int i=1;i<=10;i++) {
System.out.printf("%d * %d = %d", 5, i, 5 *
i).println();
}
}
printMultiplicationTable()
printMultiplicationTable(6)
printMultiplicationTable(7)
printMultiplicationTable()
printMultiplicationTable(6)
Math.max(1,2)
void sum(int firstNumber,int secondNumber) {
int sum = firstNumber +
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 23/203
9/17/2018 in28Minutes | (0/25)
secondNumber;
System.out.println(sum);
}
sum(5, 10) void sum(int firstNumber,int secondNumber, int
thirdNumber) {
int sum = firstNumber + secondNumber + thirdNumber;
System.out.println(sum); }
sum(5, 10, 15) Math.max(4,5)
$110 int max = Math.max(15, 25);
max
sum(1, 10)
int sumOfTwoNumbers(int firstNumber, int secondNumber) {
int sum = firstNumber + secondNumber;
return sum;
}
sumOfTwoNumbers(1,1)
int sum = sumOfThreeNumbers(2,3,4);
calculateThirdAngle(20, 50)
int sumOfThreeNumbers(int firstNumber, int secondNumber,
int thirdNumber) {
int sum = firstNumber + secondNumber + thirdNumber;
return sum;
}
sumOfThreeNumbers(1,2,3)
sumOfThreeNumbers(15,2,3)
int calculateThirdAngle(int angle1, int angle2) {
int angle3 = 180 - (angle1 + angle2);
return angle3;
}
calculateThirdAngle(20, 20)
calculateThirdAngle(20, 20)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 24/203
9/17/2018 in28Minutes | (0/25)
Steps
Step 00 - Section 03 - Overview Of Java Platform - Section Overview
Step 01 - Overview Of Java Platform - An Introduction - java, javac, bytecode and
JVM
Step 02 - Java Class and Object - First Look
Step 03 - Create a method in a Java class
Step 04 - Create and Compile Planet.java class
Step 05 - Run Planet calss with Java - Using a main method
Step 06 - Play and Learn with Planet Class
Step 07 - JDK vs JRE vs JVM
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 25/203
9/17/2018 in28Minutes | (0/25)
{
...> }
| created class Planet
jshell>
jshell> /methods
| void | void printMultiplicationTable()
| void printMultiplicationTable(int)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 26/203
9/17/2018 in28Minutes | (0/25)
jshell>
jshell> Planet.revolve()
| Error:
| non-static method revolve() cannot be referenced from a
static context
| Planet.revolve()
| ^------------^
jshell> earth.revolve()
Revolve
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 27/203
9/17/2018 in28Minutes | (0/25)
jshell> venus.revolve()
Revolve
}
...> }
| replaced class Country
| update replaced variable country, reset to null
| update replaced variable india, reset to null
| update replaced variable usa, reset to null
jshell> india.comingSoon()
Coming Soon
jshell> netherlands.comingSoon()
Coming Soon
27 : class Country {
void comingSoon() {
System.out.println("Coming Soon");
}
}
jshell> /list
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 28/203
9/17/2018 in28Minutes | (0/25)
Planet
22 : class Planet
{
void revolve() {
System.out.println("Revolve");
}
}
jshell>
/03-IntroductionToJavaPlatform/Planet.java
class Planet {
void revolve() {
System.out.println("Revolve");
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 29/203
9/17/2018 in28Minutes | (0/25)
Introduction To Eclipse-First
Java Project
Steps
Step 00 - Intro to Section and Installing Eclipse
Step 01 - Creating a New Java Project with Eclipse
Step 02 - Your first Java class with Eclipse
Step 03 - Writing Multiplication Table Java Program with Eclipse
Step 04 - Adding more methods for Multiplication Table Program
Step 05 - Programming Tip 1 : Refactoring with Eclipse
Step 06 - Programming Tip 2 : Debugging with Eclipse
Step 07 - Programming Tip 3 : Eclipse vs JShell - How to choose?
Code Examples
/04-IntroductionToEclipse-
FirstJavaProject/src/com/in28minutes/firstjavaproject/Hello
World.java
package com.in28minutes.firstjavaproject;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 30/203
9/17/2018 in28Minutes | (0/25)
/04-IntroductionToEclipse-
FirstJavaProject/src/com/in28minutes/firstjavaproject/Keybo
ardShortcuts.java
package com.in28minutes.firstjavaproject;
/04-IntroductionToEclipse-
FirstJavaProject/src/com/in28minutes/firstjavaproject/Multip
licationTable.java
package com.in28minutes.firstjavaproject;
void print() {
print(5);
}
/04-IntroductionToEclipse-
FirstJavaProject/src/com/in28minutes/firstjavaproject/Multip
licationTableRunner.java
package com.in28minutes.firstjavaproject;
public class MultiplicationTableRunner {
//table.print(6);
//table.print(6, 11, 20);
}
/04-IntroductionToEclipse-
FirstJavaProject/src/com/in28minutes/firstjavaproject/Mutlip
licationTableBeforeRefactoring.java
package com.in28minutes.firstjavaproject;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 32/203
9/17/2018 in28Minutes | (0/25)
{
for (int i = 1; i <= 10; i++) {
System.out.printf("%d X %d = %d",
table, i, table * i).println();
}
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 33/203
9/17/2018 in28Minutes | (0/25)
Steps
Step 00 - Introduction to Object Oriented Programming - Section Overview
Step 01 - Introduction to Object Oriented Programming - Basics
Step 02 - Introduction to Object Oriented Programming - Terminology - Class,
Object, State and Behavior
Step 03 - Introduction to Object Oriented Programming - Exercise - Online
Shopping System and Person
Step 04 - Create Motor Bike Java Class and a couple of objects
Step 05 - Exercise Solutions - Book class and Three instances
Step 06 - Introducing State of an object with speed variable
Step 07 - Understanding basics of Encapsulation with Setter methods
Step 08 - Exercises and Tips - Getters and Generating Getters and Setters with
Eclipse
Step 09 - Puzzles on this and initialization of member variables
Step 10 - First Advantage of Encapsulation
Step 11 - Introduction to Encapsulation - Level 2
Step 12 - Encapsulation Exercises - Better Validation and Book class
Step 13 - Introdcution to Abstraction
Step 14 - Introduction to Java Constructors
Step 15 - Introduction to Java Constructors - Exercises and Puzzles
Step 16 - Introduction to Object Oriented Programming - Conclusion
Exercises
In each of the following systems, identify the basic entities involved, and organize
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 34/203
9/17/2018 in28Minutes | (0/25)
them using object oriented terminology:
Online Shopping System
Person
Provide Better Encapsulation and Validation for Book and MotorBike class
Create a constructor for Book class and create three instances
Code Examples
/05-
IntroductionToObjectOrientedProgramming/src/com/in28mi
nutes/oops/Book.java
package com.in28minutes.oops;
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 35/203
9/17/2018 in28Minutes | (0/25)
/05-
IntroductionToObjectOrientedProgramming/src/com/in28mi
nutes/oops/BookRunner.java
package com.in28minutes.oops;
public class BookRunner {
artOfComputerProgramming.setNoOfCopies(100);
effectiveJava.setNoOfCopies(50);
cleanCode.setNoOfCopies(45);
}
/05-
IntroductionToObjectOrientedProgramming/src/com/in28mi
nutes/oops/MotorBike.java
package com.in28minutes.oops;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 36/203
9/17/2018 in28Minutes | (0/25)
//constructors
MotorBike() {
this(5);
}
MotorBike(int speed) {
this.speed = speed;
}
//behavior
public int getSpeed() {
return speed;
}
void start() {
System.out.println("Bike Started");
}
}
/05-
IntroductionToObjectOrientedProgramming/src/com/in28mi
nutes/oops/MotorBikeRunner.java
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 37/203
9/17/2018 in28Minutes | (0/25)
package com.in28minutes.oops;
System.out.println(ducati.getSpeed());
System.out.println(honda.getSpeed());
System.out.println(somethingElse.getSpeed());
ducati.start();
honda.start();
//ducati.setSpeed(100);
ducati.increaseSpeed(100);
honda.increaseSpeed(100);
ducati.decreaseSpeed(250);
honda.decreaseSpeed(250);
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 38/203
9/17/2018 in28Minutes | (0/25)
System.out.println(ducati.getSpeed());
System.out.println(honda.getSpeed());
}
}
/05-
IntroductionToObjectOrientedProgramming/entireoutput-
constructor-puzzles.txt
jshell>
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 40/203
9/17/2018 in28Minutes | (0/25)
Steps
Step 00 - Primitive Data Types in Depth - Section Overview
Step 01 - Basics about Java Integer Data Types - Casting, Operators and More
Step 02 - Java Integer Data Types - Puzzles - Octal, Hexadecimal, Post and Pre
increment
Step 03 - Java Integer Data Types - Exercises - BiNumber - add, multiply and
double
Step 04 - Java Floating Point Data Types - Casting , Conversion and Accuracy
Step 05 - Introduction to BigDecimal Java Class
Step 06 - BigDecimal Puzzles - Adding Integers
Step 07 - BigDecimal Exercises - Simple Interest Calculation
Step 08 - Java Boolean Data Type - Relational and Logical Operators
Step 09 - Java Boolean Data Type - Puzzles - Short Circuit Operators
Step 10 - Java Character Data Type char - Representation and Conversion
Step 11 - Java char Data Type - Exercises 1 - isVowel
Step 12 - Java char Data Type - Exercises 2 - isDigit
Step 13 - Java char Data Type - Exercises 3 - isConsonant, List Upper Case and
Lower Case Characters
Step 14 - Primitive Data Types in Depth - Conclusion
Exercises
Big Decimal
Calculate formula for Simple Interest Formula
Total Amount = principal + principal * interest * noOfYears;
SimpleInterestCalculator calculator
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 41/203
9/17/2018 in28Minutes | (0/25)
=
new SimpleInterestCalculator("4500.00", "7.5");
BigDecimal totalValue =
calculator.calculateTotalValue(5);// 5 years
System.out.println(totalSum);
char data type
Implement MyChar class
Code Examples
/06-PrimitiveDataTypesAndAlternatives/commands.txt
Byte.SIZE
Byte.BYTES
Byte.MAX_VALUE
Byte.MIN_VALUE
Short.BYTES
Integer.BYTES
Long.BYTES
Integer.MAX_VALUE
Short.MAX_VALUE
Byte.SIZE
Byte.MIN_VALUE
Byte.MAX_VALUE
Short.BYTES
Integer.BYTES
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 42/203
9/17/2018 in28Minutes | (0/25)
Long.BYTES
Integer.MAX_VALUE
byte c = 13;
long l = 50000000000l; i = (int) l
l = i
int eight = 010;
int sixteen = 0x10;
int fifteen = 0XF; int big = 0XBBAACC; Short.MAX_VALUE
short s = (short) i;
int i1 = s;
i
i
i
i
34.5
34.56789
double dbl = 34.5678;
float f2 = (float)dbl;
dbl++
dbl--
dbl % 5
float f = i;
34.56789876 + 34.2234
number1.add(number2);
number1
BigDecimal number3 = number1.add(number2);
number1
BigDecimal number1 = new BigDecimal("34.56789876");
BigDecimal number10 = new BigDecimal(34.2234);
BigDecimal number11 = new BigDecimal("34.56789876");
number10.add(number11)
number10.multiply(number11)
number.add(number2)
number.add(new BigDecimal(i))
number.multiply(new BigDecimal(i)) number.divide(new
BigDecimal(100))
number.divide(new BigDecimal("100.01234"))
number.divide(new BigDecimal("100.012"))
number.divide(new BigDecimal("100.12")) number.divide(new
BigDecimal("100.1")) number.divide(new BigDecimal("1001"))
number.divide(new BigDecimal("100"))
boolean isValue = false;
i > 7
i >= 7
i < 7
i <= 7
i == 6
i == 7
i == 8
i = 8
i = 7
i == 7
i > 15
i >= 15
i <= 25
i >= 15 && i <= 25
i = 30
i >= 15 && i <= 25
i = 5
i >= 15 && i <= 25
true && true
true && false
false && true
false && false
false || true
false || true
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 44/203
9/17/2018 in28Minutes | (0/25)
true || false
true || true
false || false
false ^ false false ^ true
true ^ false
true ^ true !true
!false int x = 6;
!(x>7)
!(x>7)
true || ++i==11
i
int i = 10;
int j = 15;
j > 15 && i++ > 5
j
i
j > 15 & i++ > 5
j
i
i++;
i++;
char ch2 = '\u0022';
char ch3 = '\u00A2';
ch++
ch
++ch
++ch
ch + 5
ch
(int)ch
ch
System.out.println(ch);
char ch = '\t';
System.out.println(ch);
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 45/203
9/17/2018 in28Minutes | (0/25)
System.out.println(ch);
(int)'1'
(int)'0' (int)'9'
(int)'2'
(int)'a' (int)'z'
(int)'A' (int)'Z'
for (char ch = 'A'; ch <= 'Z'; ch++) {
System.out.println(ch);
}
for (char ch = 'A'; ch <= 'Z'; ch++) {
System.out.println(ch);
}
for (char ch = 'A'; ch <= 'C'; ch++) {
System.out.println(ch);
}
/06-
PrimitiveDataTypesAndAlternatives/src/com/in28minutes/pri
mitive/datatypes/BiNumber.java
package com.in28minutes.primitive.datatypes;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 46/203
9/17/2018 in28Minutes | (0/25)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 47/203
9/17/2018 in28Minutes | (0/25)
public int getNumber2() {
return number2;
}
{
this.number1 = number1;
this.number2 = number2;
}
/06-
PrimitiveDataTypesAndAlternatives/src/com/in28minutes/pri
mitive/datatypes/BiNumberRunner.java
package com.in28minutes.primitive.datatypes;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 48/203
9/17/2018 in28Minutes | (0/25)
{
BiNumber numbers = new BiNumber(2, 3);
System.out.println(numbers.add());//2+3
System.out.println(numbers.multiply());//2*3
System.out.println(numbers.getNumber1());//4
System.out.println(numbers.getNumber2());//6
}
/06-
PrimitiveDataTypesAndAlternatives/src/com/in28minutes/pri
mitive/datatypes/MyChar.java
package com.in28minutes.primitive.datatypes;
{
this.ch = ch;
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 49/203
9/17/2018 in28Minutes | (0/25)
U
if(ch == 'a' || ch == 'A')
return
true;
if(ch == 'e' || ch ==
'E')
return true;
return false;
}
return false;
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 50/203
9/17/2018 in28Minutes | (0/25)
'z'
return true;
'Z'
return true;
return false;
}
return false;
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 51/203
9/17/2018 in28Minutes | (0/25)
/06-
PrimitiveDataTypesAndAlternatives/src/com/in28minutes/pri
mitive/datatypes/MyCharRunner.java
package com.in28minutes.primitive.datatypes;
public class MyCharRunner {
System.out.println(myChar.isVowel());
System.out.println(myChar.isConsonant());
MyChar.printLowerCaseAlphabets();
MyChar.printUpperCaseAlphabets();
}
/06-
PrimitiveDataTypesAndAlternatives/src/com/in28minutes/pri
mitive/datatypes/SimpleInterestCalculator.java
package com.in28minutes.primitive.datatypes;
import java.math.BigDecimal;
BigDecimal principal;
BigDecimal interest;
/06-
PrimitiveDataTypesAndAlternatives/src/com/in28minutes/pri
mitive/datatypes/SimpleInterestCalculatorRunner.java
package com.in28minutes.primitive.datatypes;
import java.math.BigDecimal;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 53/203
9/17/2018 in28Minutes | (0/25)
SimpleInterestCalculator calculator =
new
SimpleInterestCalculator("4500.00",
"7.5");
BigDecimal totalValue =
calculator.calculateTotalValue(5);// 5 years
//6187.50000
System.out.println(totalValue);
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 54/203
9/17/2018 in28Minutes | (0/25)
Steps
Step 00 - Conditionals with Java - Section Overview
Step 01 - Introduction to If Else Statement
Step 02 - Introduction to Nested If Else
Step 03 - If Else Statement - Puzzles
Step 04 - If Else Problem - How to get User Input in Java?
Step 05 - If Else Problem - How to get number 2 and choice from user?
Step 06 - If Else Problem - Implementing with Nested If Else
Step 07 - Java Switch Statement - An introduction
Step 08 - Java Switch Statement - Puzzles - Default, Break and Fall Through
Step 09 - Java Switch Statement - Exercises - isWeekDay, nameOfMonth,
nameOfDay
Step 10 - Java Ternary Operation - An Introduction
Step 11 - Conditionals with Java - Conclusion
Exercises
If and Nested If Else - Design a Menu
Ask User for input
Enter two numbers
Choose an Operation
add
multiply
divide
subtract
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 55/203
9/17/2018 in28Minutes | (0/25)
...
Publish Result
Enter Number1:
2
Enter Number2:
1 - Add
2 - Subtract
3 - Divide
4 - Multiply
Choose Operation: 4
Result is - 8
Switch
public static boolean isWeekDay(int dayNumber) {
input - number of day 0 (Sunday) to 6(Saturday)
return if the day is a Week Day.
Code Examples
/07-Conditionals/commands.txt
if(true)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 56/203
9/17/2018 in28Minutes | (0/25)
{
System.out.println("True");
}
if(false) {
System.out.println("True");
}
if(i==3) {
System.out.println("True");
}
if(i<2) {
System.out.println("True");
}
if(i<=3 || i>=35) {
System.out.println("True");
}
if(i<=3 && i>=35) {
System.out.println("True");
}
if (i==3) {
System.out.println("True");
} else {
System.out.println("i is not 3");
}
i = 5
if (i==3) {
System.out.println("True");
} else {
System.out.println("i is not 3");
}
if(i==1) {
System.out.println("i");
}
switch (i) {
case 1 :
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 57/203
9/17/2018 in28Minutes | (0/25)
System.out.println("1");
case 5 : System.out.println("5");
default : System.out.println("default");
}
i = 1 switch (i)
{
case 1 : System.out.println("1");
case 5 : System.out.println("5");
default : System.out.println("default");
} switch (i)
{
case 1 : System.out.println("1"); break;
case 5 : System.out.println("5"); break;
default : System.out.println("default"); break;
}
boolean isEven;
int i =5;
if(i%2==0) {
isEven = true;
} else {
isEven = false;
}
isEven
i = 6
if(i%2==0) {
isEven = false;
}
if(i%2==0) {
isEven = true;
} else {
isEven = false;
}
isEven
isEven = ( i%2==0 ? true : false )
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 58/203
9/17/2018 in28Minutes | (0/25)
i = 6
isEven = ( i%2==0 ? true : false )
i = 7
isEven = ( i%2==0 ? true : false )
i = 6
String even = ( i%2 ==0 ? "YES" : "NO" );
/07-
Conditionals/src/com/in28minutes/ifstatement/examples/IfS
tatementRunner.java
package com.in28minutes.ifstatement.examples;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 59/203
9/17/2018 in28Minutes | (0/25)
15;
if (l < 20)
System.out.println("l<20");//
if (l > 20)
System.out.println("l>20");
else
System.out.println("Who am I?");//
{
int m =
15;
if(m>20)
if(m<20)
System.out.println("m>20");
else
System.out.println("Who am I?");
}
{
int i = 24;
// i is 25
// i is 24
// i is neither 25 or 24
if (i == 25) {
System.out.println("i = 25");
} else if (i == 24) {
System.out.println("i = 24");
} else if (i == 23) {
System.out.println("i = 23");
} else {
System.out.println("i != 24 and i
/07-
Conditionals/src/com/in28minutes/ifstatement/examples/M
enuRunner.java
package com.in28minutes.ifstatement.examples;
import java.util.Scanner;
System.out.print("Enter Number2:
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 61/203
9/17/2018 in28Minutes | (0/25)
");
int number2 = scanner.nextInt();
number1);
System.out.println("Number2 " +
number2);
System.out.println("Choice " +
choice);
performOperationUsingSwitch(number1,
number2, choice);
}
{
System.out.println("Result " +
(number1 / number2));
} else if (choice == 4) {
System.out.println("Result " +
(number1 * number2));
} else {
System.out.println("Invalid
Operation");
}
}
break;
case
2:
System.out.println("Result " +
(number1 - number2));
break;
case 3:
System.out.println("Result " +
(number1 / number2));
break;
case 4:
System.out.println("Result " +
(number1 * number2));
break;
default:
System.out.println("Invalid
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 63/203
9/17/2018 in28Minutes | (0/25)
Operation");
break;
}
/07-
Conditionals/src/com/in28minutes/ifstatement/examples/S
witchExercisesRunner.java
package com.in28minutes.ifstatement.examples;
{
//case 0 :
//case 6 : return false;
case 1 :
case 2 :
case 3 :
case 4 :
case 5 : return true;
}
return false;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 64/203
9/17/2018 in28Minutes | (0/25)
return "Invalid_day";
}
}
/07-
Conditionals/src/com/in28minutes/ifstatement/examples/S
witchStatementRunner.java
package com.in28minutes.ifstatement.examples;
3:
System.out.println("Number is 2 or
3");
break;
default:
System.out.println("Default");
break;
}
}
{
int number = 10;
switch (number) {
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
default:
System.out.println("Default");
break;
}
}
break;
case 1:
System.out.println(1);
break;
case
2:
System.out.println(2);
break;
case
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 67/203
9/17/2018 in28Minutes | (0/25)
3:
System.out.println(3);
break;
}
}
}*/
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 68/203
9/17/2018 in28Minutes | (0/25)
Loops
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 69/203
9/17/2018 in28Minutes | (0/25)
Steps
Step 00 - Java Loops - Section Introduction
Step 01 - Java For Loop - Syntax and Puzzles
Step 02 - Java For Loop - Exercises Overview and First Exercise Prime Numbers
Step 03 - Java For Loop - Exercise - Sum Upto N Numbers and Sum of Divisors
Step 04 - Java For Loop - Exercise - Print a Number Triangle
Step 05 - While Loop in Java - An Introduction
Step 06 - While Loop - Exericises - Cubes and Squares upto limit
Step 07 - Do While Loop in Java - An Introduction
Step 08 - Do While Loop in Java - An Example - Cube while user enters positive
numbers
Step 09 - Introduction to Break and Continue
Step 10 - Selecting Loop in Java - For vs While vs Do While
Exercises
For Loop
Implement MyNumber class with behavior shown in the example below:
number.printANumberTriangle();
//1
//1 2
//1 2 3
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 70/203
9/17/2018 in28Minutes | (0/25)
//1 2 3 4 //1 2 3 4 5
While
Implement WhileNumberPlayer class with behavior shown in the example below:
player.printSquaresUptoLimit();
//For limit = 30, output would be 1 4 9 16 25
player.printCubesUptoLimit();
//For limit = 30, output would be 1 8 27
Choosing Loops
Thinking Exercise
Enter Number1:
2
Enter Number2:
4
1 - Add
2 - Subtract
3 - Divide
4 - Multiply
5 - Exit
Choose Operation: 4
Result is 8
Choose Operation: 1
Result is
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 71/203
9/17/2018 in28Minutes | (0/25)
6
Choose Operation: 5
Thank You!
Code Examples
/08-Loops/commands.txt
if (i>2)
{
System.out.println("i>2");
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 72/203
9/17/2018 in28Minutes | (0/25)
}
int i = 3; if (i>2) {
System.out.println("i>2"); }
i = 0
while (i <5) {
System.out.println(i);
i++;
}
i
i = 6
while (i < 5) {
System.out.println(i);
i++;
}
i = -2
while (i < 5) {
System.out.println(i);
}
while (i < 5) {
System.out.println(i);
i++;
}
i
while (i < 5) {
System.out.print(i + " ");
i++;
}
i
i = 1
do {
System.out.print(i + "
");
i++;
} while (i<5);
i = 10
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 73/203
9/17/2018 in28Minutes | (0/25)
while (i < 5) {
System.out.print(i + " ");
i++; }
do {
System.out.print(i + " ");
i++;
} while (i<5);
for(i=1;i<=10;i++) {
if(i==5)
break;
System.out.print(i + " ");
}
for(i=1;i<=10;i++) {
if(i%2==0)
break;
System.out.print(i + " ");
}
for(i=1;i<=10;i++) {
if(i%2==0)
continue;
System.out.print(i + " ");
}
for(i=1;i<=10;i++) {
if(i%2!=0)
continue;
System.out.print(i + " ");
}
/08-
Loops/src/com/in28minutes/loops/DoWhileRepeatedQuestio
nRunner.java
package com.in28minutes.loops;
import java.util.Scanner;
public class DoWhileRepeatedQuestionRunner
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 74/203
9/17/2018 in28Minutes | (0/25)
do {
if (number != -1) {
System.out.println("Cube is
" + (number * number * number));
}
System.out.print("Enter a number:
");
number = scanner.nextInt();
} while (number >= 0);
System.out.print("Thank You! Have Fun!");
}
/08-Loops/src/com/in28minutes/loops/MyNumber.java
package com.in28minutes.loops;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 75/203
9/17/2018 in28Minutes | (0/25)
{
// 2 to number-1
// How can check if a number is divisible
by 2?
if (number < 2) {
return false;
}
return true;
}
return sum;
}
int sum =
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 76/203
9/17/2018 in28Minutes | (0/25)
0;
{
sum = sum + i;
}
}
return sum;
}
/08-
Loops/src/com/in28minutes/loops/MyNumberRunner.java
package com.in28minutes.loops;
import com.in28minutes.loops.MyNumber;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 77/203
9/17/2018 in28Minutes | (0/25)
{
MyNumber number = new MyNumber(5);
number.printNumberTriangle();
}
/08-
Loops/src/com/in28minutes/loops/WhileNumberPlayer.java
package com.in28minutes.loops;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 78/203
9/17/2018 in28Minutes | (0/25)
");
i++;
}
System.out.println();
}
/08-
Loops/src/com/in28minutes/loops/WhileNumberPlayerRunn
er.java
package com.in28minutes.loops;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 79/203
9/17/2018 in28Minutes | (0/25)
player.printSquaresUptoLimit();
player.printCubesUptoLimit();
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 80/203
9/17/2018 in28Minutes | (0/25)
Reference Types
Steps
Step 00 - Java Reference Types - Section Introduction
Step 01 - Reference Types - How are they stored in Memory?
Step 02 - Java Reference Types - Puzzles
Step 03 - String class - Introduction and Exercise - Print each word and char on a
new line
Step 04 - String class - Exercise Solution and Some More Important Methods
Step 05 - Understanding String is Immutable and String Concat, Upper Case, Lower
Case, Trim methods
Step 06 - String Concatenation and Join, Replace Methods
Step 07 - Java String Alternatives - StringBuffer and StringBuilder
Step 08 - Java Wrapper Classes - An Introduction - Why and What?
Step 09 - Java Wrapper Classes - Creation - Constructor and valueOf
Step 10 - Java Wrapper Classes - Auto Boxing and a Few Wrapper Constants - SIZE,
BYTES, MAX_VALUE and MIN_VALUE
Step 11 - Java Dates - Introduction to LocalDate, LocalTime and LocalDateTime
Step 12 - Java Dates - Exploring LocalDate - Creation and Methods to play with
Date
Step 13 - Java Dates - Exploring LocalDate - Comparing Dates and Creating Specific
Dates
Step 14 - Java Reference Types - Conclusion
Exercises
String
Take a piece of Text into a String.
Print each character in the text on a seperate line
Print each word in the text on a seperate line
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 81/203
9/17/2018 in28Minutes | (0/25)
Code Examples
/09-ReferenceTypes/commands.txt
class Planet {
}
12.34
"Test".length()
BigDecimal bd = new BigDecimal("1.0");
str.charAt(0)
str.charAt(2) str.charAt(3)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 83/203
9/17/2018 in28Minutes | (0/25)
"".isEmpty()
"true".equals("true")
"value".equals("value")
str.equals("value") str.equals("VAlue")
str.equalsIgnoreCase("VAlue") str.concat("is awesome");
str
String anotherString = str.concat(" is awesome");
str
anotherString
String string2 = anotherString.concat(".");
str
anotherString
string2
str.toUpperCase()
str.toLowerCase()
str2.trim()
String str2 = " in28Minutes is awesome. ";
str2.trim()
1 + 2
"1" + "2"
"1" + 2
"1" + 23
1 + 23
1 + 2 + "3"
"1" + 2 + 3
System.out.println("Value is " + 20)
System.out.println("Value is " + 20 + 20)
System.out.println("Value is " + (20 + 20))
String.join(",", "2", "3", "4")
String.join(",", "A", "B","C")
String.join(",", "A")
String.join(",", "A", "B")
"abcd".replace('a', 'z');
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 84/203
9/17/2018 in28Minutes | (0/25)
"abcd".replace("ab", "xyz");
sb sb
sb.setCharAt(1,'e')
sb
StringBuilder sb = new StringBuilder("test");
Integer integer1 = new Integer("5234");
Integer integer2 = new Integer("5234");
Integer i1 = new Integer(5);
Integer i2 = new Integer(5);
Integer i3 = Integer.valueOf(5);
Integer i4 = Integer.valueOf(5);
i1 == i2
i3 == i4
Integer integer = Integer.valueOf("4567");
int i = integer.intValue();
Float f = Float.valueOf("12.45");
f.floatValue()
f.intValue()
Integer eight = Integer.valueOf(8);
Integer.toBinaryString(eight);
Integer.toHexString(eight);
Integer eightyEight = Integer.valueOf(88);
Integer.toHexString(eightyEight);
seven++
seven
seven == sevenAgain
Integer seven = 7;
Integer sevenAgain = 7;
seven == sevenAgain
Integer.MAX_VALUE
Integer.MIN_VALUE
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 85/203
9/17/2018 in28Minutes | (0/25)
Integer.SIZE
Integer.BYTES
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.*;
today.getYear()
today.getDayOfWeek()
today.getDayOfMonth()
today.getDayOfYear()
today.getMonth()
today.getMonthValue()
today.isLeapYear()
today.lengthOfYear()
today.lengthOfMonth()
today.plusDays(100)
today.plusMonths(100)
today.plusYears(100)
today.minusYears(100)
LocalDate hundredYearsBefore = today.minusYears(100);
today
LocalDateTime now = LocalDateTime.now();
LocalDate today = LocalDate.now();
LocalDate yesterady = LocalDate.of(2018, 01, 31);
LocalDate yesterday = LocalDate.of(2018, 01, 31);
today
yesterday
today.withYear(2016)
today.withDayOfMonth(20)
today.withMonth(3)
today.withDayOfYear(120)
today.isBefore(yesterday)
today.isAfter(yesterday)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 86/203
9/17/2018 in28Minutes | (0/25)
Steps
Step 00 - Introduction to Array and ArrayList - Section Introduction with a
Challenge
Step 01 - Understanding the need and Basics about an Array
Step 02 - Java Arrays - Creating and Accessing Values - Introduction
Step 03 - Java Arrays - Puzzles - Arrays of Objects, Primitive Data Types, toString
and Exceptions
Step 04 - Java Arrays - Compare, Sort and Fill
Step 05 - Java Arrays - Exercise - Create Student Class - Part 1 - Total and Average
Marks
Step 06 - Java Arrays - Exercise - Create Student Class - Part 2 - Maximum and
Minimum Mark
Step 07 - Introduction to Variable Arguments - Need
Step 08 - Introduction to Variable Arguments - Basics
Step 09 - Introduction to Variable Arguments - Enhancing Student Class
Step 10 - Java Arrays - Using Person Objects and String Elements with Exercises
Step 11 - Java String Arrays - Exercise Solutions - Print Day of Week with Most
number of letters and more
Step 12 - Adding and Removing Marks - Problem with Arrays
Step 13 - First Look at ArrayList - An Introduction
Step 14 - First Look at ArrayList - Refactoring Student Class to use ArrayList
Step 15 - First Look at ArrayList - Enhancing Student Class with Add and Remove
Marks
Step 16 - Introduction to Array and ArrayList - Conclusion
Exercises
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 87/203
9/17/2018 in28Minutes | (0/25)
Student Class
student.addNewMark(35);
student.removeMarkAtIndex(5);
String Arrays
Create a string array with days of the week
"Sunday", "Monday", "Tuesday", "Wednesday"
"Thursday", "Friday", "Saturday"
Code Examples
/10-
ArraysAndArrayList/src/com/in28minutes/arrays/StringRunn
er.java
package com.in28minutes.arrays;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 88/203
9/17/2018 in28Minutes | (0/25)
};
String dayWithMostCharacters =
"";
{
if (day.length() >
dayWithMostCharacters.length()) {
dayWithMostCharacters =
day;
}
}
/10-
ArraysAndArrayList/src/com/in28minutes/arrays/Student.java
package com.in28minutes.arrays;
import java.math.BigDecimal;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 89/203
9/17/2018 in28Minutes | (0/25)
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;
ArrayList<Integer>();
{
this.name = name;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 90/203
9/17/2018 in28Minutes | (0/25)
}
return sum;
{
int sum = getTotalSumOfMarks();
int number =
getNumberOfMarks();
BigDecimal(number), 3, RoundingMode.UP);
marks.remove(index);
/10-
ArraysAndArrayList/src/com/in28minutes/arrays/StudentRun
ner.java
package com.in28minutes.arrays;
import java.math.BigDecimal;
100);
number);
int sum =
student.getTotalSumOfMarks();
System.out.println("sum of marks : " +
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 92/203
9/17/2018 in28Minutes | (0/25)
sum);
maximumMark);
int minimumMark =
student.getMinimumMark();
System.out.println("minimum of marks : " +
minimumMark);
BigDecimal average =
student.getAverageMarks();
System.out.println("average : " + average);
System.out.println(student);
student.addNewMark(35);
System.out.println(student);
student.removeMarkAtIndex(1);
System.out.println(student);
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 93/203
9/17/2018 in28Minutes | (0/25)
Steps
Step 00 - Object Oriented Programming - Level 2 - Section Introduction
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 94/203
9/17/2018 in28Minutes | (0/25)
Step 14 - Java Abstract Class - First Example - Creating Recipes with Template
Method
Exercises
Creating a simple class
Book book =
new Book(123, "Object Oriented Programming with Java",
"Ranga");
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 95/203
9/17/2018 in28Minutes | (0/25)
book.addReview(
new Review(10, "Great Book", 5));
book.addReview(
new Review(101, "Awesome", 5);
System.out.println(book);
Inheritance
Person
name,phone,email;
Student
college, class
Employee
title, employer, employeeGrade, salary
toString (print all values including those of Person)
interface Flyable
void fly();
Bird "with wings"
Aeroplane "with fuel"
Flyable flyingObjects = {new Bird(), new Aeroplane()};
Loop and invoke fly method
void bark()
Dog "Bow Bow"
Cat "Meow Meow"
Animal[] animals = {new Cat(), new Dog()};
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 96/203
9/17/2018 in28Minutes | (0/25)
Loop and invoke bark method
Code Examples
/commands.txt
dog.bark()
abstract class AbstractTest {
}
abstract class Algorithm1 extends AbstractAlgorithm {
}
abstract class AbstractAlgorithm {
private int stepCount;
public int getStepCount() {
return stepCount();
}
}
class Implementation implements Interface2 {
public void method2() { }
public void method1() { }
}
abstract class ImplementationAbstract implements Interface2
{
public void method1() { }
}
interface Interface3 {
int test = 5;
}
interface Interface4 {
default void print() {
System.out.println("default");
}
}
class Test implements Interface4 {
}
test.print()
class Test1 implements Interface4 {
public void print() {
System.out.println("override");
}
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 98/203
9/17/2018 in28Minutes | (0/25)
interface Interface1 {
void method1();
}
interface Interface2 {
void method2();
}
/src/com/in28minutes/oops/level2/AbstractRecipe.java
package com.in28minutes.oops.level2;
/src/com/in28minutes/oops/level2/Address.java
package com.in28minutes.oops.level2;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 99/203
9/17/2018 in28Minutes | (0/25)
//creation
public Address(String line1, String city, String
zip) {
super();
this.line1 = line1;
this.city = city;
this.zip = zip;
}
/src/com/in28minutes/oops/level2/Book.java
package com.in28minutes.oops.level2;
import java.util.ArrayList;
/src/com/in28minutes/oops/level2/BookRunner.java
package com.in28minutes.oops.level2;
System.out.println(book);
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 101/203
9/17/2018 in28Minutes | (0/25)
/src/com/in28minutes/oops/level2/Customer.java
package com.in28minutes.oops.level2;
//state
private String name;
private Address homeAddress;
private Address workAddress;
//creating
public Customer(String name, Address homeAddress) {
this.name = name;
this.homeAddress = homeAddress;
}
//operations
public Address getHomeAddress() {
return homeAddress;
}
{
return String.format("name - [%s] home
address - [%s] work address - [%s])"
, name, homeAddress,
workAddress);
/src/com/in28minutes/oops/level2/CustomerRunner.java
package com.in28minutes.oops.level2;
System.out.println(customer);
}
}
/src/com/in28minutes/oops/level2/Fan.java
package com.in28minutes.oops.level2;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 103/203
9/17/2018 in28Minutes | (0/25)
//state
private String make;
private double radius;
private String color;
//creation
public Fan(String make, double radius, String
color) {
this.make = make;
this.radius = radius;
this.color = color;
}
{
return String.format("make - %s, radius -
%f , color - %s , isOn - %b , speed - %d",
make, radius, color, isOn,
speed);
}
/src/com/in28minutes/oops/level2/FanRunner.java
package com.in28minutes.oops.level2;
/src/com/in28minutes/oops/level2/inheritance/AnimalRunne
r.java
package com.in28minutes.oops.level2.inheritance;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 105/203
9/17/2018 in28Minutes | (0/25)
{
System.out.println("Meow Meow");
}
}
/src/com/in28minutes/oops/level2/inheritance/Employee.jav
a
package com.in28minutes.oops.level2.inheritance;
import java.math.BigDecimal;
title;
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 108/203
9/17/2018 public void setSalary(BigDecimal
in28Minutes | (0/25) salary) {
this.salary = salary;
}
/src/com/in28minutes/oops/level2/inheritance/Person.java
package com.in28minutes.oops.level2.inheritance;
public class Person extends Object{
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 109/203
9/17/2018 in28Minutes | (0/25)
/src/com/in28minutes/oops/level2/inheritance/Student.java
package com.in28minutes.oops.level2.inheritance;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 110/203
9/17/2018 in28Minutes | (0/25)
/src/com/in28minutes/oops/level2/inheritance/StudentRunn
er.java
package com.in28minutes.oops.level2.inheritance;
//student.setEmail("in28minutes@gmail.com");
/*
Person person = new Person();
person.setName("Ranga");
person.setEmail("ranga@in28minutes.com");
person.setPhoneNumber("123-456-7890");
String value = person.toString();
System.out.println(value);
System.out.println(person);
*/
"Programmer Analyst");
//employee.setName("Ranga");
employee.setEmail("ranga@in28minutes.com");
employee.setPhoneNumber("123-456-7890");
employee.setEmployeeGrade('A');
employee.setTitle("Programmer Analyst");
System.out.print(employee);
} }
/src/com/in28minutes/oops/level2/inheritance/StudentWith
outInheritance.java
package com.in28minutes.oops.level2.inheritance;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 112/203
9/17/2018 in28Minutes | (0/25)
{
return phoneNumber;
{
this.college = college;
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 113/203
9/17/2018 in28Minutes | (0/25)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 114/203
9/17/2018 } in28Minutes | (0/25)
/src/com/in28minutes/oops/level2/interfaces/ChessGame.jav
a
package com.in28minutes.oops.level2.interfaces;
@Override
public void up()
{
System.out.println("Move piece up");
}
@Override
public void down() {
System.out.println("Move piece down");
}
@Override
public void left() {
System.out.println("Move piece left");
}
@Override
public void right() {
System.out.println("Move piece right");
}
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 115/203
9/17/2018 in28Minutes | (0/25)
/src/com/in28minutes/oops/level2/interfaces/ComplexAlgori
thm.java
package com.in28minutes.oops.level2.interfaces;
/src/com/in28minutes/oops/level2/interfaces/DummyAlgorit
hm.java
package com.in28minutes.oops.level2.interfaces;
@Override
public int complexAlgorithm(int number1, int
number2) {
return number1 + number2;
}
/src/com/in28minutes/oops/level2/interfaces/FlyableRunner.
java
package com.in28minutes.oops.level2.interfaces;
interface Flyable{
void fly();
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 116/203
9/17/2018 in28Minutes | (0/25)
@Override
public void fly() {
System.out.println("with wings");
}
@Override
public void fly() {
System.out.println("with fuel");
}
}
/src/com/in28minutes/oops/level2/interfaces/GameRunner.ja
va
package com.in28minutes.oops.level2.interfaces;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 118/203
9/17/2018 public static void main(String[]
in28Minutes | (0/25) args) {
GamingConsole[] games = {new MarioGame(),
new ChessGame()};
for(GamingConsole game:games) {
game.up();
game.down();
game.left();
game.right();
}
/src/com/in28minutes/oops/level2/interfaces/GamingConsol
e.java
package com.in28minutes.oops.level2.interfaces;
public interface GamingConsole {
public void up();
public void down();
public void left();
public void right();
}
/src/com/in28minutes/oops/level2/interfaces/MarioGame.jav
a
package com.in28minutes.oops.level2.interfaces;
@Override
public void up()
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 119/203
9/17/2018 in28Minutes | (0/25)
{
System.out.println("Jump");
}
@Override
public void down() {
System.out.println("Goes into a hole");
}
@Override
public void left() {
}
@Override
public void right() {
System.out.println("Go Forward");
/src/com/in28minutes/oops/level2/interfaces/Project.java
package com.in28minutes.oops.level2.interfaces;
interface Test {
void
nothing();
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 120/203
9/17/2018 in28Minutes | (0/25)
@Override
public void nothing() {
// TODO Auto-generated method stub
@Override
public void nothing() {
// TODO Auto-generated method
stub
System.out.println(algorithm.complexAlgorithm(10, 20));
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 121/203
9/17/2018 in28Minutes | (0/25)
/src/com/in28minutes/oops/level2/interfaces/RealAlgorithm.
java
package com.in28minutes.oops.level2.interfaces;
@Override
public int complexAlgorithm(int number1, int
number2) {
return number1 * number2;
}
/src/com/in28minutes/oops/level2/RecipeRunner.java
package com.in28minutes.oops.level2;
public class RecipeRunner
RecipeWithMicrowave recipeWithMicrowave =
new RecipeWithMicrowave();
recipeWithMicrowave.execute();
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 122/203
9/17/2018 in28Minutes | (0/25)
/src/com/in28minutes/oops/level2/RecipeWithMicrowave.jav
a
package com.in28minutes.oops.level2;
public class RecipeWithMicrowave extends AbstractRecipe{
@Override
void getReady() {
System.out.println("Get the raw
materials");
System.out.println("Switch on the
microwave");
}
@Override
void doTheDish() {
System.out.println("get stuff ready");
System.out.println("Put it in the
microwave");
}
@Override
void cleanup() {
System.out.println("Cleanup the
utensils");
System.out.println("Switch off the
microwave");
}
}
/src/com/in28minutes/oops/level2/Rectangle.java
package com.in28minutes.oops.level2;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 123/203
9/17/2018 in28Minutes | (0/25)
//state
private int length;
//creation
public Rectangle(int length, int width) {
this.length = length;
this.width = width;
}
//operations
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 124/203
9/17/2018 in28Minutes | (0/25)
/src/com/in28minutes/oops/level2/RectangleRunner.java
package com.in28minutes.oops.level2;
23);
System.out.println(rectangle);
rectangle.setWidth(25);
System.out.println(rectangle);
}
}
/src/com/in28minutes/oops/level2/Review.java
package com.in28minutes.oops.level2;
public class Review {
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 125/203
9/17/2018 in28Minutes | (0/25)
id;
this.description = description;
this.rating = rating;
}
/src/com/in28minutes/oops/level2/Recipe1.java
package com.in28minutes.oops.level2;
@Override
void getReady() {
System.out.println("Get the raw materials");
System.out.println("Get the utensils");
}
@Override
void doTheDish() {
System.out.println("do the dish");
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 126/203
9/17/2018 in28Minutes | (0/25)
@Override
void cleanup() {
System.out.println("Cleanup the utensils");
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 127/203
9/17/2018 in28Minutes | (0/25)
Collections
Steps
Step 01 - Java Collections - Section Overview with Need For Collections
Step 02 - List Interface - Introduction - Position is King
Step 03 - List Inteface - Immutability and Introduction of Implementations -
ArrayList, LinkedList and Vector
Step 04 - List Inteface Implementations - ArrayList vs LinkedList
Step 05 - List Inteface Implementations - ArrayList vs Vector
Step 06 - List Inteface - Methods to add, remove and change elements and lists
Step 07 - List and ArrayList - Iterating around elements
Step 08 - List and ArrayList - Choosing iteration approach for printing and deleting
elements
Step 09 - List and ArrayList - Puzzles - Type Safety and Removing Integers
Step 10 - List and ArrayList - Sorting - Introduction to Collections sort static
method
Step 11 - List and ArrayList - Sorting - Implementing Comparable Inteface in
Student Class
Step 12 - List and ArrayList - Sorting - Providing Flexibility by implementing
Comparator interface
Step 13 - List and ArrayList - A Summary
Step 14 - Set Interface - Introduction - No Duplication
Step 15 - Understanding Data Structures - Array, LinkedList and Hashing
Step 16 - Understanding Data Structures - Tree - Sorted Order
Step 17 - Set Interface - Hands on - HashSet, LinkedHashSet and TreeSet
Step 18 - Set Interface - Exercise - Find Unique Characters in a List
Step 19 - TreeSet - Methods from NavigableSet - floor,lower,upper, subSet, head
and tailSet
Step 20 - Queue Interface - Process Elements in Order
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 128/203
9/17/2018 in28Minutes | (0/25)
Step 21 - Introduction to PriorityQueue - Basic Methods and Customized Priority
Step 22 - Map Interface - An Introduction - Key and Value
Step 23 - Map Interface - Implementations - HashMap, HashTable,
LinkedHashMap and TreeMap
Step 24 - Map Interface - Basic Operations
Step 25 - Map Interface - Comparison - HashMap vs LinkedHashMap vs TreeMap
Step 26 - Map Interface - Exercise - Count occurances of characters and words in a
piece of text
Step 27 - TreeMap - Methods from NavigableMap - floorKey, higherKey, firstEntry,
subMap and more
Step 28 - Java Collections - Conclusion with Three Tips
Exercises
Set Interface
Map Interface
Code Examples
/12-Collections/commands.txt
words.size()
words.isEmpty()
words.get(0)
words.contains("Dog");
words.contains("Cat");
words.indexOf("Cat")
words
words.indexOf("Dog")
words.add("Dog")
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 129/203
9/17/2018 in28Minutes | (0/25)
for(String word:wordsArrayList) {
if(word.endsWith("at")) {
wordsArrayList.remove(word);
}
}
wordsArrayList
for(String word:words) {
if(word.endsWith("at"))
System.out.println(word);
}
for(String word:wordsAl) {
if(word.endsWith("at")) {
words.remove(word);
}
}
for(String word:wordsAl) {
if(word.endsWith("at")) {
wordsAl.remove(word);
}
}
wordsAl
List<String> words = List.of("Apple", "Bat" , "Cat");
List<String> wordsAl = new ArrayList<>(words);
Iterator<String> iterator = wordsAl.iterator();
while(iterator.hasNext()) {
if(iterator.next().endsWith("at")) {
iterator.remove();
}
}
wordsAl
List value = List.of("A", 'A' , 1, 1.0);
value.get(2)
value.get(2) instanceof Integer
value.get(1) instanceof Character
value.get(3) instanceof Double
numbers.indexOf(101);
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 131/203
9/17/2018 in28Minutes | (0/25)
numbersAl.indexOf(101)
numbersAl.remove(101);
numbersAl.remove(101)
numbersAl.remove(Integer.valueOf(101))
numbersAl
List<Integer> numbersAl = new ArrayList<>(numbers);
Collections.sort(numbersAl);
numbersAl
set.add("Apple");
Set<String> hashset = new HashSet<>(set);
hashset.add("Apple")
hashset
Set<String> set = Set.of("A", "Z","D", "C", "B");
hashSet.add("A")
hashSet.add("B")
hashSet
hashSet.add("C")
hashSet
hashSet.add("CA")
hashSet
hashSet.add("CAfsadfa")
hashSet
treeSet.add("Cat")
treeSet.add("Bat")
treeSet.add("Apple")
treeSet
hashSet.add("Cat");
hashSet.add("Bat");
hashSet.add("Apple");
hashSet
hashSet.add("Dog");
hashSet
hashSet.add("Elephant");
hashSet.add(5);
hashSet.add(4);
hashSet.add(3);
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 132/203
9/17/2018 in28Minutes | (0/25)
hashSet.add(2);
hashSet.add(1);
hashSet
Set<Integer> hashSet = new HashSet<>();
hashSet.add(589789);
hashSet.add(58978);
hashSet.add(5897);
hashSet.add(589);
hashSet.add(58);
hashSet.add(5);
hashSet
Set<Integer> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add(589789);
linkedHashSet.add(58978);
linkedHashSet.add(5897);
linkedHashSet.add(589);
linkedHashSet.add(58);
linkedHashSet.add(5);
linkedHashSet
Set<Integer> treeSet = new TreeSet<>();
treeSet.add(584567);
treeSet.add(58456);
treeSet.add(5845);
treeSet.add(584);
treeSet.add(58);
treeSet.add(5);
treeSet
numbers.add(765432);
numbers.add(76543);
numbers.add(7654);
numbers.add(765);
numbers.add(76);
numbers
numbers.add(765432);
numbers.add(76543);
numbers.add(7654);
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 133/203
9/17/2018 in28Minutes | (0/25)
numbers.add(765);
numbers.add(76);
numbers
numbers.add(765789);
numbers
numbers.add(76)
numbers
numbers.add(765432);
numbers.add(76543);
numbers.add(7654);
numbers.add(765);
numbers.add(76);
numbers
numbers.add(76)
List<Character> characters = List.of('A','Z','A', 'B',
'Z','F');
TreeSet<Integer> numbers = new TreeSet<>
(Set.of(65,54,34,12,99));
numbers.floor(40)
numbers.floor(34)
numbers.lower(34)
numbers.ceiling(34)
numbers.ceiling(36)
numbers.higher(34)
numbers
numbers.subSet(20,80)
numbers.subSet(34,54)
numbers.subSet(34,65)
numbers.subSet(34,true,65,true)
numbers.subSet(34,false,65,false)
numbers.headSet(50)
numbers.tailSet(50)
Queue<String> queue = new PriorityQueue<>();
queue.poll()
queue.offer("Apple")
queue.addAll(List.of("Zebra", "Monkey", "Cat"))
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 134/203
9/17/2018 in28Minutes | (0/25)
queue
queue.poll()
queue
queue.poll()
queue.poll()
queue.poll()
queue.poll()
map.put("R",1);
map
map.get("Z")
map.get("A")
map.get("C")
map.size()
map.isEmpty()
map.containsKey("A")
map.containsKey("F")
map.containsValue(3)
map
map.containsValue(4)
map.keySet()
map.values()
map
hashmap.put("F",5)
hashmap
hashmap.put("Z",11)
hashmap
Map<String, Integer> map = Map.of("A",3,"Z",5,"B",10);
Map<String, Integer> linkedHashmap = new LinkedHashMap<>
(map);
HashMap<String, Integer> hashmap = new HashMap<>();
hashmap.put("Z",5)
hashmap.put("A",15)
hashmap.put("F",25)
hashmap.put("L",250)
hashmap
LinkedHashMap<String, Integer> linkedHashMap = new
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 135/203
9/17/2018 in28Minutes | (0/25)
LinkedHashMap<>();
hashmap
linkedHashMap.put("F",25)
linkedHashMap.put("A",15)
linkedHashMap.put("Z",5)
linkedHashMap.put("L",250)
linkedHashMap
treemap.put("F",25)
treemap.put("A",15)
treemap.put("Z",5)
treemap.put("L",250)
treemap
TreeMap<String, Integer> treemap = new TreeMap<>();
treemap.put("F",25)
treemap.put("Z",5)
treemap.put("L",250)
treemap.put("A",15)
treemap.put("B",25)
treemap.put("G",25)
treemap
treemap.higherKey("C")
treemap.lowerKey("C")
treemap.lowerKey("B")
treemap.floorKey("B")
treemap.higherKey("B")
treemap.higherKey("C")
treemap.ceilingKey("B")
treemap.lowerKey("B")
treemap.floorKey("B")
treemap.firstEntry()
treemap.lastEntry()
treemap
treemap.subMap("C", "Y")
treemap.subMap("B", "Z")
treemap.subMap("B",true, "Z",true)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 136/203
9/17/2018 in28Minutes | (0/25)
/12-Collections/src/collections/MapRunner.java
package collections;
import java.util.HashMap;
import java.util.Map;
for(char character:characters) {
//Get the character
Integer integer =
occurances.get(character);
if(integer==null) {
occurances.put(character,
1);
} else {
occurances.put(character,
integer + 1);
}
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 137/203
9/17/2018 in28Minutes | (0/25)
System.out.println(occurances);
for(String word:words) {
//Get the character
Integer integer =
stringOccurances.get(word);
if(integer==null) {
stringOccurances.put(word,
1);
} else {
stringOccurances.put(word,
integer + 1);
}
}
System.out.println(stringOccurances);
/12-Collections/src/collections/QueueRunner.java
package collections;
import java.util.Comparator;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Queue;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 138/203
9/17/2018 in28Minutes | (0/25)
/12-Collections/src/collections/SetRunner.java
package collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 139/203
9/17/2018 in28Minutes | (0/25)
import java.util.TreeSet;
/12-Collections/src/collections/Student.java
package collections;
@Override
public int compareTo(Student that) {
return Integer.compare(that.id, this.id);
}
}
/12-Collections/src/collections/StudentsCollectionRunner.java
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 141/203
9/17/2018 in28Minutes | (0/25)
package collections;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
System.out.println(studentsAl);
Collections.sort(studentsAl);
System.out.println("Desc " + studentsAl);
//Collections.sort(studentsAl, new
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 142/203
9/17/2018 in28Minutes | (0/25)
AscendingStudentComparator());
studentsAl.sort(new
AscendingStudentComparator());
System.out.println("AscendingStudentComparator " +
studentsAl);
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 143/203
9/17/2018 in28Minutes | (0/25)
Generics
Steps
Step 01 - Introduction to Generics - Why do we need Generics?
Step 02 - Implementing Generics for the Custom List
Step 03 - Extending Custom List with a Generic Return Method
Step 04 - Generics Puzzles - Restrictions with extends and Generic Methods
Step 05 - Generics and WildCards - Upper Bound and Lower Bound
Code Examples
/13-
Generics/src/com/in28minutes/generics/GenericsRunner.java
package com.in28minutes.generics;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 144/203
9/17/2018 in28Minutes | (0/25)
System.out.println(
sumOfNumberList(List.of(1,
2, 3, 4, 5)));
System.out.println(sumOfNumberList(
List.of(1.1, 2.1, 3.1, 4.1,
5.1)));
System.out.println(sumOfNumberList(
List.of(1l, 2l, 3l, 4l,
5l)));
ArrayList());
System.out.println(value);
/13-
Generics/src/com/in28minutes/generics/MyCustomList.java
package com.in28minutes.generics;
import java.util.ArrayList;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 146/203
9/17/2018 in28Minutes | (0/25)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 147/203
9/17/2018 in28Minutes | (0/25)
FunctionalProgramming
Steps
Step 01 - Introduction to Functional Programming - Functions are First Class
Citizens
Step 02 - Functional Programming - First Example with Function as Parameter
Step 03 - Functional Programming - Exercise - Loop a List of Numbers
Step 04 - Functional Programming - Filtering - Exercises to print odd and even
numbers from List
Step 05 - Functional Programming - Collect - Sum of Numbers in a List
Step 06 - Functional Programming vs Structural Programming - A Quick
Comparison
Step 07 - Functional Programming Terminology - Lambda Expression, Stream and
Operations on a Stream
Step 08 - Stream Intermediate Operations - Sort, Distinct, Filter and Map
Step 09 - Stream Intermediate Operations - Exercises - Squares of First 10, Map
String List to LowerCase and Length of String
Step 10 - Stream Terminal Operations - 1 - max operation with Comparator
Step 11 - Stream Terminal Operations - 2 - min, collect to List,
Step 12 - Optional class in Java - An Introduction
Step 13 - Behind the Screens with Functional Interfaces - Implement Predicate
Interface
Step 14 - Behind the Screens with Functional Interfaces - Implement Consumer
Interface
Step 15 - Behind the Screens with Functional Interfaces - Implement Function
Inteface for Mapping
Step 16 - Simplify Functional Programming code with Method References - static
and instance methods
Step 17 - Functions are First Class Citizens
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 148/203
9/17/2018 in28Minutes | (0/25)
Step 18 - Introduction to Functional Programming - Conclusion
Exercises
Create a list of numbers
Print each element using forEach
Filter Odd and Even numbers
Code Examples
/14-FunctionalProgramming/commands.txt
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 149/203
9/17/2018 in28Minutes | (0/25)
numbers.stream().distinct().sorted().forEach(e-
>System.out.println(e));
numbers.stream().distinct().map(e -> e * e).forEach(e-
>System.out.println(e));
IntStream.range(1,10).forEach(p->System.out.println(p))
IntStream.range(1,11).forEach(p->System.out.println(p))
IntStream.range(1,11).map(e -> e * e).forEach(p-
>System.out.println(p)) List.of("Apple", "Ant",
"Bat").stream().map(s->s.toLowerCase()).forEach(p ->
System.out.println(p))
List.of("Apple", "Ant", "Bat").stream().map(s-
>s.length()).forEach(p -> System.out.println(p))
IntStream.range(1,11).reduce( 0 , (n1,n2) -> n1+n2)
List.of(23,12,34,53).stream().max((n1,n2) ->
Integer.compare(n1,n2))
$24.isPresent()
List.of(23,12,34,53).stream().max((n1,n2) ->
Integer.compare(n1,n2)).get()
List.of(23,12,34,53).stream().max((n1,n2) ->
Integer.compare(n1,n2)).get()
List.of(23,12,34,53).stream().max((n1,n2) ->
Integer.compare(n1,n2)).get()
List.of(23,12,34,53).stream().min((n1,n2) ->
Integer.compare(n1,n2)).get()
List.of(23,12,34,53).stream().filter(e -> e%2==1).forEach(e
-> System.out.println(e))
List.of(23,12,34,53).stream().filter(e ->
e%2==1).collect(Collectors.toList())
List.of(23,12,34,53).stream().filter(e ->
e%2==0).collect(Collectors.toList())
IntStream.range(1,11).map(e -> e * e)
List.of(23,12,34,53).stream().filter(e ->
e%2==0).collect(Collectors.toList())
IntStream.range(1,10).map(e -> e * e)
IntStream.range(1,10).map(e -> e *
e).boxed().collect(Collectors.toList())
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 150/203
9/17/2018 in28Minutes | (0/25)
IntStream.range(1,11).map(e -> e *
e).boxed().collect(Collectors.toList())
List.of(23,45,67,12).stream().filter(n -> n%2==0).max(
(n1,n2) -> Integer.compare(n1,n2) )
$39.get()
$39.isPresent()
List.of(23,45,67).stream().filter(n -> n%2==0).max( (n1,n2)
-> Integer.compare(n1,n2) )
$42.isPresent()
$42.orElse(0)
$42.orElse(0)
List.of(23,45,67).stream().filter(n -> n%2==0).max( (n1,n2)
-> Integer.compare(n1,n2) ).orElse(0)
List.of(23,45,67,34).stream().filter(n -> n%2==0).max(
(n1,n2) -> Integer.compare(n1,n2) ).orElse(0)
/14-
FunctionalProgramming/src/com/in28minutes/functionalpro
gramming/FPNumberRunner.java
package com.in28minutes.functionalprogramming;
import java.util.List;
them
/*
numbers.stream()
.forEach( element -
>System.out.println(element));*/
System.out.println(sum);
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 152/203
9/17/2018 in28Minutes | (0/25)
/14-
FunctionalProgramming/src/com/in28minutes/functionalpro
gramming/FunctionalProgrammingRunner.java
package com.in28minutes.functionalprogramming;
import java.util.List;
public class FunctionalProgrammingRunner {
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 153/203
9/17/2018 in28Minutes | (0/25)
System.out
.println("element - " +
element));
}
/14-
FunctionalProgramming/src/com/in28minutes/functionalpro
gramming/LambdaBehindTheScreensRunner.java
package com.in28minutes.functionalprogramming;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
@Override
public boolean test(Integer number) {
return number%2 == 0;
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 154/203
9/17/2018 in28Minutes | (0/25)
@Override
public void accept(Integer number) {
System.out.println(number);
}
@Override
public Integer apply(Integer number) {
return number * number;
}
List.of(23,43,34,45,36,48).stream()
.filter(n -> n%2 ==0)
.map(n -> n * n)
.forEach(e -> System.out.println(e));
List.of(23,43,34,45,36,48).stream()
.filter(new EvenNumberPredicate())
.map(new NumberSquareMapper())
.forEach(new SystemOutConsumer());
//.map(n -> n *
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 155/203
9/17/2018 in28Minutes | (0/25)
n)
//<R> Stream<R> map(Function<? super T, ?
extends R> mapper);
// R apply(T t);
//.filter(new EvenNumberPredicate())
//Stream<T> filter(Predicate<? super T>
predicate);
//boolean test(T t);
List.of(23,43,34,45,36,48).stream()
.filter(evenPredicate)
.map(n -> n * n)
.forEach(e ->
System.out.println(e));
}
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 156/203
9/17/2018 in28Minutes | (0/25)
/14-
FunctionalProgramming/src/com/in28minutes/functionalpro
gramming/MethodReferencesRunner.java
package com.in28minutes.functionalprogramming;
import java.util.List;
.stream().map(String::length)
.forEach(MethodReferencesRunner::print);
List.of(23,45,67,34).stream()
.filter(n -> n%2==0)
.max( (n1,n2) ->
Integer.compare(n1,n2) )
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 157/203
9/17/2018 in28Minutes | (0/25)
.orElse(0);
.filter(MethodReferencesRunner::isEven)
.max(Integer::compare)
.orElse(0);
System.out.println(max);
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 158/203
9/17/2018 in28Minutes | (0/25)
Steps
Step 01 - Introduction to Threads and MultiThreading - Need for Threads
Step 02 - Creating a Thread for Task1 - Extending Thread Class
Step 03 - Creating a Thread for Task2 - Implement Runnable Interface
Step 04 - Theory - States of a Thread
Step 05 - Placing Priority Requests for Threads
Step 06 - Communication between Threads - join method
Step 07 - Thread utility methods and synchronized keyword - sleep, yield
Step 08 - Need for Controlling the Execution of Threads
Step 09 - Introduction to Executor Service
Step 10 - Executor Service - Customizing number of Threads
Step 11 - Executor Service - Returning a Future from Thread using Callable
Step 12 - Executor Service - Waiting for completion of multiple tasks using
invokeAll
Step 13 - Executor Service - Wait for only the fastest task using invokeAny
Step 14 - Threads and MultiThreading - Conclusion
Code Examples
/15-ThreadsAndParallelism/src/ExecutorServiceRunner.java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 159/203
9/17/2018 in28Minutes | (0/25)
System.out.print("\nTask" + number +
"Done");
}
}
executorService.execute(new Task(1));
executorService.execute(new Task(2));
executorService.execute(new Task(3));
executorService.execute(new Task(4));
executorService.execute(new Task(5));
executorService.execute(new Task(6));
executorService.execute(new
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 160/203
9/17/2018 in28Minutes | (0/25)
Task(7));
executorService.shutdown();
}
}
/15-
ThreadsAndParallelism/src/MultipleAnyCallableRunner.java
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
String result =
executorService.invokeAny(tasks);
System.out.println(result);
executorService.shutdown();
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 161/203
9/17/2018 in28Minutes | (0/25)
/15-ThreadsAndParallelism/src/MultipleCallableRunner.java
List<Future<String>> results =
executorService.invokeAll(tasks);
for(Future<String> result:results) {
System.out.println(result.get());
}
executorService.shutdown();
}
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 162/203
9/17/2018 in28Minutes | (0/25)
/15-ThreadsAndParallelism/src/ThreadBasicsRunner.java
System.out.print("\nTask1 Done");
}
}
@Override
public void run() {
System.out.print("\nTask2 Started");
System.out.print("\nTask2 Done");
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 163/203
9/17/2018 in28Minutes | (0/25)
//• NEW;
//• RUNNABLE;
//• RUNNING;
//• BLOCKED/WAITING;
//• TERMINATED/DEAD;
task1.join();
task2Thread.join();
//Task3
for(int i=301;i<=399; i++)
System.out.print(i + "
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 164/203
9/17/2018 in28Minutes | (0/25)
");
System.out.print("\nTask3 Done");
System.out.print("\nMain Done");
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 165/203
9/17/2018 in28Minutes | (0/25)
Exception Handling
Steps
Step 01 - Introduction to Exception Handling - Your Thought Process during
Exception Handling
Step 02 - Basics of Exceptions - NullPointerException and StackTrace
Step 03 - Basics of Handling Exceptions - try and catch
Step 04 - Basics of Handling Exceptions - Exception Hierarchy, Matching and
Catching Multiple Exceptions
Step 05 - Basics of Handling Exceptions - Need for finally
Step 06 - Basics of Handling Exceptions - Puzzles
Step 07 - Checked Exceptions vs Unchecked Exceptions - An Example
Step 08 - Hierarchy of Errors and Exceptions - Checked and Runtime
Step 09 - Throwing an Exception - Currencies Do Not Match Runtime Exception
Step 10 - Throwing a Checked Exception - Throws in method signature and
handling
Step 11 - Throwing a Custom Exception - CurrenciesDoNotMatchException
Step 12 - Write less code with Try with Resources - New Feature in Java 7
Step 13 - Basics of Handling Exceptions - Puzzles 2
Step 14 - Exception Handling - Conclusion with Best Practices
Code Examples
/16-
ExceptionHandling/src/com/in28minutes/exceptionhandling/
CheckedExceptionRunner.java
package com.in28minutes.exceptionhandling;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 166/203
9/17/2018 in28Minutes | (0/25)
{
e.printStackTrace();
}*/
//someOtherMethod1();
someOtherMethod2();
/16-
ExceptionHandling/src/com/in28minutes/exceptionhandling/
ExceptionHandlingRunner.java
package com.in28minutes.exceptionhandling;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 167/203
9/17/2018 in28Minutes | (0/25)
{
method1();
System.out.println("Main Ended");
}
{
method2();
System.out.println("Method1 Ended");
}
/16-
ExceptionHandling/src/com/in28minutes/exceptionhandling/
ExceptionHandlingRunner2.java
package com.in28minutes.exceptionhandling;
{
try
{
//String str = null;
//str.length();
int[] i = {1,2};
int number = i[3];
System.out.println("Method2
Ended");
} catch (NullPointerException ex) {
System.out.println("Matched
NullPointerException");
ex.printStackTrace();
} catch (ArrayIndexOutOfBoundsException ex)
{
System.out.println("Matched
ArrayIndexOutOfBoundsException");
ex.printStackTrace();
} catch (Exception ex) {
System.out.println("Matched
Exception");
ex.printStackTrace();
}
}
}
/16-
ExceptionHandling/src/com/in28minutes/exceptionhandling/
FinallyRunner.java
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 169/203
9/17/2018 in28Minutes | (0/25)
package com.in28minutes.exceptionhandling;
import java.util.Scanner;
try {
scanner = new Scanner(System.in);
int[] numbers = { 12, 3, 4, 5 };
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("Before Scanner
Close");
if(scanner!=null) {
scanner.close();
}
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 170/203
9/17/2018 in28Minutes | (0/25)
/16-
ExceptionHandling/src/com/in28minutes/exceptionhandling/
ThrowingExceptionRunner.java
package com.in28minutes.exceptionhandling;
class Amount {
if(!this.currency.equals(that.currency)) {
//throw new Exception("Currencies
Don't Match " + this.currency + " & " +that.currency );
throw new
CurrenciesDoNotMatchException("Currencies Don't Match " +
this.currency + " & " +that.currency );
}
}
}
10);
Amount amount2 = new Amount("EUR", 20);
amount1.add(amount2);
System.out.println(amount1);
}
/16-
ExceptionHandling/src/com/in28minutes/exceptionhandling/
TryWithResourcesRunner.java
package com.in28minutes.exceptionhandling;
import java.util.Scanner;
Scanner(System.in)) {
int[] numbers = { 12, 3, 4, 5 };
int number = numbers[21];
}
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 173/203
9/17/2018 in28Minutes | (0/25)
Files
Steps
Step 01 - List files and folders in Directory with Files list method
Step 02 - Recursively List and Filter all files and folders in Directory with Step Files
walk method and Search with find method
Step 03 - Read content from a File - Files readAllLines and lines methods
Step 04 - Writing Content to a File - Files write method
Step 05 - Files - Conclusion
Code Examples
/17-Files/src/files/DirectoryScanRunner.java
package files;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.function.BiPredicate;
import java.util.function.Predicate;
Path currentDirectory =
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 174/203
9/17/2018 in28Minutes | (0/25)
Paths.get(".");
//Files.list(currentDirectory).forEach(System.out::println)
;
//Files.walk(currentDirectory,
4).filter(predicate).forEach(System.out::println);
BiPredicate<Path, BasicFileAttributes>
javaMatcher
= (path,attributes) ->
String.valueOf(path).contains(".java");
BiPredicate<Path, BasicFileAttributes>
directoryMatcher
= (path,attributes) ->
attributes.isDirectory();
Files.find(currentDirectory, 4,
directoryMatcher )
.forEach(System.out::println);
/17-Files/src/files/FileReadRunner.java
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 175/203
9/17/2018 in28Minutes | (0/25)
package files;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class FileReadRunner {
//List<String> lines =
Files.readAllLines(pathFileToRead);
//System.out.println(lines);
Files.lines(pathFileToRead)
.map(String::toLowerCase)
.filter(str -> str.contains("a"))
.forEach(System.out::println);
/17-Files/src/files/FileWriteRunner.java
package files;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 176/203
9/17/2018 in28Minutes | (0/25)
import java.util.List;
List<String> list =
List.of("Apple",
"Boy", "Cat", "Dog", "Elephant");
Files.write(pathFileToWrite, list);
/17-Files/resources/data.txt
123,122
jljlfsadf
Apple
Bat
Cat
/17-Files/resources/file-write.txt
Apple
Boy
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 177/203
9/17/2018 in28Minutes | (0/25)
Cat Dog
Elephant
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 178/203
9/17/2018 in28Minutes | (0/25)
Steps
Step 01 - Getting started with Synchronized
Step 02 - Problem with Synchronized - Less Concurrency
Step 03 - Enter Locks with ReEntrantLock
Step 04 - Introduction to Atomic Classes - AtomicInteger
Step 05 - Need for ConcurrentMap
Step 06 - Implementing an example with ConcurrentHashMap
Step 07 - ConcurrentHashMap uses different locks for diferrent regions
Step 08 - CopyOnWrite Concurrent Collections - When reads are more than writes
Step 09 - Conclusion
Code Examples
/src/com/in28minutes/concurrency/BiCounter.java
package com.in28minutes.concurrency;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 179/203
9/17/2018 in28Minutes | (0/25)
i
//increment
//set i
}
/src/com/in28minutes/concurrency/BiCounterWithAtomicInt
eger.java
package com.in28minutes.concurrency;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 180/203
9/17/2018 in28Minutes | (0/25)
AtomicInteger();
/src/com/in28minutes/concurrency/BiCounterWithLock.java
package com.in28minutes.concurrency;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
I
i++;
lockForI.unlock();
//Release Lock For I
}
/src/com/in28minutes/concurrency/ConcurrencyRunner.java
package com.in28minutes.concurrency;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 182/203
9/17/2018 in28Minutes | (0/25)
System.out.println(counter.getI());
/src/com/in28minutes/concurrency/ConcurrentMapRunner.ja
va
package com.in28minutes.concurrency;
import java.util.Hashtable;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.LongAdder;
for(char character:str.toCharArray()) {
occurances.computeIfAbsent(character, ch -> new
LongAdder()).increment();
}
System.out.println(occurances);
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 183/203
9/17/2018 in28Minutes | (0/25)
/*
Map<Character, LongAdder> occurances = new
Hashtable<>();
System.out.println(occurances);
*/
}
/src/com/in28minutes/concurrency/CopyOnWriteArrayListRu
nner.java
package com.in28minutes.concurrency;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
//add - copy
//get
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 184/203
9/17/2018 in28Minutes | (0/25)
CopyOnWriteArrayList<>();
//Threads - 3
list.add("Ant");
list.add("Bat");
list.add("Cat");
//Threads - 10000
for(String element:list) {
System.out.println(element);
}
/src/com/in28minutes/concurrency/Counter.java
package com.in28minutes.concurrency;
i;
}
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 186/203
9/17/2018 in28Minutes | (0/25)
Java Tips
Steps
Java Tip 01 - Imports and Static Imports
Java Tip 02 - Blocks
Java Tip 03 - equals method
Java Tip 04 - hashcode method
Java Tip 05 - Class Access Modifiers - public and default
Java Tip 06 - Method Access Modifiers - public, protected, private and default
Java Tip 07 - Final classes and Final methods
Java Tip 08 - Final Variables and Final Arguments
Java Tip 09 - Why do we need static variables?
Java Tip 09 - Why do we need static methods?
Java Tip 10 - Static methods cannot use instance methods or variables
Java Tip 11 - public static final - Constants
Java Tip 12 - Nested Classes - Inner Class vs Static Nested Class
Java Tip 13 - Anonymous Classes
Java Tip 14 - Why Enum and Enum Basics - ordinal and values
Java Tip 15 - Enum - Constructor, variables and methods
Java Tip 16 - Quick look at inbuild Enums - Month, DayOfWeek
Code Examples
/src/com/in28minutes/tips/access/package1/ClassAccessModi
fiers.java
package com.in28minutes.tips.access.package1;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 187/203
9/17/2018 in28Minutes | (0/25)
/src/com/in28minutes/tips/access/package1/ExampleClass.ja
va
package com.in28minutes.tips.access.package1;
/src/com/in28minutes/tips/access/package1/MethodAccessR
unnerInsideSamePackage.java
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 188/203
9/17/2018 in28Minutes | (0/25)
package com.in28minutes.tips.access.package1;
/src/com/in28minutes/tips/access/package2/ClassAccessMod
ifiersRunnerInOtherPackage.java
package com.in28minutes.tips.access.package2;
import
com.in28minutes.tips.access.package1.ClassAccessModifiers;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 189/203
9/17/2018 in28Minutes | (0/25)
/src/com/in28minutes/tips/access/package2/MethodAccessR
unnerInDifferentPackage.java
package com.in28minutes.tips.access.package2;
import com.in28minutes.tips.access.package1.ExampleClass;
//exampleClass.privateMethod();
//exampleClass.protectedMethod();
exampleClass.publicMethod();
//exampleClass.defaultMethod();
/src/com/in28minutes/tips/anonymous/AnonymousClassRun
ner.java
package com.in28minutes.tips.anonymous;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 190/203
9/17/2018 in28Minutes | (0/25)
Collections.sort(animals,
lengthComparator
);
System.out.println(animals);
/src/com/in28minutes/tips/blocks/BlocksRunner.java
package com.in28minutes.tips.blocks;
{
//System.out.print(Integer.MIN_VALUE);
System.out.print(SECONDS_IN_DAY);
//System.out.print("main");
{
int i;
//System.out.print("3>2");
//System.out.print("3>2");
}
//System.out.print(i);
/src/com/in28minutes/tips/eclipse/DummyForTest.java
package com.in28minutes.tips.eclipse;
import java.util.ArrayList;
import java.util.List;
/src/com/in28minutes/tips/eclipse/EclipseTipsAndTricks.java
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 192/203
9/17/2018 in28Minutes | (0/25)
package com.in28minutes.tips.eclipse;
import java.math.BigDecimal;
//PAIR PROGRAMMING
class TestBean {
private int i; //i is awesome
private String str;
public TestBean() {
/*
fsadjflkas
fskljdfalsk
*/
super();
}
(non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
TestBean other = (TestBean) obj;
if (i != other.i) {
return false;
}
return true;
}
/**
* @return the i
*/
public int getI() {
return i;
}
/**
* @param i the i to set
*/
public void setI(int i) {
this.i = i;
}
/**
* @return the str
*/
public String getStr()
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 194/203
9/17/2018 in28Minutes | (0/25)
{
return str;
}
/**
* @param str the str to set
*/
public void setStr(String str) {
this.str = str;
}
@Override
public int compareTo(String arg0) {
return 0;
}
456;
}
/src/com/in28minutes/tips/enums/EnumRunner.java
package com.in28minutes.tips.enums;
import java.util.Arrays;
System.out
.println(Arrays.toString(Season.values()));
/src/com/in28minutes/tips/enums/Season.java
package com.in28minutes.tips.enums;
public enum Season {
SPRING(4), SUMMER(1), WINTER(2), FALL(3) ;
private int
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 196/203
9/17/2018 in28Minutes | (0/25)
value;
//0,1,2,3
}
/src/com/in28minutes/tips/equals/EqualsRunner.java
package com.in28minutes.tips.equals;
class Client {
private int id;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object that)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 197/203
9/17/2018 in28Minutes | (0/25)
{
if (this == that)
return true;
if (that == null)
return false;
if (getClass() != that.getClass())
return false;
Client other = (Client) that;
if (id != other.id)
return false;
return true;
}
//equals
//hashcode
/src/com/in28minutes/tips/imports/ImportsRunner.java
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 198/203
9/17/2018 in28Minutes | (0/25)
package com.in28minutes.tips.imports;
out.println("IMports");
out.println("Static Imports");
sort(new ArrayList<String>());
BigDecimal db = null;
/src/com/in28minutes/tips/nonaccess/package1/FinalNonAcc
essModifierRunner.java
package com.in28minutes.tips.nonaccess.package1;
//}
class SomeClass {
final public void doSomething() {}
public void doSomethingElse(final int arg) {
//arg = 6;
}
}
//i = 7;
/src/com/in28minutes/tips/nonaccess/package1/StaticModifi
erRunner.java
package com.in28minutes.tips.nonaccess.package1;
class Player{
private String name;
0;
System.out.println(Player.getCount());
System.out.println(Player.getCount());
}
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 201/203
9/17/2018 in28Minutes | (0/25)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 202/203
9/17/2018 in28Minutes | (0/25)
http://beacon.by/magazine/pdf/in28minutes/learn-java-programming-in-250-steps?type=print 203/203