diff --git a/.idea/sonarlint/issuestore/0/a/0aa1aa07115cd8e0632bccad058c6cac493b1f73 b/.idea/sonarlint/issuestore/0/a/0aa1aa07115cd8e0632bccad058c6cac493b1f73
deleted file mode 100644
index 04df90e..0000000
--- a/.idea/sonarlint/issuestore/0/a/0aa1aa07115cd8e0632bccad058c6cac493b1f73
+++ /dev/null
@@ -1,2 +0,0 @@
-
-@squid:S1068"")Remove this unused "breed" private field.(ý»Ï±
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/1/0/107b897f7854331a98a6a8581840149e42ff2115 b/.idea/sonarlint/issuestore/1/0/107b897f7854331a98a6a8581840149e42ff2115
deleted file mode 100644
index 54e0c46..0000000
--- a/.idea/sonarlint/issuestore/1/0/107b897f7854331a98a6a8581840149e42ff2115
+++ /dev/null
@@ -1,7 +0,0 @@
-
-Osquid:S1612",Replace this lambda with a method reference.(ÿÒ�Žúÿÿÿÿ8óøê Ý,
-Osquid:S1612	",Replace this lambda with a method reference.(Œø‡ðøÿÿÿÿ8èÏè Ý,
-[
-squid:S106"9Replace this use of System.out or System.err by a logger.(™áŠóþÿÿÿÿ8ñÝï Ý,
-V
-squid:S106"9Replace this use of System.out or System.err by a logger.(¼¡¨ò8ÅÖŠïÞ,
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/4/0/4001d9f1bf9963c71abd4d1038777af085aa8373 b/.idea/sonarlint/issuestore/4/0/4001d9f1bf9963c71abd4d1038777af085aa8373
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/5/4/5418fb02e2d91c8779a16a8c321acf459a888307 b/.idea/sonarlint/issuestore/5/4/5418fb02e2d91c8779a16a8c321acf459a888307
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/7/1/7197bcb1839ba6daa7a69755da50301969ae183c b/.idea/sonarlint/issuestore/7/1/7197bcb1839ba6daa7a69755da50301969ae183c
deleted file mode 100644
index 1915d7e..0000000
--- a/.idea/sonarlint/issuestore/7/1/7197bcb1839ba6daa7a69755da50301969ae183c
+++ /dev/null
@@ -1,10 +0,0 @@
-
-[
-squid:S106"9Replace this use of System.out or System.err by a logger.(¬æ¶¶ýÿÿÿÿ8Óý®—ß,
-[
-squid:S106"9Replace this use of System.out or System.err by a logger.(ï¤™ñÿÿÿÿÿ8êäŸ–ß,
-Xsquid:S1161)":Add the "@Override" annotation above this method signature(Óü„€8òº‘—ß,
-[
-squid:S106*"9Replace this use of System.out or System.err by a logger.(±ü®¹ùÿÿÿÿ8òº‘—ß,
-V
-squid:S106#"9Replace this use of System.out or System.err by a logger.(�›ö�8‘ ‘—ß,
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/7/b/7b11771a186730063626106382669a47cd441c6b b/.idea/sonarlint/issuestore/7/b/7b11771a186730063626106382669a47cd441c6b
deleted file mode 100644
index bd24eaa..0000000
--- a/.idea/sonarlint/issuestore/7/b/7b11771a186730063626106382669a47cd441c6b
+++ /dev/null
@@ -1,30 +0,0 @@
-
-bsquid:UselessImportCheck"7Remove this unused import 'java.text.SimpleDateFormat'.(ú¡ÙÛ8žÍßÍÜ,
-U
-squid:S106O"9Replace this use of System.out or System.err by a logger.(Î­•a8œ‰šÀß,
-U
-squid:S106M"9Replace this use of System.out or System.err by a logger.(ˆÝõ28àìè¿ß,
-V
-squid:S106Y"9Replace this use of System.out or System.err by a logger.(Ö—Ç¹8€üÛÀß,
-bsquid:CommentedOutCodeLine9"<This block of commented-out lines of code should be removed.(µÔŸÔ
-[
-squid:S106V"9Replace this use of System.out or System.err by a logger.(•¨¨ºýÿÿÿÿ8ÇøÓÀß,
-V
-squid:S106W"9Replace this use of System.out or System.err by a logger.(¤¹�«8¿ÍÞÀß,
-esquid:UselessImportCheck ":Remove this unused import 'java.time.temporal.ChronoUnit'.(Á…�§8¢¼ÖÀß,
-Fsquid:S1481H"(Remove this unused "zdt" local variable.(¯é“¯8“šØ¿ß,
-Usquid:S1854H"7Remove this useless assignment to local variable "zdt".(¯é“¯8“šØ¿ß,
-jsquid:UselessImportCheck"?Remove this unused import 'java.time.format.DateTimeFormatter'.(‰÷÷ª8¿ÊéŸÝ,
-nsquid:UselessImportCheck"">Remove this unused import 'java.time.temporal.TemporalAmount'.(©¡”»üÿÿÿÿ8žì Àß,
-gsquid:CommentedOutCodeLine;"<This block of commented-out lines of code should be removed.(ÿ„Í¨ÿÿÿÿÿ
-U
-squid:S106R"9Replace this use of System.out or System.err by a logger.(’€à8‘˜±Àß,
-_squid:UselessImportCheck&"/Remove this unused import 'java.util.Optional'.(¨˜ëÝüÿÿÿÿ8¿ÊéŸÝ,
-[squid:S1854B"=Remove this useless assignment to local variable "localDate".(ï�Óõ8å£Ø—ß,
-hsquid:UselessImportCheck("8Remove this unused import 'java.util.stream.Collectors'.(Óóº´úÿÿÿÿ8¿ÊéŸÝ,
-Lsquid:S1481B".Remove this unused "localDate" local variable.(ï�Óõ8å£Ø—ß,
-ksquid:UselessImportCheck!"@Remove this unused import 'java.time.temporal.TemporalAccessor'.(Ñ‰±Ñ8€�¥Àß,
-O
-squid:S1067"9Replace this use of System.out or System.err by a logger.(œ�÷â
-[
-squid:S106I"9Replace this use of System.out or System.err by a logger.(ÞË¹åùÿÿÿÿ8Á�Ò¿ß,
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/a/e/aef560b35d7384699f32aef9d42c31ad9d3ced14 b/.idea/sonarlint/issuestore/a/e/aef560b35d7384699f32aef9d42c31ad9d3ced14
deleted file mode 100644
index a578bdb..0000000
--- a/.idea/sonarlint/issuestore/a/e/aef560b35d7384699f32aef9d42c31ad9d3ced14
+++ /dev/null
@@ -1,35 +0,0 @@
-
-Ssquid:UnusedPrivateMethod:"/Remove this unused private "question33" method.(Éºß@
-T
-squid:S106="9Replace this use of System.out or System.err by a logger.(„ªŸ¡øÿÿÿÿ
-bsquid:S1764H"KCorrect one of the identical sub-expressions on both sides of operator "&&"(Á³Îƒ
-Qsquid:S2209U"5Change this instance-reference to a static reference.(ÐöµØüÿÿÿÿ
-T
-squid:S106Q"9Replace this use of System.out or System.err by a logger.(… É¾ûÿÿÿÿ
-[squid:UnusedPrivateMethod3"/Remove this unused private "question13" method.(¯í¶í8÷µÔ¦Ü,
-gsquid:CommentedOutCodeLinew"<This block of commented-out lines of code should be removed.(ºàÚÝüÿÿÿÿ
-Tsquid:UnusedPrivateMethodE"/Remove this unused private "question39" method.(áÙòƒ
-Dsquid:S1172u"(Remove this unused method parameter "j".(²«•€ùÿÿÿÿ
-Msquid:UnusedPrivateMethodP"(Remove this unused private "add" method.(‹ŸâË
-Ysquid:UnusedPrivateMethod@"/Remove this unused private "question35" method.(ð¬ù®úÿÿÿÿ
-T
-squid:S106I"9Replace this use of System.out or System.err by a logger.(æ¨¤šøÿÿÿÿ
-T
-squid:S106^"9Replace this use of System.out or System.err by a logger.(­…àŠøÿÿÿÿ
-O
-squid:S106M"9Replace this use of System.out or System.err by a logger.(ÒðœŽ
-?squid:S1481G"(Remove this unused "res" local variable.(ìÚèº
-Qsquid:S2209U"5Change this instance-reference to a static reference.(ÐöµØüÿÿÿÿ
-Zsquid:UnusedPrivateMethod+".Remove this unused private "question8" method.(þÉü¿8÷µÔ¦Ü,
-Nsquid:S1854H"7Remove this useless assignment to local variable "res".(Á³Îƒ
-O
-squid:S106V"9Replace this use of System.out or System.err by a logger.(°úÆ«
-T
-squid:S106B"9Replace this use of System.out or System.err by a logger.(�®Ö¥ýÿÿÿÿ
-Qsquid:S2209U"5Change this instance-reference to a static reference.(ÐöµØüÿÿÿÿ
-Rsquid:UnusedPrivateMethodL"(Remove this unused private "add" method.(îÄöóøÿÿÿÿ
-Ysquid:UnusedPrivateMethodT"/Remove this unused private "question63" method.(äÆ�€úÿÿÿÿ
-O
-squid:S1067"9Replace this use of System.out or System.err by a logger.(³Â™Ù
-V
-squid:S1060"9Replace this use of System.out or System.err by a logger.(³�š—8÷µÔ¦Ü,
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/b/2/b2e05cb2c51a4c93f01c778125471c05ef79bde8 b/.idea/sonarlint/issuestore/b/2/b2e05cb2c51a4c93f01c778125471c05ef79bde8
deleted file mode 100644
index 72034fc..0000000
--- a/.idea/sonarlint/issuestore/b/2/b2e05cb2c51a4c93f01c778125471c05ef79bde8
+++ /dev/null
@@ -1,134 +0,0 @@
-
-O
-squid:S106:"9Replace this use of System.out or System.err by a logger.(½ÿŒÁ
-csquid:CommentedOutCodeLineÕ"<This block of commented-out lines of code should be removed.(öäÊ¼
-Zsquid:UnusedPrivateMethodî"/Remove this unused private "question42" method.(¶ß›´øÿÿÿÿ
-Usquid:UnusedPrivateMethod�"/Remove this unused private "question47" method.(ËØé­
-Usquid:UnusedPrivateMethodè"/Remove this unused private "question39" method.(áÙòƒ
-?squid:S1172Á"(Remove this unused method parameter "x".(ÒÜå9
-Ssquid:UnusedPrivateMethod=".Remove this unused private "question3" method.(ìÂôø
-Usquid:UnusedPrivateMethod¥"/Remove this unused private "question50" method.(”�™À
-Zsquid:UnusedPrivateMethod­"/Remove this unused private "question52" method.(¯ßË­øÿÿÿÿ
-U
-squid:S106Ú"9Replace this use of System.out or System.err by a logger.(ã¿¢Ôùÿÿÿÿ
-Usquid:UnusedPrivateMethod„"/Remove this unused private "question45" method.(ÂÚÇ‰
-8squid:S2129›" Remove this "String" constructor(ûÁÑ·
-Zsquid:UnusedPrivateMethod±"/Remove this unused private "question53" method.(èˆ‡»ûÿÿÿÿ
-=squid:S2129é" Remove this "String" constructor(Ë½�–þÿÿÿÿ
-U
-squid:S106¶"9Replace this use of System.out or System.err by a logger.(¿Èßâþÿÿÿÿ
-=squid:S2129ÿ" Remove this "String" constructor(åø†øÿÿÿÿÿ
-Usquid:UnusedPrivateMethod®"/Remove this unused private "question26" method.(åÊµ­
-Zsquid:UnusedPrivateMethodþ"/Remove this unused private "question43" method.(Ëù•ùúÿÿÿÿ
-csquid:S1192�"FDefine a constant instead of duplicating this literal "James" 5 times.(Ùž²Íþÿÿÿÿ
-_squid:S00112½"FDefine and throw a dedicated exception instead of using a generic one.(ûÑ¥‘
-Usquid:UnusedPrivateMethod¹"/Remove this unused private "question54" method.(žŽÌá
-Xsquid:UnusedPrivateMethodG".Remove this unused private "question4" method.(�ßõ§ýÿÿÿÿ
-T
-squid:S106c"9Replace this use of System.out or System.err by a logger.(êŽð»ýÿÿÿÿ
-U
-squid:S106Â"9Replace this use of System.out or System.err by a logger.(ßÄÉÇýÿÿÿÿ
-hsquid:CommentedOutCodeLineÄ"<This block of commented-out lines of code should be removed.(°¾ùèüÿÿÿÿ
-csquid:CommentedOutCodeLineØ"<This block of commented-out lines of code should be removed.(�øª�
-Usquid:UnusedPrivateMethodš"/Remove this unused private "question48" method.(¼ÛŸî
-P
-squid:S106£"9Replace this use of System.out or System.err by a logger.(²¨ç÷
-U
-squid:S106¶"9Replace this use of System.out or System.err by a logger.(�´‚êýÿÿÿÿ
-Hsquid:S4524±"+Move this default to the end of the switch.(Ý–Ò˜ÿÿÿÿÿ
-O
-squid:S106´"9Replace this use of System.out or System.err by a logger.(‰¡‘k
-Xsquid:UnusedPrivateMethod4".Remove this unused private "question1" method.(µþŸ›üÿÿÿÿ
-P
-squid:S106„"9Replace this use of System.out or System.err by a logger.(�©Ü“
-U
-squid:S106“"9Replace this use of System.out or System.err by a logger.(�ˆŠÂþÿÿÿÿ
-Usquid:S1854é"8Remove this useless assignment to local variable "str1".(Ë½�–þÿÿÿÿ
-Rsquid:UnusedPrivateMethod8".Remove this unused private "question2" method.(ƒòçQ
-hsquid:CommentedOutCodeLineÛ"<This block of commented-out lines of code should be removed.(†€§òþÿÿÿÿ
-U
-squid:S106‹"9Replace this use of System.out or System.err by a logger.(Þ©¿±ûÿÿÿÿ
-hsquid:CommentedOutCodeLineÒ"<This block of commented-out lines of code should be removed.(…þÆ»ÿÿÿÿÿ
-8squid:S2129ž" Remove this "String" constructor(²Êùœ
-U
-squid:S106ë"9Replace this use of System.out or System.err by a logger.(µÆÚ‹ûÿÿÿÿ
-P
-squid:S106¸"9Replace this use of System.out or System.err by a logger.(‡êûâ
-Usquid:UnusedPrivateMethodÑ"/Remove this unused private "question61" method.(ÿç™à
-U
-squid:S106¾"9Replace this use of System.out or System.err by a logger.(¸�³îøÿÿÿÿ
-U
-squid:S106˜"9Replace this use of System.out or System.err by a logger.(ž˜ÉŠüÿÿÿÿ
-T
-squid:S106D"9Replace this use of System.out or System.err by a logger.(õÚÑªùÿÿÿÿ
-8squid:S2129ê" Remove this "String" constructor(ßúí“
-h
-squid:S128±"LEnd this switch case with an unconditional break, return or throw statement.(Ý–Ò˜ÿÿÿÿÿ
-Fsquid:S1481Ã")Remove this unused "obj2" local variable.(Àºž·ùÿÿÿÿ
-Rsquid:S1610é"5Convert the abstract class "Super" into an interface.(Àá��þÿÿÿÿ
-Usquid:UnusedPrivateMethodË"/Remove this unused private "question28" method.(Áð‘Ø
-U
-squid:S106ª"9Replace this use of System.out or System.err by a logger.(�¸«‚ýÿÿÿÿ
-Zsquid:UnusedPrivateMethodÌ"/Remove this unused private "question59" method.(Çì‡²üÿÿÿÿ
-U
-squid:S106¢"9Replace this use of System.out or System.err by a logger.(ã¿¢Ôùÿÿÿÿ
-P
-squid:S106²"9Replace this use of System.out or System.err by a logger.(ùýÓ›
-P
-squid:S106É"9Replace this use of System.out or System.err by a logger.(°úÆ«
-ssquid:S2159‹"VRemove this call to "equals"; comparisons between unrelated types always return false.(Þ©¿±ûÿÿÿÿ
-P
-squid:S106ú"9Replace this use of System.out or System.err by a logger.(í§¾ó
-Hsquid:S2201 "+The return value of "replace" must be used.(ßæ¨Ëýÿÿÿÿ
-U
-squid:S106«"9Replace this use of System.out or System.err by a logger.(«ç¤Âÿÿÿÿÿ
-ž%squid:RedundantThrowsDeclarationCheck½"lRemove the declaration of thrown exception 'java.lang.Exception', as it cannot be thrown from method's body.(ûÑ¥‘
-O
-squid:S106o"9Replace this use of System.out or System.err by a logger.(³Â™Ù
-=squid:S2129^"!Remove this "Integer" constructor(‹åê÷þÿÿÿÿ
-Esquid:S1172½"(Remove this unused method parameter "x".(‹î�„úÿÿÿÿ
-=squid:S2129_"!Remove this "Integer" constructor(§œ’‹þÿÿÿÿ
-U
-squid:S106ž"9Replace this use of System.out or System.err by a logger.(”ÝÖóýÿÿÿÿ
-ssquid:S2159‹"VRemove this call to "equals"; comparisons between unrelated types always return false.(Þ©¿±ûÿÿÿÿ
-Usquid:S1854ë"8Remove this useless assignment to local variable "str1".(µÆÚ‹ûÿÿÿÿ
-7squid:S2129`"!Remove this "Integer" constructor(àžÅ"
-T
-squid:S106W"9Replace this use of System.out or System.err by a logger.(Â›ç¡øÿÿÿÿ
-T
-squid:S106R"9Replace this use of System.out or System.err by a logger.(ÍúÀªÿÿÿÿÿ
-U
-squid:S106Î"9Replace this use of System.out or System.err by a logger.(øçõ�ÿÿÿÿÿ
-Tsquid:UnusedPrivateMethodÑ"/Remove this unused private "question33" method.(Éºß@
-h
-squid:S128µ"LEnd this switch case with an unconditional break, return or throw statement.(¡ðÿžüÿÿÿÿ
-csquid:CommentedOutCodeLineÞ"<This block of commented-out lines of code should be removed.(…¡ñª
-U
-squid:S106Î"9Replace this use of System.out or System.err by a logger.(…¯†Îþÿÿÿÿ
-P
-squid:S106€"9Replace this use of System.out or System.err by a logger.(÷íÈ½
-U
-squid:S106�"9Replace this use of System.out or System.err by a logger.(¾†Ý´ýÿÿÿÿ
-Qsquid:S1854h"5Remove this useless assignment to local variable "a".(½Ý¦þÿÿÿÿÿ
-U
-squid:S106ÿ"9Replace this use of System.out or System.err by a logger.(åø†øÿÿÿÿÿ
-U
-squid:S106¾"9Replace this use of System.out or System.err by a logger.(‚—ü…øÿÿÿÿ
-c
-squid:S128³"LEnd this switch case with an unconditional break, return or throw statement.(­÷ŒŠ
-Usquid:UnusedPrivateMethodÇ"/Remove this unused private "question57" method.(ÜâÇÙ
-bsquid:S1301‘"KReplace this "switch" statement by "if" statements to increase readability.(°Âò8
-Usquid:UnusedPrivateMethodÁ"/Remove this unused private "question55" method.(�¾�»
-hsquid:CommentedOutCodeLine…"<This block of commented-out lines of code should be removed.(¼–�§üÿÿÿÿ
-d$squid:AssignmentInSubExpressionCheckë".Extract the assignment out of this expression.(µÆÚ‹ûÿÿÿÿ
-P
-squid:S106–"9Replace this use of System.out or System.err by a logger.(ªœÝô
-csquid:CommentedOutCodeLineº"<This block of commented-out lines of code should be removed.(ïÕó”
-T
-squid:S106h"9Replace this use of System.out or System.err by a logger.(½Ý¦þÿÿÿÿÿ
-Msquid:UnusedPrivateMethod½"'Remove this unused private "m1" method.(ûÑ¥‘
-O
-squid:S106Y"9Replace this use of System.out or System.err by a logger.(¿ÅÙ•
-O
-squid:S106{"9Replace this use of System.out or System.err by a logger.(œ�÷â
-Usquid:S1854Ã"8Remove this useless assignment to local variable "obj2".(Àºž·ùÿÿÿÿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/c/4/c46facfa080d31ea55afe2a9118bd91c13a8397e b/.idea/sonarlint/issuestore/c/4/c46facfa080d31ea55afe2a9118bd91c13a8397e
deleted file mode 100644
index dd27c6d..0000000
--- a/.idea/sonarlint/issuestore/c/4/c46facfa080d31ea55afe2a9118bd91c13a8397e
+++ /dev/null
@@ -1,3 +0,0 @@
-
-gsquid:CommentedOutCodeLine"<This block of commented-out lines of code should be removed.(„°£æúÿÿÿÿ
-ƒ"squid:ClassVariableVisibilityCheck"UMake treeCount a static final constant or non-public and provide accessors if needed.(��©­
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/5/f5d5ee0d986586d2c0518c976d48e7dd2fc3e30a b/.idea/sonarlint/issuestore/f/5/f5d5ee0d986586d2c0518c976d48e7dd2fc3e30a
deleted file mode 100644
index 7ffddb5..0000000
--- a/.idea/sonarlint/issuestore/f/5/f5d5ee0d986586d2c0518c976d48e7dd2fc3e30a
+++ /dev/null
@@ -1,3 +0,0 @@
-
-T
-squid:S106"9Replace this use of System.out or System.err by a logger.(ƒ˜ôŽøÿÿÿÿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/d/fd87dd9510dd66f0eddb68bfcbff43d5bd517449 b/.idea/sonarlint/issuestore/f/d/fd87dd9510dd66f0eddb68bfcbff43d5bd517449
deleted file mode 100644
index 06da818..0000000
--- a/.idea/sonarlint/issuestore/f/d/fd87dd9510dd66f0eddb68bfcbff43d5bd517449
+++ /dev/null
@@ -1,7 +0,0 @@
-
-Esquid:S1444")Make this "public static wag" field final(ðÅðïøÿÿÿÿ
-Lsquid:S2696"6Make the enclosing method "static" or remove this set.(Ã©õ_
-‚"squid:ClassVariableVisibilityCheck"OMake wag a static final constant or non-public and provide accessors if needed.(ðÅðïøÿÿÿÿ
-csquid:S1223"LRename this method to prevent any misunderstanding or make it a constructor.(šÈÏç
-Ksquid:S2209"5Change this instance-reference to a static reference.(Ã©õ_
-fsquid:S00100"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(šÈÏç
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/index.pb b/.idea/sonarlint/issuestore/index.pb
deleted file mode 100644
index 70f7ce2..0000000
--- a/.idea/sonarlint/issuestore/index.pb
+++ /dev/null
@@ -1,23 +0,0 @@
-
-Y
-)src/com/oracle/associate/java8/Exam1.java,b/2/b2e05cb2c51a4c93f01c778125471c05ef79bde8
-^
-.src/com/oracle/associate/java8/test/Paper.java,5/4/5418fb02e2d91c8779a16a8c321acf459a888307
-^
-.src/com/oracle/associate/java8/test/Robot.java,f/5/f5d5ee0d986586d2c0518c976d48e7dd2fc3e30a
-Y
-)src/com/oracle/associate/java8/Exam2.java,a/e/aef560b35d7384699f32aef9d42c31ad9d3ced14
-b
-2src/com/oracle/associate/java8/test/NewsPaper.java,4/0/4001d9f1bf9963c71abd4d1038777af085aa8373
-a
-1src/com/oracle/associate/java8/test/DateTest.java,7/b/7b11771a186730063626106382669a47cd441c6b
-g
-7src/com/oracle/associate/java8/test/FunctionalTest.java,1/0/107b897f7854331a98a6a8581840149e42ff2115
-^
-.src/com/oracle/associate/java8/test/Puppy.java,f/d/fd87dd9510dd66f0eddb68bfcbff43d5bd517449
-c
-3src/com/oracle/associate/java8/test/RainForest.java,c/4/c46facfa080d31ea55afe2a9118bd91c13a8397e
-W
-'src/com/oracle/associate/java8/Dog.java,0/a/0aa1aa07115cd8e0632bccad058c6cac493b1f73
-i
-9src/com/oracle/associate/java8/test/DefaultInterface.java,7/1/7197bcb1839ba6daa7a69755da50301969ae183c
\ No newline at end of file
diff --git a/src/com/oracle/java8/associate/Auto.java b/src/com/oracle/java8/associate/Auto.java
new file mode 100644
index 0000000..ba262c9
--- /dev/null
+++ b/src/com/oracle/java8/associate/Auto.java
@@ -0,0 +1,64 @@
+package com.oracle.java8.associate;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Auto {
+	private static int conteggio;
+	private String marca;
+
+	static {
+		System.out.println("Blocco statico");
+	}
+
+	{
+		System.out.println("Blocco di inizializzazione");
+	}
+
+	public Auto() {
+		System.out.println("Costruttore");
+		this.marca = "";
+		conteggio++;
+	}
+
+	public Auto(String marca) {
+		this.marca = marca;
+	}
+
+	public String getMarca() {
+		return this.marca;
+	}
+
+	public void setMarca(String marca) {
+		this.marca = marca;
+	}
+
+	public static int getConteggio() {
+		return conteggio;
+	}
+
+	@Override
+	protected void finalize() throws Throwable {
+		--conteggio;
+		super.finalize();
+	}
+
+	public static void main(String[] args) {
+		List<Auto> autos = new ArrayList<>();
+		for (int i = 0; i < 5; i++) {
+			Auto a1 = new Auto();
+			autos.add(a1);
+			System.out.println(Auto.getConteggio());
+		}
+		autos.clear();
+		wait(0.1);
+		System.out.println(Auto.getConteggio());
+	}
+
+	private static void wait(double second) {
+		try {
+			System.gc();
+			Thread.sleep((long) (second * 1000));
+		} catch (Exception e) {}
+	}
+}
diff --git a/src/com/oracle/java8/associate/ElectricCar.java b/src/com/oracle/java8/associate/ElectricCar.java
index a7c43f9..cca5853 100644
--- a/src/com/oracle/java8/associate/ElectricCar.java
+++ b/src/com/oracle/java8/associate/ElectricCar.java
@@ -6,7 +6,7 @@ class Automobile {
 	}
 }
 
-class Car extends Automobile {
+class Car extends Auto {
 	protected String drive() {
 		return "Driving car";
 	}
diff --git a/src/com/oracle/java8/associate/Eridarieta.java b/src/com/oracle/java8/associate/Eridarieta.java
new file mode 100644
index 0000000..d0eefcd
--- /dev/null
+++ b/src/com/oracle/java8/associate/Eridarieta.java
@@ -0,0 +1,92 @@
+package com.oracle.java8.associate;
+
+public class Eridarieta {
+
+	public static void main(String[] args) {
+		Animale[] animali = {
+				creaAnimale("Cane"),
+				creaAnimale("Coccodrillo"),
+				creaAnimale("Coccodrillo"),
+				creaAnimale("Cane")
+		};
+
+		for (Animale a : animali) {
+			if (a instanceof Animale) {
+				System.out.println(a.getClass().getSimpleName() + " sono un animale");
+			}
+			if (a instanceof Mammifero) {
+				System.out.println(a.getClass().getSimpleName() + " sono un mammifero");
+			}
+			if (a instanceof Rettile) {
+				System.out.println(a.getClass().getSimpleName() + " sono un rettile");
+			}
+
+			a.muove();
+		}
+	}
+
+	static Animale creaAnimale(String tipo) {
+		switch (tipo) {
+			case "Cane":
+				return new Cane();
+			case "Coccodrillo":
+				return new Coccodrillo();
+			default:
+				throw new RuntimeException("Tipo animale non esistente");
+		}
+	}
+}
+
+interface Animale {
+	void muove();
+}
+
+abstract class Mammifero implements Animale {
+	protected int gambe;
+
+	public int getGambe() {
+		return gambe;
+	}
+
+	public void setGambe(int gambe) {
+		this.gambe = gambe;
+	}
+}
+
+abstract class Rettile implements Animale {
+	protected int temperatura;
+
+	public int getTemperatura() {
+		return temperatura;
+	}
+
+	public void setTemperatura(int temperatura) {
+		this.temperatura = temperatura;
+	}
+}
+
+class Cane extends Mammifero {
+
+	public Cane() {
+		super();
+		this.gambe = 4;
+	}
+
+	@Override
+	public void muove() {
+		System.out.println(String.format("Corre sulle %d gambe", getGambe()));
+	}
+}
+
+class Coccodrillo extends Rettile {
+
+	public Coccodrillo() {
+		super();
+		this.temperatura = 30;
+	}
+
+	@Override
+	public void muove() {
+		System.out.println(String.format("Ha una temperatura di %dÂ°C", temperatura));
+	}
+}
\ No newline at end of file
diff --git a/src/com/oracle/java8/associate/Overloading.java b/src/com/oracle/java8/associate/Overloading.java
new file mode 100644
index 0000000..e7dc929
--- /dev/null
+++ b/src/com/oracle/java8/associate/Overloading.java
@@ -0,0 +1,51 @@
+package com.oracle.java8.associate;
+
+public class Overloading {
+
+	public static void main(String[] args) throws Exception {
+		X o = new X();
+
+		o.m(1.0, 2); // 2
+		o.m(1, 2); // 4
+		o.m(1, 0f); // 1
+		o.m(3., 8); // 2
+		o.m(0L, 9); // 3
+
+		o.m();
+		o = new Y();
+		o.m();
+	}
+}
+
+class X {
+
+	public void m(int x, double y) {
+		System.out.println("1");
+	}
+
+	public void m(double x, long y) {
+		System.out.println("2");
+	}
+
+	public void m(float x, int y) {
+		System.out.println("3");
+	}
+
+	public void m(int x, int y) {
+		System.out.println("4");
+	}
+
+	public Object m() throws Exception {
+		System.out.println("m() => X");
+		return null;
+	}
+}
+
+class Y extends X {
+
+	@Override
+	public String m() throws InstantiationException {
+		System.out.println("m() => Y");
+		return null;
+	}
+}
diff --git a/src/com/oracle/java8/associate/test/ArrayTest.java b/src/com/oracle/java8/associate/test/ArrayTest.java
index e3ea8b4..b0a2b7b 100644
--- a/src/com/oracle/java8/associate/test/ArrayTest.java
+++ b/src/com/oracle/java8/associate/test/ArrayTest.java
@@ -64,7 +64,7 @@ public class ArrayTest {
         
         //String s = a6[-1]; ArrayIndexOutOfBoundsException
         
-        //Field f = new int[0].getClass().getField("length"); java.lang.NoSuchFieldException: length
+        //Field m = new int[0].getClass().getField("length"); java.lang.NoSuchFieldException: length
         
         // non funziona
         int[] a7 = unmodifieble(new int[]{1, 2, 3, 4, 5});
diff --git a/src/com/oracle/java8/associate/test/FunctionalTest.java b/src/com/oracle/java8/associate/test/FunctionalTest.java
index 19204ae..4e7b5f7 100644
--- a/src/com/oracle/java8/associate/test/FunctionalTest.java
+++ b/src/com/oracle/java8/associate/test/FunctionalTest.java
@@ -1,6 +1,8 @@
 package com.oracle.java8.associate.test;
 
 import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Supplier;
 
 public class FunctionalTest {
 
@@ -14,6 +16,15 @@ public class FunctionalTest {
 		EmployeeFactory factory = Employee::new;
 		Employee employee = factory.getEmployee("John Hammond", 25);
 		System.out.println(employee);
+
+		Function<Object, String> convert = FunctionalTest::convert;
+		String ciao = convert.apply("Ciao");
+		System.out.println(ciao);
+	}
+
+	private static String convert(Object o) {
+		Function<Object, String> f = obj -> obj.toString();
+		return f.apply(o);
 	}
 }
 
diff --git a/src/com/oracle/java8/associate/test/StringTest.java b/src/com/oracle/java8/associate/test/StringTest.java
index 5579ae4..df389e7 100644
--- a/src/com/oracle/java8/associate/test/StringTest.java
+++ b/src/com/oracle/java8/associate/test/StringTest.java
@@ -20,5 +20,13 @@ public class StringTest {
 		System.out.println(sb.capacity());
 		System.out.println(sb.toString());
 		System.out.println(s.substring(0, 4));
+
+		String s1 = "Java";
+		String[] s2 = {"J", "a", "v", "a"};
+		String s3 = "";
+		for (String elem : s2) {
+			s3 = s3 + elem;
+		}
+		System.out.println(s1 == s3);
 	}
 }
