SlideShare a Scribd company logo
1 of 15
Learn the concepts behind 10 Java Challenges
and Eliminate Stressful Bugs!
Who we are...
Rafael Del Nero
- Made in Brazil
- Creator of nobugsproject.com
- #JavaChallenges
- Author of "No Bugs, No Stress -
Create a Life Changing Software
Without Destroying Your Life” book
- He helps Java developers use best
programming practices to code
quality software for stress-free
projects with fewer bugs.
- Shares Barry’s daughters birthday
(19/09) 
Barry Evans
- Made in (N) Ireland
- Java ==  since 2007
- 💚s Clean Code & TDD
- 💔s Bugs & Untested Code
- Java 8 SE OCP Certified
- 2nd JavaOne
- version1.com
- DubJUG.org
Topics we will cover
1. Generics
2. Strings
3. Crazy Syntax
4. Threads
5. equals & hashCode
6. Sorting & Comparable
7. 𝝺 -> Lambdas
8. Method Overloading
9. Streams
10. Polymorphism
A) It will not compile
B) Maggie
C) RuntimeException
at line 32
D) Homer
Generics #1
A) 2367
B) 2357
C) 2368
D) 1457
Strings #2
A) It won’t compile
at line 12, 17 and
19
B) It won’t compile
at line 11, 27 and
30
C) It won’t compile at
line 5, 24 and 30
D) It will compile
Crazy Syntax #3
A) first
B) third
C) last
D) Indeterminate
Threads #4
A) 1> 2> 3> 4> 5>
B) Indeterminate
C) 4> 2> 5>
D) 5> 4> 3> 2> 1>
equals & hashCode #5
A) Bart
Homer
Lisa
Maggie
Marge
B) Marge
Maggie
Lisa
Homer
Bart
C) Maggie
Bart
Lisa
Marge
Homer
D) Indeterminate
Sorting & Comparable #6
A) It won’t compile
at line 9.
B) It won’t compile at
line 24.
C) BAMM!!POHHHH!!!
D) It won’t compile at
line 20
𝝺 -> Lambdas #7
A) befe
B) bfce
C) efce
D) aecf
1 - Widening
2 - Boxing
3 - Boxing+varargs
Method Overloading #8
A) 31
B) Prints to ∞...
C) Prints nothing
D) java.util.NoSuchElementException
Streams #9
A) Spider Pig!
Eat my shorts!
I love Sax!
B) Spider Pig!
Simpson!
I love Sax!
C) Spider Pig!
Eat my shorts!
Simpson!
D) Simpson!
Simpson!
Simpson!
Polymorphism #10
Topics we covered
1. Generics
2. Strings
3. Crazy Syntax
4. Threads
5. equals & hashCode
6. Sorting & Comparable
7. 𝝺 -> Lambdas
8. Method Overloading
9. Streams
10. Polymorphism
@rafaDelNero @bazza_ni
#JavaChallenges
Nobugsproject.com
Dubjug.org

More Related Content

Similar to Learn the Concepts Behind Those 10 Java Challenges and Eliminate Stressful Bugs

JRuby in Java Projects
JRuby in Java ProjectsJRuby in Java Projects
JRuby in Java Projectsjazzman1980
 
javabasics_ programming development chapter01
javabasics_ programming development chapter01javabasics_ programming development chapter01
javabasics_ programming development chapter01Udeshg90
 
Learn java in one day and learn it well 2016 jamie chan
Learn java in one day and learn it well 2016   jamie chanLearn java in one day and learn it well 2016   jamie chan
Learn java in one day and learn it well 2016 jamie chananand_study
 
Java Tutorial to Learn Java Programming
Java Tutorial to Learn Java ProgrammingJava Tutorial to Learn Java Programming
Java Tutorial to Learn Java Programmingbusiness Corporate
 
Raya code quality guidelines - enhancing readability
Raya code quality guidelines - enhancing readabilityRaya code quality guidelines - enhancing readability
Raya code quality guidelines - enhancing readabilityAbdel Hady Muhammad
 
festival ICT 2013: Ruby, the 0.8 language you were looking for
festival ICT 2013: Ruby, the 0.8 language you were looking forfestival ICT 2013: Ruby, the 0.8 language you were looking for
festival ICT 2013: Ruby, the 0.8 language you were looking forfestival ICT 2016
 
JAVA introduction and basic understanding.pptx
JAVA  introduction and basic understanding.pptxJAVA  introduction and basic understanding.pptx
JAVA introduction and basic understanding.pptxprstsomnath22
 
Carrier Advice for a JAVA Developer How to Become a Java Programmer
Carrier Advice for a JAVA Developer How to Become a Java ProgrammerCarrier Advice for a JAVA Developer How to Become a Java Programmer
Carrier Advice for a JAVA Developer How to Become a Java Programmerjeetendra mandal
 
Don't let your tests slow you down
Don't let your tests slow you downDon't let your tests slow you down
Don't let your tests slow you downDaniel Irvine
 
Java introduction
Java introductionJava introduction
Java introductionSagar Verma
 
Java course-in-mumbai
Java course-in-mumbaiJava course-in-mumbai
Java course-in-mumbaivibrantuser
 
Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...
Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...
Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...Infinum
 
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)
212 kuliah 01   pengenalan pemrograman berorientasi objek (java)212 kuliah 01   pengenalan pemrograman berorientasi objek (java)
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)yuan99
 

Similar to Learn the Concepts Behind Those 10 Java Challenges and Eliminate Stressful Bugs (20)

JRuby in Java Projects
JRuby in Java ProjectsJRuby in Java Projects
JRuby in Java Projects
 
javabasics_ programming development chapter01
javabasics_ programming development chapter01javabasics_ programming development chapter01
javabasics_ programming development chapter01
 
Learn java in one day and learn it well 2016 jamie chan
Learn java in one day and learn it well 2016   jamie chanLearn java in one day and learn it well 2016   jamie chan
Learn java in one day and learn it well 2016 jamie chan
 
Java Tutorial to Learn Java Programming
Java Tutorial to Learn Java ProgrammingJava Tutorial to Learn Java Programming
Java Tutorial to Learn Java Programming
 
Raya code quality guidelines - enhancing readability
Raya code quality guidelines - enhancing readabilityRaya code quality guidelines - enhancing readability
Raya code quality guidelines - enhancing readability
 
Unit testing-patterns
Unit testing-patternsUnit testing-patterns
Unit testing-patterns
 
How java works
How java worksHow java works
How java works
 
How java works
How java worksHow java works
How java works
 
festival ICT 2013: Ruby, the 0.8 language you were looking for
festival ICT 2013: Ruby, the 0.8 language you were looking forfestival ICT 2013: Ruby, the 0.8 language you were looking for
festival ICT 2013: Ruby, the 0.8 language you were looking for
 
Java (1)
Java (1)Java (1)
Java (1)
 
JAVA introduction and basic understanding.pptx
JAVA  introduction and basic understanding.pptxJAVA  introduction and basic understanding.pptx
JAVA introduction and basic understanding.pptx
 
Carrier Advice for a JAVA Developer How to Become a Java Programmer
Carrier Advice for a JAVA Developer How to Become a Java ProgrammerCarrier Advice for a JAVA Developer How to Become a Java Programmer
Carrier Advice for a JAVA Developer How to Become a Java Programmer
 
Don't let your tests slow you down
Don't let your tests slow you downDon't let your tests slow you down
Don't let your tests slow you down
 
Java introduction
Java introductionJava introduction
Java introduction
 
Java course-in-mumbai
Java course-in-mumbaiJava course-in-mumbai
Java course-in-mumbai
 
Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...
Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...
Infinum Android Talks #19 - Stop wasting time fixing bugs with TDD by Domagoj...
 
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)
212 kuliah 01   pengenalan pemrograman berorientasi objek (java)212 kuliah 01   pengenalan pemrograman berorientasi objek (java)
212 kuliah 01 pengenalan pemrograman berorientasi objek (java)
 
Java assignment help
Java assignment helpJava assignment help
Java assignment help
 
Tdd
TddTdd
Tdd
 
Java By Sai NagaVenkata BuchiBabu Manepalli
Java By Sai NagaVenkata BuchiBabu ManepalliJava By Sai NagaVenkata BuchiBabu Manepalli
Java By Sai NagaVenkata BuchiBabu Manepalli
 

Recently uploaded

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 

Recently uploaded (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 

Learn the Concepts Behind Those 10 Java Challenges and Eliminate Stressful Bugs

  • 1. Learn the concepts behind 10 Java Challenges and Eliminate Stressful Bugs!
  • 2. Who we are... Rafael Del Nero - Made in Brazil - Creator of nobugsproject.com - #JavaChallenges - Author of "No Bugs, No Stress - Create a Life Changing Software Without Destroying Your Life” book - He helps Java developers use best programming practices to code quality software for stress-free projects with fewer bugs. - Shares Barry’s daughters birthday (19/09)  Barry Evans - Made in (N) Ireland - Java ==  since 2007 - 💚s Clean Code & TDD - 💔s Bugs & Untested Code - Java 8 SE OCP Certified - 2nd JavaOne - version1.com - DubJUG.org
  • 3. Topics we will cover 1. Generics 2. Strings 3. Crazy Syntax 4. Threads 5. equals & hashCode 6. Sorting & Comparable 7. 𝝺 -> Lambdas 8. Method Overloading 9. Streams 10. Polymorphism
  • 4. A) It will not compile B) Maggie C) RuntimeException at line 32 D) Homer Generics #1
  • 5. A) 2367 B) 2357 C) 2368 D) 1457 Strings #2
  • 6. A) It won’t compile at line 12, 17 and 19 B) It won’t compile at line 11, 27 and 30 C) It won’t compile at line 5, 24 and 30 D) It will compile Crazy Syntax #3
  • 7. A) first B) third C) last D) Indeterminate Threads #4
  • 8. A) 1> 2> 3> 4> 5> B) Indeterminate C) 4> 2> 5> D) 5> 4> 3> 2> 1> equals & hashCode #5
  • 9. A) Bart Homer Lisa Maggie Marge B) Marge Maggie Lisa Homer Bart C) Maggie Bart Lisa Marge Homer D) Indeterminate Sorting & Comparable #6
  • 10. A) It won’t compile at line 9. B) It won’t compile at line 24. C) BAMM!!POHHHH!!! D) It won’t compile at line 20 𝝺 -> Lambdas #7
  • 11. A) befe B) bfce C) efce D) aecf 1 - Widening 2 - Boxing 3 - Boxing+varargs Method Overloading #8
  • 12. A) 31 B) Prints to ∞... C) Prints nothing D) java.util.NoSuchElementException Streams #9
  • 13. A) Spider Pig! Eat my shorts! I love Sax! B) Spider Pig! Simpson! I love Sax! C) Spider Pig! Eat my shorts! Simpson! D) Simpson! Simpson! Simpson! Polymorphism #10
  • 14. Topics we covered 1. Generics 2. Strings 3. Crazy Syntax 4. Threads 5. equals & hashCode 6. Sorting & Comparable 7. 𝝺 -> Lambdas 8. Method Overloading 9. Streams 10. Polymorphism

Editor's Notes

  1. Generic Type Parameter Generic Type parameter scope  Class/Method Explain the generic type in the class Explain the generic type in the method
  2. String pool Immutable String == != equals TODO Align all ternary returns – e.g. ? “3” : “4”
  3. For structure Variable names Generic types declarations
  4. Thread execution order is indeterminate Thread priority is only a preference Daemon threads will not keep the jvm alive No output is possible System.exit(0) | Runtime.exit(0) or All threads that are not daemon threads have died
  5. HashMap uses hashcode, then equals to find unique entries Hashcode will be used 1st time, then equals LinkedHashMap will guarantee the iteration order cheaper than TreeMap Map.forEach uses BiConsumer (accept) java 8 feature
  6. TreeSet requires Comparable<?> interface compareTo provides reverse alpha order Equals never used with TreeSet ArrayList.forEach uses Consumer (accept) java 8 feature Or method reference 8 calls Homer,Homer Homer,Marge Homer,Lisa Marge,Lisa Lisa,Bart Homer,Bart Lisa,Maggie Marge,Maggie
  7. Functional Interface Default methods Lambda syntax
  8. Widening Boxing Varargs TODO - line up the var parameter names
  9. Streams  intermediate operations Map/Filter Lazy evaluation Stream  terminal operation .min  Comparator<?> Optional.ifPresent  Consumer<?> Stream could be empty Stream.iterate Infinite stream Use limit to bound
  10. Polymorphism Access modifiers Method overloading Virtual Method Invocation Object reference is irrelevant