diff --git a/.gitattributes b/.gitattributes
index a6344aac8c09253b3b630fb776ae94478aa0275b..1287ae338bb401edd5038ecb1cd1b8a928ec73b1 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -33,3 +33,8 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
+01[[:space:]]-[[:space:]]Introduction/002[[:space:]]Communication[[:space:]]plan.mp4 filter=lfs diff=lfs merge=lfs -text
+01[[:space:]]-[[:space:]]Introduction/001[[:space:]]Why[[:space:]]Java[[:space:]]and[[:space:]]why[[:space:]]this[[:space:]]course[[:space:]]What[[:space:]]is[[:space:]]JDK,[[:space:]]JRE[[:space:]]and[[:space:]]JVM.mp4 filter=lfs diff=lfs merge=lfs -text
+01[[:space:]]-[[:space:]]Introduction/004[[:space:]]Unlimited[[:space:]]access[[:space:]]to[[:space:]]'Learn[[:space:]]IT'[[:space:]]application[[:space:]]for[[:space:]]students.mp4 filter=lfs diff=lfs merge=lfs -text
+02[[:space:]]-[[:space:]]Java[[:space:]]Basics/004[[:space:]]Homework[[:space:]]Solution[[:space:]].bat[[:space:]]file[[:space:]]creation.mp4 filter=lfs diff=lfs merge=lfs -text
+02[[:space:]]-[[:space:]]Java[[:space:]]Basics/003[[:space:]]First[[:space:]]application[[:space:]]Hello[[:space:]]World[[:space:]]App.mp4 filter=lfs diff=lfs merge=lfs -text
diff --git a/01 - Introduction/001 Homework.url b/01 - Introduction/001 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..5ef3278eafc1cf57ac4ccb57f7adc2d9ab72d11b
--- /dev/null
+++ b/01 - Introduction/001 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1c3didDgBNKOK87MOC_9OmXLWVX08l1Y15v9PbGlH_1s/edit?usp=sharing
\ No newline at end of file
diff --git a/01 - Introduction/001 Why Java and why this course What is JDK, JRE and JVM.mp4 b/01 - Introduction/001 Why Java and why this course What is JDK, JRE and JVM.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..e4945a3f5631c043fbe435a007bc1d06fc083c01
--- /dev/null
+++ b/01 - Introduction/001 Why Java and why this course What is JDK, JRE and JVM.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:17ea356aa32b902f5154cc89759791cb347e1299aef3796c5a3480e3a22593ff
+size 80786044
diff --git a/01 - Introduction/001 Why Java and why this course What is JDK, JRE and JVM_en.srt b/01 - Introduction/001 Why Java and why this course What is JDK, JRE and JVM_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..a189dc9422fcff886fb4247daec4ddd4e701e512
--- /dev/null
+++ b/01 - Introduction/001 Why Java and why this course What is JDK, JRE and JVM_en.srt
@@ -0,0 +1,460 @@
+1
+00:00:05,000 --> 00:00:10,000
+Today, we won't do any coding today we'll have introductory lesson to let you understand what this
+
+2
+00:00:10,000 --> 00:00:12,000
+training course is about and what we'll learn.
+
+3
+00:00:13,000 --> 00:00:15,000
+Here's our agenda for today.
+
+4
+00:00:15,000 --> 00:00:19,000
+So, first of all, I want to be completely honest and transparent with you.
+
+5
+00:00:19,000 --> 00:00:23,000
+Nobody would hire you just because, you know, Java history.
+
+6
+00:00:23,000 --> 00:00:29,000
+But still, I think this is part of your general education as a software engineer and will be interesting
+
+7
+00:00:29,000 --> 00:00:30,000
+for you to know.
+
+8
+00:00:30,000 --> 00:00:36,000
+Java was started as a project called Org by James Gosling in June 1990.
+
+9
+00:00:36,000 --> 00:00:43,000
+First goslings goal was to implement a virtual machine and the language that had a familiar connotation,
+
+10
+00:00:43,000 --> 00:00:47,000
+but with greater uniformity and simplicity and C or C++.
+
+11
+00:00:48,000 --> 00:00:51,000
+The first public implementation was Java Version one.
+
+12
+00:00:51,000 --> 00:00:58,000
+In 1990, Fyffes Orch was renamed as Java because it was already a trademark by Óg Technologies.
+
+13
+00:00:59,000 --> 00:01:05,000
+Java made the promise of write once run anywhere with free runtime on all popular platforms.
+
+14
+00:01:06,000 --> 00:01:12,000
+Major Web browsers soon incorporated it into their standard configuration insecure epaulet configuration.
+
+15
+00:01:13,000 --> 00:01:17,000
+Java considered to be one of the most popular programming languages.
+
+16
+00:01:17,000 --> 00:01:23,000
+Nowadays, a lot of people who are choosing which programming language to learn first opt for Java platform
+
+17
+00:01:23,000 --> 00:01:24,000
+independence.
+
+18
+00:01:24,000 --> 00:01:29,000
+Multitracking security is to learn some of the reasons of this back.
+
+19
+00:01:29,000 --> 00:01:35,000
+That time, Sun Microsystems supported Java development, but Sun Microsystems was acquired by Oracle
+
+20
+00:01:35,000 --> 00:01:37,000
+in January 2010.
+
+21
+00:01:37,000 --> 00:01:41,000
+From that time, Oracle supports and developed Java as a platform.
+
+22
+00:01:42,000 --> 00:01:46,000
+You will notice that official Java documentation is located on Oracle resources.
+
+23
+00:01:47,000 --> 00:01:52,000
+So if you just start to learn programming, you might be wondering why you should start learning Java.
+
+24
+00:01:52,000 --> 00:01:56,000
+What advantages does it have over other programming languages here?
+
+25
+00:01:56,000 --> 00:01:57,000
+A few reasons.
+
+26
+00:01:58,000 --> 00:02:01,000
+Probably the first reason is Java is easy to learn.
+
+27
+00:02:02,000 --> 00:02:06,000
+Java doesn't require you to know anything about memory management to get started.
+
+28
+00:02:06,000 --> 00:02:11,000
+You don't need to worry how to allocate memory for data, how to release memory afterwards.
+
+29
+00:02:11,000 --> 00:02:16,000
+GBM and garbage collector I in charge of all memory management instead of you.
+
+30
+00:02:17,000 --> 00:02:23,000
+Java is simpler, the syntax is much more readable and c C++ or any other language.
+
+31
+00:02:23,000 --> 00:02:24,000
+Java.
+
+32
+00:02:24,000 --> 00:02:27,000
+I strongly typed language which gets many newbie mistakes.
+
+33
+00:02:28,000 --> 00:02:31,000
+Java source code should be compiler to the bytecode.
+
+34
+00:02:31,000 --> 00:02:37,000
+Java compiler won't let you to compile code which will contain broken syntax or wouldn't be executed
+
+35
+00:02:37,000 --> 00:02:37,000
+on GBM.
+
+36
+00:02:38,000 --> 00:02:42,000
+Also, Java compiler will point out where exactly you have mistakes.
+
+37
+00:02:42,000 --> 00:02:45,000
+That helps a lot to junior developers.
+
+38
+00:02:45,000 --> 00:02:48,000
+Java can do everything by saying this.
+
+39
+00:02:48,000 --> 00:02:54,000
+I mean with Java you have a tool which will allow you to create applications of any level of complexity.
+
+40
+00:02:55,000 --> 00:03:01,000
+You will be able to implement mobile applications, desktop applications and complex enterprise solutions.
+
+41
+00:03:01,000 --> 00:03:05,000
+Huge community and how this can help you.
+
+42
+00:03:05,000 --> 00:03:06,000
+Let me explain.
+
+43
+00:03:06,000 --> 00:03:13,000
+Java has strong community support, no matter what kind of questions, doubt or issue you have, Google
+
+44
+00:03:13,000 --> 00:03:15,000
+can find answers for you.
+
+45
+00:03:15,000 --> 00:03:21,000
+If not Google, then stack overflow Java forums and a lot of other communities are there to help you
+
+46
+00:03:21,000 --> 00:03:21,000
+out.
+
+47
+00:03:22,000 --> 00:03:27,000
+This is really the single biggest reason I suggest beginners learn to code using Java, because when
+
+48
+00:03:27,000 --> 00:03:32,000
+you are starting to learn to program, you'll face with many different kinds of issues to understand
+
+49
+00:03:32,000 --> 00:03:38,000
+for both programming fundamentals and Java, because there are millions of Java developers around and
+
+50
+00:03:38,000 --> 00:03:40,000
+they communicate there to support.
+
+51
+00:03:40,000 --> 00:03:45,000
+Most likely you will find answers quickly without getting frustrated and disappointed.
+
+52
+00:03:46,000 --> 00:03:47,000
+And that's a reason to learn.
+
+53
+00:03:47,000 --> 00:03:48,000
+Java is Android.
+
+54
+00:03:48,000 --> 00:03:54,000
+I won't lie to you because I don't know the exact numbers, but I think you would agree with me that
+
+55
+00:03:54,000 --> 00:03:58,000
+Android is most popular operating system for mobile devices in the world.
+
+56
+00:03:58,000 --> 00:04:03,000
+If I'm not mistaken, around 70 percent of mobile devices are powered by Android.
+
+57
+00:04:04,000 --> 00:04:08,000
+I rent a car recently during the business trip and it was Android after.
+
+58
+00:04:08,000 --> 00:04:15,000
+Inside it, I went to the electronics store and there is a fridge with a computer built in and it was
+
+59
+00:04:15,000 --> 00:04:17,000
+also powered by Android.
+
+60
+00:04:17,000 --> 00:04:18,000
+What does it mean for you?
+
+61
+00:04:19,000 --> 00:04:22,000
+That means knowing Java, you have a lot of job opportunities.
+
+62
+00:04:23,000 --> 00:04:30,000
+GBM, a lot of modern languages realize that it is a good idea to use Java Virtual Machine to execute
+
+63
+00:04:30,000 --> 00:04:35,000
+on programs because it's reliable, because it works fast, etc..
+
+64
+00:04:35,000 --> 00:04:42,000
+That's why such language is Escala Kotlin Guruji also use Java Virtual Machine to execute programs for
+
+65
+00:04:42,000 --> 00:04:42,000
+you.
+
+66
+00:04:42,000 --> 00:04:48,000
+It means that knowing how GBM works, it would be easier to get up to speed with other languages.
+
+67
+00:04:48,000 --> 00:04:52,000
+One of the biggest Java advantages is platform independence.
+
+68
+00:04:52,000 --> 00:04:58,000
+Companies don't want to invest money to create programs for Mac operating system only and after that
+
+69
+00:04:58,000 --> 00:05:02,000
+spend more money to create applications for Windows based systems.
+
+70
+00:05:02,000 --> 00:05:08,000
+That's why a lot of companies opt for Java for own projects, we partially touch this topic quickly
+
+71
+00:05:08,000 --> 00:05:09,000
+during the previous slide.
+
+72
+00:05:09,000 --> 00:05:16,000
+But answering your question, what you will be able to implement with Jawa, the answer is with Java.
+
+73
+00:05:16,000 --> 00:05:19,000
+You will be able to implement mobile, desktop and web applications.
+
+74
+00:05:20,000 --> 00:05:25,000
+And no matter what you would read in the Internet, trust me, even today, company still creates desktop
+
+75
+00:05:25,000 --> 00:05:27,000
+applications for different purposes.
+
+76
+00:05:27,000 --> 00:05:31,000
+And Java is also one of the best options for such purposes.
+
+77
+00:05:32,000 --> 00:05:34,000
+So today you heard a lot about GBM.
+
+78
+00:05:34,000 --> 00:05:38,000
+Let's take a closer look what GBM, Jerry and JDK are.
+
+79
+00:05:39,000 --> 00:05:41,000
+JVM stands for Java Virtual Machine.
+
+80
+00:05:42,000 --> 00:05:48,000
+This is program written in C++, which is responsible for converting bytecode to machine specific code.
+
+81
+00:05:48,000 --> 00:05:53,000
+DEVAM is the reason why Java is language considered to be platform independent.
+
+82
+00:05:53,000 --> 00:05:56,000
+You will compile your source code to Java bytecode.
+
+83
+00:05:56,000 --> 00:06:03,000
+After that, you execute your bytecode on GBM and there are a lot of implementations of GBM for different
+
+84
+00:06:03,000 --> 00:06:04,000
+operating systems.
+
+85
+00:06:04,000 --> 00:06:12,000
+So to execute Java code on MacBook, you just need GBM for Mac operating system installed Zaya to run
+
+86
+00:06:12,000 --> 00:06:13,000
+bytecode on Windows.
+
+87
+00:06:13,000 --> 00:06:17,000
+You just need Juban for Windows operating system installed there.
+
+88
+00:06:18,000 --> 00:06:24,000
+The GBM is used for both translate the market into the machine language for a particular computer and
+
+89
+00:06:24,000 --> 00:06:28,000
+actually execute the corresponding machine language instructions as well.
+
+90
+00:06:28,000 --> 00:06:32,000
+Without the GBM, you can't run a job application.
+
+91
+00:06:33,000 --> 00:06:36,000
+Jerry stands for Java Runtime Environment.
+
+92
+00:06:37,000 --> 00:06:43,000
+Jerry includes JVM in itself, plus Java binaries and classes which are needed to execute program.
+
+93
+00:06:44,000 --> 00:06:49,000
+Back in the past I developed desktop application which I used to sell in the Internet domains.
+
+94
+00:06:49,000 --> 00:06:51,000
+Its application run on the computer.
+
+95
+00:06:51,000 --> 00:06:58,000
+So my clients, I had a journey to my installation file that what I needed to do to not force my clients
+
+96
+00:06:58,000 --> 00:07:00,000
+to install Java by themselves.
+
+97
+00:07:01,000 --> 00:07:03,000
+Jaedicke stands for Java Development Kit.
+
+98
+00:07:03,000 --> 00:07:11,000
+Judicature contains GBM and Jerry plus all tools which are necessary for development of Java programs.
+
+99
+00:07:11,000 --> 00:07:17,000
+For example, you need to have compiler to compile your Java source code to bytecode compiler goals
+
+100
+00:07:17,000 --> 00:07:20,000
+which adjudicate but not included in January.
+
+101
+00:07:20,000 --> 00:07:24,000
+Let's pretend you need to make your application line by line.
+
+102
+00:07:24,000 --> 00:07:31,000
+You have the Barga in GDP because it is not needed in January or you want to create documentation out
+
+103
+00:07:31,000 --> 00:07:32,000
+from your source code.
+
+104
+00:07:32,000 --> 00:07:33,000
+In JDK.
+
+105
+00:07:33,000 --> 00:07:37,000
+You have Javadoc program which will generate documentation from your source code.
+
+106
+00:07:37,000 --> 00:07:43,000
+So if you're a developer, you need to educate, will download and install, adjudicate in the next
+
+107
+00:07:43,000 --> 00:07:43,000
+lesson.
+
+108
+00:07:44,000 --> 00:07:46,000
+That is all what I got for you for today.
+
+109
+00:07:47,000 --> 00:07:49,000
+Let's take a look at your homework.
+
+110
+00:07:49,000 --> 00:07:52,000
+Your first homework wouldn't be very complicated.
+
+111
+00:07:52,000 --> 00:07:56,000
+Here's the list of recommended literature and books to read during the training course.
+
+112
+00:07:57,000 --> 00:08:02,000
+You can find them in the Google and Download is a PDF version or to buy hard copy.
+
+113
+00:08:02,000 --> 00:08:07,000
+Here is also a chapter to read by the next lesson during the video lessons.
+
+114
+00:08:07,000 --> 00:08:13,000
+Definitely I will cover core concepts, best practices, but still I would optionally recommend it to
+
+115
+00:08:13,000 --> 00:08:16,000
+read books to have different point of view on the same topics.
+
diff --git a/01 - Introduction/002 Communication plan.mp4 b/01 - Introduction/002 Communication plan.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..73cf4d746c94b43dea0cd9bf4d66280f4aea6e8e
--- /dev/null
+++ b/01 - Introduction/002 Communication plan.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:14afd60948dfa870720f8e6e786d498526e410f0faf3caff14679cb1107300e3
+size 82578060
diff --git a/01 - Introduction/002 Communication plan_en.srt b/01 - Introduction/002 Communication plan_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..4f581c88fc4c39023c0b8e9ad546fef841e35780
--- /dev/null
+++ b/01 - Introduction/002 Communication plan_en.srt
@@ -0,0 +1,244 @@
+1
+00:00:05,000 --> 00:00:11,000
+In this video, we'll discuss how we are going to communicate to make sure the cloning process is efficient.
+
+2
+00:00:12,000 --> 00:00:17,000
+We'll review where to ask questions, how to ask questions, and we'll review communication channels
+
+3
+00:00:17,000 --> 00:00:17,000
+which exist.
+
+4
+00:00:17,000 --> 00:00:20,000
+So you could reach out to me to start with.
+
+5
+00:00:20,000 --> 00:00:26,000
+I would like to emphasize the importance of establishing communication during this course, because
+
+6
+00:00:26,000 --> 00:00:31,000
+one of the main differences between offline and online learning is availability of the kutcha.
+
+7
+00:00:32,000 --> 00:00:38,000
+When I teach offline, I can just take my students laptop and is a to help him to fix, quote, understand
+
+8
+00:00:38,000 --> 00:00:44,000
+the root cause of the issue and help students understand better what is wrong during online learning.
+
+9
+00:00:44,000 --> 00:00:46,000
+It doesn't work that way.
+
+10
+00:00:46,000 --> 00:00:51,000
+So what I would suggest I encourage you to ask as many questions as you can.
+
+11
+00:00:51,000 --> 00:00:57,000
+You can leave all your questions and the comments right under the vigor in case there will be interesting
+
+12
+00:00:57,000 --> 00:00:58,000
+questions.
+
+13
+00:00:58,000 --> 00:01:01,000
+I will even make of your answers to some of those.
+
+14
+00:01:01,000 --> 00:01:08,000
+But to be able to answer your questions in efficient way, please put as much details to your question
+
+15
+00:01:08,000 --> 00:01:08,000
+as you can.
+
+16
+00:01:09,000 --> 00:01:14,000
+For example, here two examples, which describes the same issue as the first one.
+
+17
+00:01:14,000 --> 00:01:16,000
+And could you please help?
+
+18
+00:01:16,000 --> 00:01:19,000
+When I try to run this code, I have compilation error.
+
+19
+00:01:19,000 --> 00:01:20,000
+What should I do?
+
+20
+00:01:21,000 --> 00:01:22,000
+So here are a few questions.
+
+21
+00:01:22,000 --> 00:01:29,000
+What is this called quote from lecture or from your homework or from examples provided when you see
+
+22
+00:01:29,000 --> 00:01:32,000
+compilation error, how does the error message look like?
+
+23
+00:01:33,000 --> 00:01:38,000
+And since I don't have physical access to your laptop, answering your question can take longer than
+
+24
+00:01:38,000 --> 00:01:40,000
+it was initially expected by you.
+
+25
+00:01:41,000 --> 00:01:45,000
+Let's review the second example and we want to try to execute this code.
+
+26
+00:01:46,000 --> 00:01:52,000
+I see compilation error skarner cannot be resolved to a type where I should look at to fix this issue.
+
+27
+00:01:53,000 --> 00:01:58,000
+From this message, it's clear to me that most likely you forgot to write an impact statement on the
+
+28
+00:01:58,000 --> 00:02:04,000
+top of your Java file, and it will be easy for me to help you with answer and code example to fix.
+
+29
+00:02:05,000 --> 00:02:06,000
+So hope you feel the difference.
+
+30
+00:02:07,000 --> 00:02:10,000
+What are the communications channels you can use?
+
+31
+00:02:10,000 --> 00:02:14,000
+I'm here to help you to find your first job in software engineering.
+
+32
+00:02:15,000 --> 00:02:19,000
+We can connect and link them and I can confirm your skills on your request.
+
+33
+00:02:19,000 --> 00:02:21,000
+Why you need to use LinkedIn.
+
+34
+00:02:21,000 --> 00:02:27,000
+Recruiters in I.T. consultancy often use the social network while looking for candidates.
+
+35
+00:02:27,000 --> 00:02:31,000
+So feel free to add me to your network and we'll stay in touch.
+
+36
+00:02:32,000 --> 00:02:38,000
+Also, in case you'll have some ideas to run your own startup, do not hesitate to reach out directly
+
+37
+00:02:38,000 --> 00:02:39,000
+to me and LinkedIn.
+
+38
+00:02:39,000 --> 00:02:46,000
+My company is always looking for fresh ideas and we can think through how we can build when win collaboration.
+
+39
+00:02:47,000 --> 00:02:47,000
+Instagram.
+
+40
+00:02:48,000 --> 00:02:49,000
+I love Instagram.
+
+41
+00:02:50,000 --> 00:02:54,000
+We can use Instagram for informal communication, will become friends.
+
+42
+00:02:54,000 --> 00:02:59,000
+Who knows, probably in the future you will implement a new Facebook and I will be able to apply for
+
+43
+00:02:59,000 --> 00:03:02,000
+a job in your company or we will build something together.
+
+44
+00:03:02,000 --> 00:03:08,000
+I do love traveling and probably sometime in the future I will be able to meet anyone who are watching
+
+45
+00:03:08,000 --> 00:03:10,000
+this video in their country.
+
+46
+00:03:10,000 --> 00:03:12,000
+Or you can visit me if you wish.
+
+47
+00:03:12,000 --> 00:03:14,000
+Subscribe to me on Instagram.
+
+48
+00:03:14,000 --> 00:03:16,000
+You can find my nickname here.
+
+49
+00:03:17,000 --> 00:03:22,000
+Also, important thing to know in case a new course will be started or some events are going to happen,
+
+50
+00:03:22,000 --> 00:03:25,000
+like online streams on YouTube or something else.
+
+51
+00:03:25,000 --> 00:03:31,000
+You will learn this from the post or from the Instagram stories and definitely Facebook.
+
+52
+00:03:31,000 --> 00:03:35,000
+I don't spend here too much time and I'm replying faster in Instagram.
+
+53
+00:03:35,000 --> 00:03:39,000
+But in case you don't have Instagram, I'm still thinking how to reach out to me.
+
+54
+00:03:39,000 --> 00:03:43,000
+You can find me in Facebook to support our community.
+
+55
+00:03:43,000 --> 00:03:46,000
+We also have telegrammed Channel and Trigram Channel.
+
+56
+00:03:46,000 --> 00:03:52,000
+You will find the latest updates about promotional deals, about special offers, discounts, job opportunities
+
+57
+00:03:52,000 --> 00:03:53,000
+and lots more.
+
+58
+00:03:54,000 --> 00:03:58,000
+Subscribe to our telegrammed channel now to not miss important updates and news.
+
+59
+00:03:59,000 --> 00:04:01,000
+That's all what I wanted to share with you guys.
+
+60
+00:04:01,000 --> 00:04:07,000
+So now I'm sure that we are able to build communication which will help us to build our learning process
+
+61
+00:04:07,000 --> 00:04:09,000
+even in a more efficient manner.
+
diff --git a/01 - Introduction/002 Facebook-Page-with-Udemy-Coupons-from-Learn-IT-University.url b/01 - Introduction/002 Facebook-Page-with-Udemy-Coupons-from-Learn-IT-University.url
new file mode 100644
index 0000000000000000000000000000000000000000..d4fdaa0d8d0c5ff8ab2dd553fea5ef3d87d14368
--- /dev/null
+++ b/01 - Introduction/002 Facebook-Page-with-Udemy-Coupons-from-Learn-IT-University.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://www.facebook.com/learnituniversity/
\ No newline at end of file
diff --git a/01 - Introduction/002 Facebook-of-the-Tutor.url b/01 - Introduction/002 Facebook-of-the-Tutor.url
new file mode 100644
index 0000000000000000000000000000000000000000..fa3e352b4e5d5eeee8c7ded847ab2e8dc1564a28
--- /dev/null
+++ b/01 - Introduction/002 Facebook-of-the-Tutor.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://www.facebook.com/andrey.pyatakha
\ No newline at end of file
diff --git a/01 - Introduction/002 IT-Bulls-Company-Official-Web-Site.url b/01 - Introduction/002 IT-Bulls-Company-Official-Web-Site.url
new file mode 100644
index 0000000000000000000000000000000000000000..98211db0d9f49c705df4aa87c75134c5032c3e3a
--- /dev/null
+++ b/01 - Introduction/002 IT-Bulls-Company-Official-Web-Site.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://it-bulls.com/
\ No newline at end of file
diff --git a/01 - Introduction/002 Instagram-of-the-Tutor.url b/01 - Introduction/002 Instagram-of-the-Tutor.url
new file mode 100644
index 0000000000000000000000000000000000000000..c04503f7000f786f30e87c08736d75cd62f4b418
--- /dev/null
+++ b/01 - Introduction/002 Instagram-of-the-Tutor.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://www.instagram.com/andrey_pyatakha/
\ No newline at end of file
diff --git a/01 - Introduction/002 LinkedIn-IT-Bulls-company-official-page.url b/01 - Introduction/002 LinkedIn-IT-Bulls-company-official-page.url
new file mode 100644
index 0000000000000000000000000000000000000000..4243ef9d9761c91f5ac62669fea8b4276f3bb7be
--- /dev/null
+++ b/01 - Introduction/002 LinkedIn-IT-Bulls-company-official-page.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://www.linkedin.com/company/14782153
\ No newline at end of file
diff --git a/01 - Introduction/002 LinkedIn-of-the-Tutor.url b/01 - Introduction/002 LinkedIn-of-the-Tutor.url
new file mode 100644
index 0000000000000000000000000000000000000000..2ec2a4e7982ada1bcb3d30296654718db1552717
--- /dev/null
+++ b/01 - Introduction/002 LinkedIn-of-the-Tutor.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://www.linkedin.com/in/andrii-piatakha/
\ No newline at end of file
diff --git a/01 - Introduction/002 Patreon-account-of-the-Tutor.url b/01 - Introduction/002 Patreon-account-of-the-Tutor.url
new file mode 100644
index 0000000000000000000000000000000000000000..09e81d7975ac27f968a8b9d4d61d193ec75563ce
--- /dev/null
+++ b/01 - Introduction/002 Patreon-account-of-the-Tutor.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://www.patreon.com/Andrii_Piatakha
\ No newline at end of file
diff --git a/01 - Introduction/002 Telegram-Channel-with-Latest-News-and-important-information.url b/01 - Introduction/002 Telegram-Channel-with-Latest-News-and-important-information.url
new file mode 100644
index 0000000000000000000000000000000000000000..ab3d6704064fece751fc5308c7e72856cf7fb12b
--- /dev/null
+++ b/01 - Introduction/002 Telegram-Channel-with-Latest-News-and-important-information.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1zZpe3bVqS6LYnUUIePL8eXm8p7jSgvnt9hRW7tGRHnw/edit?usp=sharing
\ No newline at end of file
diff --git a/01 - Introduction/002 Youtube-channel-with-free-lessons-and-blog.url b/01 - Introduction/002 Youtube-channel-with-free-lessons-and-blog.url
new file mode 100644
index 0000000000000000000000000000000000000000..cd3e6143b6a2c081fffa9fd185d60d95fd831d31
--- /dev/null
+++ b/01 - Introduction/002 Youtube-channel-with-free-lessons-and-blog.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://www.youtube.com/c/ITBulls
\ No newline at end of file
diff --git a/01 - Introduction/003 Tips to Improve Your Course Taking Experience.html b/01 - Introduction/003 Tips to Improve Your Course Taking Experience.html
new file mode 100644
index 0000000000000000000000000000000000000000..52ef1040b1336bbc159f10181e1ab4ae6b1f9326
--- /dev/null
+++ b/01 - Introduction/003 Tips to Improve Your Course Taking Experience.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Tips to Improve Your Course Taking Experience
+
+
+
+
+
+
+
Tips to Improve Your Course Taking Experience
+
Hello team,
A really quick note before we continue to help improve your course-taking experience.
- In the video player - you can change the speed of the video. Just change the playback rate
- You can turn on subtitles. They will not be 100% accurate, because all captions are auto-generated but still, this may help you to understand some pieces better.
- And if you want you can open the full transcript of the lesson. This is the auto-generated transcript, that's why it might not be 100% accurate.
Lastly, Udemy will soon prompt you for a review, if this hasn't been done so far already. Your review truly helps other students know whether this is the right course for them. It also helps me know whether I'm doing a great course, or if there are specific areas for improvement.
If you are not ready to leave a review - you can click the 'Ask me later' button. But if you do leave a review I truly appreciate it and thank you.
Alright. Let's continue. I hope you enjoy the rest of the course :)
+
+
+
+
diff --git a/01 - Introduction/004 Learn-IT-application-in-Play-Market.url b/01 - Introduction/004 Learn-IT-application-in-Play-Market.url
new file mode 100644
index 0000000000000000000000000000000000000000..1fd2c6137261c7ea5bf5603a0223812df856d617
--- /dev/null
+++ b/01 - Introduction/004 Learn-IT-application-in-Play-Market.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://play.google.com/store/apps/details?id=com.itbulls.learnit.java.certification
\ No newline at end of file
diff --git a/01 - Introduction/004 Page-where-you-can-generate-FREE-bonus-code-for-your-self-to-remove-limits-in-Application.url b/01 - Introduction/004 Page-where-you-can-generate-FREE-bonus-code-for-your-self-to-remove-limits-in-Application.url
new file mode 100644
index 0000000000000000000000000000000000000000..160dadec42212356345756b2296dc2578abe1b17
--- /dev/null
+++ b/01 - Introduction/004 Page-where-you-can-generate-FREE-bonus-code-for-your-self-to-remove-limits-in-Application.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://it-bulls.com/learn-it/generatePromoCodes.html
\ No newline at end of file
diff --git a/01 - Introduction/004 Unlimited access to 'Learn IT' application for students.mp4 b/01 - Introduction/004 Unlimited access to 'Learn IT' application for students.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..362098ffa8a141ac15dc509b7630d791ac4b70ad
--- /dev/null
+++ b/01 - Introduction/004 Unlimited access to 'Learn IT' application for students.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:70a33e9858ae4f12d760e8966b36e1b1f18e4436c5198bbfaf9060fa97196030
+size 23605092
diff --git a/01 - Introduction/004 Unlimited access to 'Learn IT' application for students_en.srt b/01 - Introduction/004 Unlimited access to 'Learn IT' application for students_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..d05ce1a3923495c39ec9772dcd5b6e53eb303bfb
--- /dev/null
+++ b/01 - Introduction/004 Unlimited access to 'Learn IT' application for students_en.srt
@@ -0,0 +1,168 @@
+1
+00:00:05,000 --> 00:00:11,000
+Today, I will share with you information how my students can get unlimited access to learning at application,
+
+2
+00:00:11,000 --> 00:00:14,000
+which will help you to be prepared for an interview.
+
+3
+00:00:14,000 --> 00:00:18,000
+Also, you can use this app to test yourself during the training course.
+
+4
+00:00:18,000 --> 00:00:24,000
+In the app, you can find different test group by topics with possibility to view correct answers with
+
+5
+00:00:24,000 --> 00:00:25,000
+explanations afterwards.
+
+6
+00:00:26,000 --> 00:00:31,000
+Right now, this application only available for Android devices and we are working on releasing an app
+
+7
+00:00:31,000 --> 00:00:34,000
+store to make it available for iPhones.
+
+8
+00:00:34,000 --> 00:00:39,000
+Also inside the app, you can complete certification, get certificate, which will prove your knowledge.
+
+9
+00:00:39,000 --> 00:00:46,000
+You can use the link to the certificate in your resume or in your LinkedIn profile like I do for everyone.
+
+10
+00:00:46,000 --> 00:00:52,000
+Each certification Gascoigne's, which you can earn inside the application, but only for my students.
+
+11
+00:00:52,000 --> 00:00:55,000
+There is a bonus code which removes this restriction.
+
+12
+00:00:55,000 --> 00:01:00,000
+And now I will show you how you can get unlimited number of attempts to complete certification inside
+
+13
+00:01:00,000 --> 00:01:01,000
+the app.
+
+14
+00:01:02,000 --> 00:01:05,000
+So first of all, you need to download and install the application on your mobile.
+
+15
+00:01:06,000 --> 00:01:09,000
+After that, you need to register your account.
+
+16
+00:01:09,000 --> 00:01:16,000
+You can use login with Facebook button to create account in one click here in case you try to buy certification.
+
+17
+00:01:16,000 --> 00:01:20,000
+You won't be able to do that because you don't have enough coins.
+
+18
+00:01:20,000 --> 00:01:24,000
+Now go to my account settings in case you use the login with Facebook.
+
+19
+00:01:24,000 --> 00:01:26,000
+Your nickname by default might look like this.
+
+20
+00:01:28,000 --> 00:01:32,000
+In case you use registration form, you can choose nicknamed Dewan's Registration.
+
+21
+00:01:33,000 --> 00:01:36,000
+But this new claim, you can always change.
+
+22
+00:01:36,000 --> 00:01:38,000
+So let's change it to Andre Batalha.
+
+23
+00:01:39,000 --> 00:01:46,000
+Now you need to open a special page on our website, you can find the link here and also added to description
+
+24
+00:01:46,000 --> 00:01:47,000
+to this video.
+
+25
+00:01:48,000 --> 00:01:50,000
+Guideline is simple based nickname here.
+
+26
+00:01:55,000 --> 00:02:03,000
+And now use a special authorization token that I shared only with my students, a capital C lower case,
+
+27
+00:02:03,000 --> 00:02:08,000
+our capital 18, K Capital L Capital W..
+
+28
+00:02:09,000 --> 00:02:12,000
+I will also leave this information in the lesson description.
+
+29
+00:02:12,000 --> 00:02:19,000
+So once you see confirmation that defecation go back to the application, no, again, to account settings
+
+30
+00:02:19,000 --> 00:02:25,000
+and now you'll see that you have promo codes set up and now you can test certification without any limitations.
+
+31
+00:02:25,000 --> 00:02:27,000
+Congratulations, Jim.
+
+32
+00:02:27,000 --> 00:02:32,000
+In case you like this app, please share it with your friends in the social networks.
+
+33
+00:02:32,000 --> 00:02:34,000
+I would much appreciate this.
+
+34
+00:02:34,000 --> 00:02:39,000
+Also, in case you have two more seconds, please read this app in the Google Play market.
+
+35
+00:02:39,000 --> 00:02:42,000
+Your feedback's will help other people to find this application.
+
+36
+00:02:42,000 --> 00:02:48,000
+And if you have ideas or suggestions how we can improve this app, please do not hesitate to write directly
+
+37
+00:02:48,000 --> 00:02:53,000
+to me in Instagram or Facebook or submit feedback form on our website.
+
+38
+00:02:53,000 --> 00:02:59,000
+I need this application with all my heart for you and also come up with the best test, which I can
+
+39
+00:02:59,000 --> 00:03:03,000
+think of and which some companies use nowadays in the interview process.
+
+40
+00:03:03,000 --> 00:03:09,000
+Thanks in advance team for sharing information about this app in your social networks and for leaving
+
+41
+00:03:09,000 --> 00:03:12,000
+feedback on the page of application in Google Play market.
+
+42
+00:03:12,000 --> 00:03:15,000
+Be sure your contribution really matters.
+
diff --git a/01 - Introduction/005 Additional Free Learning Materials to Use During the Course.html b/01 - Introduction/005 Additional Free Learning Materials to Use During the Course.html
new file mode 100644
index 0000000000000000000000000000000000000000..811f974faaeb42cf135400291848c7c6ad8f93fd
--- /dev/null
+++ b/01 - Introduction/005 Additional Free Learning Materials to Use During the Course.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Additional Free Learning Materials to Use During the Course
+
+
+
+
+
+
+
Additional Free Learning Materials to Use During the Course
+
🎉 Attention Students! 🎉
Unlock a treasure of knowledge with a special tool just for you! Enhance your learning experience by exploring my blog, where a wealth of information is at your fingertips. I put into this blog all my work experience to make it available for you :)
📚 Here's how to make the most of it:
Search Bar Power: Use the search bar on the main page to dive deep into any topic you’re studying. Just type in your keywords and discover a variety of articles packed with valuable insights.
Insert key phrases that you are looking for. For example: "String formatting", "Multithreading", "ArrayBlockingQueue", etc. and click "Search" button
Explore articles that are related to your search term. On the bottom of the page you can change page of the search result. This is the most complete base of articles on different Java Related Topics and it is available for your for free.
Open article that you want and enjoy! You can find the search bar in the side pane in order you can search new article. Or explore latest posts in the sidepane.
Tag Your Interests: Navigate through topics effortlessly by using the tags. Select topics that intrigue you and find a curated list of articles tailored to your interests. You can find related tags at the end of each article, or in the side pane you can see not all but the most popular tags mentioned across the whole website.
Stay Updated: Or just visit the website occasionally - I add interesting articles on a regular basis. Check out the latest posts section in the blog to stay updated with new content.
Make the most of these resources to excel in your studies. Happy learning! 🚀
Before we jump into installing Java on your computer, let’s take a moment to talk about Java versions—and why you shouldn’t stress about them as you begin your coding journey.
Here’s the deal: the version of Java you use doesn’t matter much when you’re starting out. Whether it’s Java 8, Java 11, or the latest release, the fundamentals of Java remain rock solid. Thanks to Java’s famous backward compatibility, the code you write today will run on future versions without a hitch.
When you’re learning the basics, the specific version becomes less important and doesn’t play a big role. Most updates in newer Java versions are about under-the-hood improvements: better performance, smarter algorithms, and other technical enhancements that don’t affect your daily coding or the syntax you’ll learn. So, don’t worry—learning Java basics doesn't depend critically on the version.
Now about installing Java! Here’s some good news: the installation process is straightforward and hasn’t changed much over the years. That’s why recreating a new installation tutorial for every Java release isn’t practical—or necessary. Whether it’s Java 8 or the latest version, the steps are essentially the same. In the next lesson, I’ll guide you through downloading and installing Java with this link: https://jdk.java.net/. Feel free to grab the latest version!
Once we’re done with the basics, I’ll introduce you to Java’s newer features and enhancements. You’ll find a dedicated section in this course titled "Java: New Versions," where we’ll explore what’s new in each release with hands-on examples and real-world use cases.
So, let’s roll up our sleeves and get started with installing Java. 🚀 Your journey into the world of programming begins now!
+
+
+
+
diff --git a/02 - Java Basics/002 Homework.url b/02 - Java Basics/002 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..9796a84c18f667f19239784434b654b55855d16a
--- /dev/null
+++ b/02 - Java Basics/002 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/19g5WpFD0Jygpvuda5-PC_rNt3wDJ8d_AICvc4coP0_s/edit?usp=sharing
\ No newline at end of file
diff --git a/02 - Java Basics/002 How-to-set-up-env-variables-on-Mac-OS.url b/02 - Java Basics/002 How-to-set-up-env-variables-on-Mac-OS.url
new file mode 100644
index 0000000000000000000000000000000000000000..5b7eec9261001eacfbab30b4b30b031d10d9bf8f
--- /dev/null
+++ b/02 - Java Basics/002 How-to-set-up-env-variables-on-Mac-OS.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1_p8YAQ3khC8fTkTM4r1oGuGW___XjGTa1DmMGaGMjA8/edit?usp=sharing
\ No newline at end of file
diff --git a/02 - Java Basics/002 JDK Installation_en.srt b/02 - Java Basics/002 JDK Installation_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..40755c96559495e0266642a1ea66155d253fdb15
--- /dev/null
+++ b/02 - Java Basics/002 JDK Installation_en.srt
@@ -0,0 +1,468 @@
+1
+00:00:05,000 --> 00:00:11,000
+Today, we have a very important topic without this knowledge, you won't be able to proceed with this
+
+2
+00:00:11,000 --> 00:00:17,000
+training course because to be able to program in Java, you need to have judical installed on your computer
+
+3
+00:00:17,000 --> 00:00:24,000
+and we will learn which education to choose and how to make sure that Java is properly installed on
+
+4
+00:00:24,000 --> 00:00:25,000
+your computer.
+
+5
+00:00:26,000 --> 00:00:29,000
+The latest version based on today is Java version 13.
+
+6
+00:00:29,000 --> 00:00:31,000
+Oracle has six months release.
+
+7
+00:00:31,000 --> 00:00:36,000
+And so from now on, new version of Java will be released each six months.
+
+8
+00:00:36,000 --> 00:00:40,000
+Does that mean for you that you need to learn Java each six months?
+
+9
+00:00:40,000 --> 00:00:43,000
+Not necessarily that the developers.
+
+10
+00:00:43,000 --> 00:00:44,000
+This can be quite overwhelming.
+
+11
+00:00:45,000 --> 00:00:50,000
+How many applications do have to go back and to update now on how many servers in your data center are
+
+12
+00:00:50,000 --> 00:00:54,000
+constantly needed to be updated to the newest Java release?
+
+13
+00:00:54,000 --> 00:00:56,000
+There are two things developers hate.
+
+14
+00:00:56,000 --> 00:00:59,000
+One of them is a necessary change.
+
+15
+00:00:59,000 --> 00:01:05,000
+It is even crazy to think about keeping several applications or several number of servers up to date
+
+16
+00:01:05,000 --> 00:01:06,000
+with the news release.
+
+17
+00:01:07,000 --> 00:01:14,000
+That is why the concept of an Altius was established, and Java LTE, which stands for long term support
+
+18
+00:01:14,000 --> 00:01:20,000
+release, is a version of Java that will remain the industry standard for several years.
+
+19
+00:01:20,000 --> 00:01:27,000
+To give you an example of this, Java eight was released in 2014 and it's extended support will end
+
+20
+00:01:27,000 --> 00:01:28,000
+by December 20th.
+
+21
+00:01:28,000 --> 00:01:32,000
+Sergius, probably Java eight, is the most popular nowadays.
+
+22
+00:01:32,000 --> 00:01:38,000
+A lot of companies still rely on it and there is no urgent need to upgrade to the newest Java version.
+
+23
+00:01:39,000 --> 00:01:45,000
+Java Eleven is the latest long term support version based on today for educational purposes.
+
+24
+00:01:45,000 --> 00:01:51,000
+I would recommend you to use the latest version of Open JDK, which will allow you to use the most recent
+
+25
+00:01:51,000 --> 00:01:52,000
+and up to date version.
+
+26
+00:01:52,000 --> 00:01:58,000
+And to be completely honest, between version eight and version sitting, there is no dramatic difference
+
+27
+00:01:58,000 --> 00:02:01,000
+which will be noticed by junior developers.
+
+28
+00:02:01,000 --> 00:02:05,000
+There are some of them and we will learn them during the training course.
+
+29
+00:02:05,000 --> 00:02:10,000
+You will also notice that you have Oracle Jaedicke and open jaedicke available for you for the cloud.
+
+30
+00:02:11,000 --> 00:02:16,000
+Probably main difference for you right now is that open the case completely free, including commercial
+
+31
+00:02:16,000 --> 00:02:17,000
+use.
+
+32
+00:02:17,000 --> 00:02:20,000
+Oracle JDK is not free for commercial use.
+
+33
+00:02:21,000 --> 00:02:23,000
+There are also some other differences.
+
+34
+00:02:23,000 --> 00:02:28,000
+For example, when it comes to performance, Oracle is much better regarding the responsiveness and
+
+35
+00:02:28,000 --> 00:02:29,000
+Jovian performance.
+
+36
+00:02:30,000 --> 00:02:36,000
+Oracle, the case fully developed by Oracle Corporation, whereas the ticket is developed by Oracle
+
+37
+00:02:36,000 --> 00:02:38,000
+and the Java community get together.
+
+38
+00:02:38,000 --> 00:02:41,000
+So I recommend you to use open JDK.
+
+39
+00:02:41,000 --> 00:02:46,000
+This will allow you to learn Java platform and to implement powerful applications.
+
+40
+00:02:46,000 --> 00:02:50,000
+Now let me show you how to install the key on the computer from scratch.
+
+41
+00:02:51,000 --> 00:02:54,000
+Go to Google and search for duplicate Java Net.
+
+42
+00:02:58,000 --> 00:02:59,000
+Let's open this link.
+
+43
+00:03:01,000 --> 00:03:02,000
+Select 13.
+
+44
+00:03:03,000 --> 00:03:06,000
+Download these archives for Windows or Mac, respectively.
+
+45
+00:03:07,000 --> 00:03:09,000
+I'm downloading this one.
+
+46
+00:03:10,000 --> 00:03:12,000
+Now, extract archive.
+
+47
+00:03:15,000 --> 00:03:17,000
+Let's have a look what is in here.
+
+48
+00:03:19,000 --> 00:03:25,000
+So here we have been folder, you can find in it all tools and programs which we need to create our
+
+49
+00:03:25,000 --> 00:03:26,000
+Java applications.
+
+50
+00:03:27,000 --> 00:03:29,000
+For example, here you can see Java Javadoc.
+
+51
+00:03:29,000 --> 00:03:35,000
+This is Java Compiler, which compiled our source code, our files written with letters to bytecode.
+
+52
+00:03:36,000 --> 00:03:40,000
+Here's Javadoc application to generate documentation from our source code.
+
+53
+00:03:41,000 --> 00:03:44,000
+In the next lessons, I will show you how it works.
+
+54
+00:03:44,000 --> 00:03:47,000
+Here is Java application to run Java Virtual Machine.
+
+55
+00:03:48,000 --> 00:03:49,000
+Our next steps.
+
+56
+00:03:49,000 --> 00:03:56,000
+Please open a common line in this directory to do this type systemd right here and press enter.
+
+57
+00:03:57,000 --> 00:03:58,000
+So here's our common line.
+
+58
+00:03:59,000 --> 00:04:02,000
+Type Gever Dash version.
+
+59
+00:04:03,000 --> 00:04:08,000
+And press enter now you'll see that you have opened the key version 13 here.
+
+60
+00:04:09,000 --> 00:04:15,000
+And this is completely fine, but try to navigate one level up in your file system, try the city government,
+
+61
+00:04:15,000 --> 00:04:17,000
+also known as change directory.
+
+62
+00:04:17,000 --> 00:04:23,000
+It is a common line share common used to change the current work in the rectory in the various operating
+
+63
+00:04:23,000 --> 00:04:24,000
+systems.
+
+64
+00:04:24,000 --> 00:04:34,000
+The first single dot operator means this directory is a double dot or pyrates means the parent directory
+
+65
+00:04:34,000 --> 00:04:42,000
+the next one and the tree lets type Sidis, Nebel, Dot and press enter go ahead and times the same
+
+66
+00:04:42,000 --> 00:04:44,000
+Java version common here.
+
+67
+00:04:45,000 --> 00:04:48,000
+Java is not recognized as an internal or external command.
+
+68
+00:04:49,000 --> 00:04:50,000
+Why do we see this?
+
+69
+00:04:50,000 --> 00:04:56,000
+Because from this level we can't get access to Java program, which is located in Benfold.
+
+70
+00:04:57,000 --> 00:05:03,000
+As a software engineer, I want to be able to call Java and Java compiler on my machine from any place
+
+71
+00:05:03,000 --> 00:05:04,000
+in my file system.
+
+72
+00:05:04,000 --> 00:05:08,000
+To do this, I need to configure environment variables.
+
+73
+00:05:08,000 --> 00:05:13,000
+Now I will show you how to configure environment variables on Windows machine.
+
+74
+00:05:13,000 --> 00:05:17,000
+If you have Mac, please take a look to resources attached to this lesson.
+
+75
+00:05:18,000 --> 00:05:22,000
+I have special written guide for you do mouse right.
+
+76
+00:05:22,000 --> 00:05:29,000
+Click on my computer open properties, go to advanced system settings and one wearables.
+
+77
+00:05:29,000 --> 00:05:31,000
+And here we are now.
+
+78
+00:05:31,000 --> 00:05:33,000
+Even despite this, it's not necessary.
+
+79
+00:05:33,000 --> 00:05:36,000
+The rule of thumb is to create Java home variable.
+
+80
+00:05:36,000 --> 00:05:40,000
+First, this variable will refer to the Jaedicke home folder.
+
+81
+00:05:41,000 --> 00:05:46,000
+You can have multiple Java home variables to be able easily change our home version on your machine
+
+82
+00:05:46,000 --> 00:05:50,000
+like I have here for Java versions eight, 11 and 13.
+
+83
+00:05:51,000 --> 00:05:54,000
+Let's create this variable press new button here.
+
+84
+00:05:55,000 --> 00:05:57,000
+Java underscore home.
+
+85
+00:06:02,000 --> 00:06:04,000
+And let's hope is this past.
+
+86
+00:06:05,000 --> 00:06:07,000
+And paste it as a variable value.
+
+87
+00:06:08,000 --> 00:06:09,000
+Press a button.
+
+88
+00:06:09,000 --> 00:06:11,000
+Now we have Java home here.
+
+89
+00:06:12,000 --> 00:06:15,000
+Next thing to know is that Windows has bars Werrimull.
+
+90
+00:06:16,000 --> 00:06:17,000
+Let's find it.
+
+91
+00:06:18,000 --> 00:06:24,000
+Here, this bus is an environment variable specifying a set of directories where executable programs
+
+92
+00:06:24,000 --> 00:06:32,000
+are located in general, each executing process or user session has its own path setting without past
+
+93
+00:06:32,000 --> 00:06:35,000
+variable, we would need to run programs, use an absolute pass.
+
+94
+00:06:36,000 --> 00:06:42,000
+The pass variable prevents us from having to write the entire past to a program that suggests value
+
+95
+00:06:42,000 --> 00:06:42,000
+here.
+
+96
+00:06:43,000 --> 00:06:46,000
+Can you type person sign?
+
+97
+00:06:47,000 --> 00:06:48,000
+You have a home.
+
+98
+00:06:49,000 --> 00:06:55,000
+Percent saying file past separator and windows, that is backslash and bin.
+
+99
+00:06:56,000 --> 00:07:02,000
+That said, in case you have previous Windows version, most likely you see something like this.
+
+100
+00:07:03,000 --> 00:07:06,000
+Make sure that line ends with semicolon and write the same.
+
+101
+00:07:11,000 --> 00:07:18,000
+So you can choose one option or another, it's up to you and now attention, if you had the terminal
+
+102
+00:07:18,000 --> 00:07:22,000
+opened, closed and opened again to apply all changes.
+
+103
+00:07:25,000 --> 00:07:27,000
+Let's again, open terminal here.
+
+104
+00:07:29,000 --> 00:07:31,000
+Let's go one level up.
+
+105
+00:07:32,000 --> 00:07:35,000
+Now, let's dive the same Java version comment.
+
+106
+00:07:36,000 --> 00:07:37,000
+Here we are now.
+
+107
+00:07:37,000 --> 00:07:40,000
+We can run Java program from any directory.
+
+108
+00:07:41,000 --> 00:07:45,000
+Let's also check version of compiler called Java Version.
+
+109
+00:07:46,000 --> 00:07:47,000
+Here it is.
+
+110
+00:07:47,000 --> 00:07:52,000
+If you see version number, then everything is OK and we are good to proceed with the next lesson.
+
+111
+00:07:53,000 --> 00:07:55,000
+Let's summarize what we have learned on this lesson.
+
+112
+00:07:56,000 --> 00:07:58,000
+We learned how to choose JDK version.
+
+113
+00:07:58,000 --> 00:08:01,000
+What is the difference between Oracle Adjudicate and OpenEdge?
+
+114
+00:08:01,000 --> 00:08:06,000
+The key, how to install duplicate on your computer and how to configure environment variables.
+
+115
+00:08:07,000 --> 00:08:09,000
+Let's now review your homework for the next lesson.
+
+116
+00:08:10,000 --> 00:08:15,000
+So for the next lesson, you just need to repeat everything, what we have discussed during this lesson
+
+117
+00:08:15,000 --> 00:08:17,000
+and make sure you have JDK installed.
+
diff --git a/02 - Java Basics/003 First application Hello World App.mp4 b/02 - Java Basics/003 First application Hello World App.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..28ae7356c2fe6cbff6769c27f170d8089f5977af
--- /dev/null
+++ b/02 - Java Basics/003 First application Hello World App.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:967d6308d23cc7a7c36f016b76f44897a67c431a8fc14ab4e542fb9495d601f1
+size 179343728
diff --git a/02 - Java Basics/003 First application Hello World App_en.srt b/02 - Java Basics/003 First application Hello World App_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..e98f13a0a9d2648ec2bebd7eede4db33e7451f98
--- /dev/null
+++ b/02 - Java Basics/003 First application Hello World App_en.srt
@@ -0,0 +1,692 @@
+1
+00:00:05,000 --> 00:00:09,000
+They will create our first application in Java language.
+
+2
+00:00:09,000 --> 00:00:10,000
+Be prepared to have fun.
+
+3
+00:00:11,000 --> 00:00:16,000
+Also in this lesson, you will learn what our console applications, how to compile Java code to get
+
+4
+00:00:16,000 --> 00:00:19,000
+bytecode and how to execute your first program from console.
+
+5
+00:00:20,000 --> 00:00:21,000
+Let's start.
+
+6
+00:00:22,000 --> 00:00:28,000
+So what a console applications console application is an application that takes input and displays output
+
+7
+00:00:28,000 --> 00:00:36,000
+at command line console with access to three basic data streams, standard input, standard output and
+
+8
+00:00:36,000 --> 00:00:37,000
+standard error.
+
+9
+00:00:38,000 --> 00:00:42,000
+These applications don't have any graphical user interface.
+
+10
+00:00:42,000 --> 00:00:45,000
+They are primarily used nowadays in learning purposes.
+
+11
+00:00:46,000 --> 00:00:51,000
+So console application is a lightweight application which might be easily run in console.
+
+12
+00:00:51,000 --> 00:00:57,000
+During this course, we'll learn tools which we have in GDP to create powerful applications, but the
+
+13
+00:00:57,000 --> 00:00:59,000
+same as learning as a human languages.
+
+14
+00:01:00,000 --> 00:01:02,000
+The first thing you learn is alphabet.
+
+15
+00:01:02,000 --> 00:01:03,000
+After that, no letters.
+
+16
+00:01:03,000 --> 00:01:08,000
+You can create words from words who can create sentences from sentences.
+
+17
+00:01:08,000 --> 00:01:09,000
+You can build a story.
+
+18
+00:01:10,000 --> 00:01:15,000
+The same is here will start from console applications to learn alphabet and words.
+
+19
+00:01:16,000 --> 00:01:22,000
+Here is what we are going to do today as a software engineer will create with you files with Java.
+
+20
+00:01:22,000 --> 00:01:25,000
+Extension will call this files source code.
+
+21
+00:01:25,000 --> 00:01:30,000
+This is exactly files where programming code written in Java will be stored.
+
+22
+00:01:31,000 --> 00:01:35,000
+After that will ask Java Compiler to compile source code to bytecode.
+
+23
+00:01:35,000 --> 00:01:38,000
+Java program will do this task.
+
+24
+00:01:38,000 --> 00:01:44,000
+Java will produce files with class extension and Java will execute our program.
+
+25
+00:01:45,000 --> 00:01:46,000
+What do you need to understand?
+
+26
+00:01:46,000 --> 00:01:50,000
+And remember that Shivam doesn't execute Java files.
+
+27
+00:01:51,000 --> 00:01:54,000
+Jivin executes class files properly.
+
+28
+00:01:54,000 --> 00:01:58,000
+This will help you in the future when you will troubleshoot issues in your real life project.
+
+29
+00:01:59,000 --> 00:02:05,000
+So now let's take a look how to create your first program, how to compile it and run theme.
+
+30
+00:02:05,000 --> 00:02:07,000
+Please don't be afraid.
+
+31
+00:02:07,000 --> 00:02:11,000
+You won't use common line to write your programs on a regular basis.
+
+32
+00:02:11,000 --> 00:02:16,000
+In the next, lessons will run special desktop applications designed to create programs.
+
+33
+00:02:17,000 --> 00:02:22,000
+But now I'd like to ask you again to open a common line wherever you want on your computer.
+
+34
+00:02:22,000 --> 00:02:27,000
+For example, for this lesson I created folder where I will create a program together with you.
+
+35
+00:02:28,000 --> 00:02:32,000
+Let's type seemed easier to open a common line probably using right now.
+
+36
+00:02:32,000 --> 00:02:34,000
+And you must be kidding me.
+
+37
+00:02:35,000 --> 00:02:36,000
+Why do we do this?
+
+38
+00:02:36,000 --> 00:02:41,000
+Why don't we just start work with applications which help us to create programs?
+
+39
+00:02:41,000 --> 00:02:44,000
+The answer is there are a few points to consider.
+
+40
+00:02:45,000 --> 00:02:52,000
+The first one you need to learn how to work with console at least some basics because sometimes not
+
+41
+00:02:52,000 --> 00:02:57,000
+always, but sometimes depending on which built tool you will use, probably you would need to work
+
+42
+00:02:57,000 --> 00:02:58,000
+with console.
+
+43
+00:02:58,000 --> 00:03:04,000
+And sometimes as software engineers you would need to write scripts which will call command line comments.
+
+44
+00:03:04,000 --> 00:03:06,000
+Real life example.
+
+45
+00:03:06,000 --> 00:03:11,000
+You would like to compile all Java files in your project in one archive, which will be deployed to
+
+46
+00:03:11,000 --> 00:03:13,000
+the Web server afterwards.
+
+47
+00:03:13,000 --> 00:03:19,000
+Right after compiling, you would like to run specific files, desk classes to be sure that tests are
+
+48
+00:03:19,000 --> 00:03:22,000
+not failing in case tests are succeed.
+
+49
+00:03:23,000 --> 00:03:27,000
+You finish your build process in case there are failures in the tests.
+
+50
+00:03:27,000 --> 00:03:28,000
+You don't proceed with your build.
+
+51
+00:03:28,000 --> 00:03:33,000
+That is one of the examples where knowledge of common line comments might come in handy.
+
+52
+00:03:33,000 --> 00:03:36,000
+The second point to consider Guice.
+
+53
+00:03:36,000 --> 00:03:38,000
+You had just started learning Java.
+
+54
+00:03:38,000 --> 00:03:44,000
+You need to understand what compilation process is, what is compilation error and how it is different
+
+55
+00:03:44,000 --> 00:03:46,000
+from runtime exception.
+
+56
+00:03:46,000 --> 00:03:53,000
+That's why I ask all my students to create program in Notepad and to run it and console at least once
+
+57
+00:03:53,000 --> 00:03:59,000
+in their lives in some conference on the first level of interview process of junior software engineers
+
+58
+00:03:59,000 --> 00:04:04,000
+where you have quizzes and tests, sometimes there are also questions related to common line.
+
+59
+00:04:06,000 --> 00:04:12,000
+We opened the common line to create file with Java extension, why we cannot just do mouse right click
+
+60
+00:04:12,000 --> 00:04:19,000
+and create file because you need to enable showing the file extension first in different Windows version.
+
+61
+00:04:19,000 --> 00:04:21,000
+It is done in a slightly different way.
+
+62
+00:04:21,000 --> 00:04:26,000
+And from default options, you can create file with the extension, which doesn't work for us.
+
+63
+00:04:27,000 --> 00:04:32,000
+So let's create file from console because it is easier and it's the same way to create file from the
+
+64
+00:04:32,000 --> 00:04:35,000
+terminal on different Windows versions actually.
+
+65
+00:04:35,000 --> 00:04:36,000
+Now at least a few ways.
+
+66
+00:04:36,000 --> 00:04:38,000
+How to create file from command prompt.
+
+67
+00:04:38,000 --> 00:04:40,000
+But let me show one to you.
+
+68
+00:04:41,000 --> 00:04:43,000
+Type the following notepad.
+
+69
+00:04:44,000 --> 00:04:46,000
+Hello World Dot Java.
+
+70
+00:04:47,000 --> 00:04:50,000
+When dialogue is popped up, click yes.
+
+71
+00:04:53,000 --> 00:05:00,000
+Now we see file with Java extension created here in case you have Mac just type like this.
+
+72
+00:05:01,000 --> 00:05:04,000
+Dutch Hello, World Dot Jalaa.
+
+73
+00:05:05,000 --> 00:05:06,000
+The file will be created.
+
+74
+00:05:07,000 --> 00:05:15,000
+Let's write our first program, we'll cover right now basic syntax so each Java file can have only one
+
+75
+00:05:15,000 --> 00:05:17,000
+public class or interface.
+
+76
+00:05:18,000 --> 00:05:21,000
+We'll cover more modifiers during all be topic.
+
+77
+00:05:21,000 --> 00:05:28,000
+But for now, just try to understand that in case class is public, client can access it from anywhere,
+
+78
+00:05:29,000 --> 00:05:32,000
+including our game, which needs to access this class.
+
+79
+00:05:32,000 --> 00:05:36,000
+The name of public class should be the same as the name of a Java file.
+
+80
+00:05:36,000 --> 00:05:37,000
+This is true.
+
+81
+00:05:38,000 --> 00:05:42,000
+In either case you would have compilation error Gervais's case sensitive.
+
+82
+00:05:43,000 --> 00:05:49,000
+So hello world written with Capital H at the beginning is completely different from Hello World with
+
+83
+00:05:49,000 --> 00:05:50,000
+H lowercase.
+
+84
+00:05:51,000 --> 00:05:55,000
+Java is a case sensitive because it uses a C style syntax case.
+
+85
+00:05:55,000 --> 00:06:01,000
+Sensitivity is useful because it lets you infer what the name means based on its case.
+
+86
+00:06:01,000 --> 00:06:07,000
+For example, the Java standard for class names is uppercase in the first letter of each word, for
+
+87
+00:06:07,000 --> 00:06:11,000
+example, like integer string, etc..
+
+88
+00:06:12,000 --> 00:06:18,000
+The standard for variable and method names is lowercase, the first letter of the first word and uppercase
+
+89
+00:06:18,000 --> 00:06:19,000
+and all other first letters.
+
+90
+00:06:21,000 --> 00:06:26,000
+No print, learn, Czech error, etc.
+
+91
+00:06:28,000 --> 00:06:35,000
+And the standard for constants is all uppercase was on this course, some constant like this.
+
+92
+00:06:36,000 --> 00:06:43,000
+So after hello, world, let's put curly braces here in Java, curly braces define SCOP.
+
+93
+00:06:44,000 --> 00:06:51,000
+Here is the scope of the class, in a few seconds, you'll see the scope of the method each otoscope
+
+94
+00:06:51,000 --> 00:06:57,000
+includes in their scope, zazz variable declared in the class scope is visible in the method scope,
+
+95
+00:06:58,000 --> 00:07:02,000
+but variables declared in the method scope not visible in Glasgow.
+
+96
+00:07:03,000 --> 00:07:07,000
+Now we need to create an entry point for our program by convention.
+
+97
+00:07:07,000 --> 00:07:12,000
+This method is publicly accessible, so let's type here public.
+
+98
+00:07:12,000 --> 00:07:13,000
+It is static.
+
+99
+00:07:14,000 --> 00:07:17,000
+We'll cover more what static is during or P topic.
+
+100
+00:07:18,000 --> 00:07:19,000
+It does return nothing.
+
+101
+00:07:19,000 --> 00:07:24,000
+That's why return type is void and it has name main by convention.
+
+102
+00:07:25,000 --> 00:07:32,000
+This method takes as a parameter array of strings in the next lessons will cover in details what arrays
+
+103
+00:07:32,000 --> 00:07:33,000
+are as of now.
+
+104
+00:07:33,000 --> 00:07:36,000
+Consider array of strings as a sequence of strings.
+
+105
+00:07:37,000 --> 00:07:40,000
+A parameter is a variable in the method definition.
+
+106
+00:07:40,000 --> 00:07:46,000
+When the method is called, the arguments are the data you pass into the methods parameters.
+
+107
+00:07:46,000 --> 00:07:49,000
+Hope this doesn't bring even more confusion.
+
+108
+00:07:49,000 --> 00:07:54,000
+I just want you also to learn the right wording to make your colleagues understand you.
+
+109
+00:07:55,000 --> 00:08:02,000
+Public static void main method, which takes array of strings, is our entry point to each Java program.
+
+110
+00:08:02,000 --> 00:08:09,000
+JVM knows that it should call exactly this method and begin program execution from this point.
+
+111
+00:08:10,000 --> 00:08:17,000
+Let's define scope of this method here in this method will write code which will print hello world text
+
+112
+00:08:17,000 --> 00:08:24,000
+to console output will write a system not out how to represent output.
+
+113
+00:08:24,000 --> 00:08:31,000
+Stream output stream has such behavior as printing to console print, to learn method prints to console
+
+114
+00:08:31,000 --> 00:08:33,000
+and terminate the line.
+
+115
+00:08:33,000 --> 00:08:41,000
+Each statement in Java ends with semicolon Prindle and can take strings as arguments that's postering
+
+116
+00:08:41,000 --> 00:08:42,000
+Hello World into it.
+
+117
+00:08:43,000 --> 00:08:48,000
+In Java, string literals are written inside double quotes and one more new word.
+
+118
+00:08:49,000 --> 00:08:49,000
+Literal.
+
+119
+00:08:50,000 --> 00:08:54,000
+Literal is a notation for representing a fixed value in source code.
+
+120
+00:08:55,000 --> 00:08:57,000
+Here we have string literal.
+
+121
+00:08:57,000 --> 00:08:58,000
+Now let's save this file.
+
+122
+00:09:01,000 --> 00:09:09,000
+Let's go back to the console and now let's compile our program, Javadoc Hello, world, that Java.
+
+123
+00:09:10,000 --> 00:09:17,000
+If you don't see any messages, that means compilation was successful and you can notice that new file
+
+124
+00:09:17,000 --> 00:09:24,000
+is appeared in our folder, this file has the same name as our Java file, but has different extension.
+
+125
+00:09:24,000 --> 00:09:28,000
+This file contains byte code for our Java virtual machine.
+
+126
+00:09:29,000 --> 00:09:31,000
+Now let's execute bytecode on our game.
+
+127
+00:09:32,000 --> 00:09:33,000
+Let's step Java.
+
+128
+00:09:34,000 --> 00:09:36,000
+Hello, world and press enter.
+
+129
+00:09:37,000 --> 00:09:43,000
+In this case, you don't need to specify extension for the file since Java expects only class files
+
+130
+00:09:44,000 --> 00:09:45,000
+and you see output here.
+
+131
+00:09:46,000 --> 00:09:48,000
+Hello world congratulations.
+
+132
+00:09:49,000 --> 00:09:51,000
+You have just written your first console application.
+
+133
+00:09:52,000 --> 00:09:53,000
+What are common mistakes?
+
+134
+00:09:54,000 --> 00:10:00,000
+You can see compilation error after calling Java and you can see runtime errors.
+
+135
+00:10:00,000 --> 00:10:02,000
+Let me reproduce it with you.
+
+136
+00:10:02,000 --> 00:10:05,000
+Let's pretend your name your public class incorrectly.
+
+137
+00:10:06,000 --> 00:10:08,000
+Not the same as Java filename.
+
+138
+00:10:09,000 --> 00:10:15,000
+Let's put capital G at the end and also let's pretend you did a typo in main method name.
+
+139
+00:10:16,000 --> 00:10:17,000
+Let's save the file.
+
+140
+00:10:19,000 --> 00:10:20,000
+Let's call Jack now.
+
+141
+00:10:23,000 --> 00:10:31,000
+We see compilation error, so code is not compiled to bytecode, always read these error messages,
+
+142
+00:10:32,000 --> 00:10:34,000
+they can help you to fix issues.
+
+143
+00:10:35,000 --> 00:10:41,000
+For example, like here, public class, hello world should be declared in the file with the same name.
+
+144
+00:10:41,000 --> 00:10:44,000
+We will just rename our public class.
+
+145
+00:10:45,000 --> 00:10:51,000
+Let's compile it one more time, but not forget to save the file before compilation process.
+
+146
+00:10:52,000 --> 00:10:58,000
+So now everything is OK and we don't see any compilation errors, and by the way, to call comments,
+
+147
+00:10:58,000 --> 00:11:01,000
+which I just used, I use up Arrow.
+
+148
+00:11:02,000 --> 00:11:03,000
+Let's run it again.
+
+149
+00:11:04,000 --> 00:11:06,000
+And here we have one time exception.
+
+150
+00:11:07,000 --> 00:11:09,000
+What does it mean, compile it?
+
+151
+00:11:09,000 --> 00:11:12,000
+But error happened during the program execution.
+
+152
+00:11:13,000 --> 00:11:20,000
+You try to find humane method, but couldn't hope this information will help you to troubleshoot issues
+
+153
+00:11:20,000 --> 00:11:21,000
+in case you will have once.
+
+154
+00:11:22,000 --> 00:11:25,000
+Let's recap one more time what we have learned today.
+
+155
+00:11:26,000 --> 00:11:28,000
+And now you know what console applications are.
+
+156
+00:11:29,000 --> 00:11:31,000
+You understand basic Java syntax.
+
+157
+00:11:31,000 --> 00:11:34,000
+You learn how to create hello world application in Java.
+
+158
+00:11:34,000 --> 00:11:38,000
+Also, you saw what compilation errors and the runtime errors are.
+
+159
+00:11:39,000 --> 00:11:41,000
+You can compile and execute your programs from the console.
+
+160
+00:11:42,000 --> 00:11:43,000
+And here's your homework.
+
+161
+00:11:44,000 --> 00:11:48,000
+Try to repeat everything what we did during the lesson by yourself.
+
+162
+00:11:48,000 --> 00:11:54,000
+Also, I'd like you to write that or shall file, which will compile your source code and we'll start
+
+163
+00:11:54,000 --> 00:11:59,000
+your Java application, try to do it by yourself with help of the Internet if needed.
+
+164
+00:12:00,000 --> 00:12:06,000
+And we'll check your homework in the next lesson together and read Java Code Convention from the link
+
+165
+00:12:06,000 --> 00:12:06,000
+here.
+
+166
+00:12:06,000 --> 00:12:09,000
+Pay extra attention to naming convention.
+
+167
+00:12:10,000 --> 00:12:16,000
+Java naming convention is a rule to follow as you decide what to name your intent to file, such as
+
+168
+00:12:16,000 --> 00:12:22,000
+class baggage, variable, constant method, etc. but it's not forced to follow.
+
+169
+00:12:22,000 --> 00:12:25,000
+So it's known as convention, not neutral.
+
+170
+00:12:26,000 --> 00:12:32,000
+These conventions, as suggested by several Java communities such as Sun Microsystems and Netscape,
+
+171
+00:12:33,000 --> 00:12:39,000
+all the classes, interfaces, packages, methods and fields of Java programming language and given,
+
+172
+00:12:39,000 --> 00:12:45,000
+according to the Java naming conventions, if you fail to follow these conventions, it may generate
+
+173
+00:12:45,000 --> 00:12:46,000
+confusion.
+
diff --git a/02 - Java Basics/003 Homework.url b/02 - Java Basics/003 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..1fdc074d2976af2ab7d02b606f4b2596af903bdc
--- /dev/null
+++ b/02 - Java Basics/003 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1NoTwR9ZiOzdE_ONc45jJv8sLVtJqiZm-eGz-S9Guv-w/edit?folder=1XkdXhkewYf3n2ak7mRbUNW3HDc_mCMvP
\ No newline at end of file
diff --git a/02 - Java Basics/004 .bat-file.url b/02 - Java Basics/004 .bat-file.url
new file mode 100644
index 0000000000000000000000000000000000000000..a79b4d1622a3dcef9034b39f3144de9e5d1037d8
--- /dev/null
+++ b/02 - Java Basics/004 .bat-file.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/hw.bat
\ No newline at end of file
diff --git a/02 - Java Basics/004 Hello-World-Application.url b/02 - Java Basics/004 Hello-World-Application.url
new file mode 100644
index 0000000000000000000000000000000000000000..8e8a50661bdf27a4e2e3e19d5d9516c06daca078
--- /dev/null
+++ b/02 - Java Basics/004 Hello-World-Application.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/HelloWorld.java
\ No newline at end of file
diff --git a/02 - Java Basics/004 Homework Solution .bat file creation.mp4 b/02 - Java Basics/004 Homework Solution .bat file creation.mp4
new file mode 100644
index 0000000000000000000000000000000000000000..e1085ed3a57daca60ee9e60b0ad00a80662b8a48
--- /dev/null
+++ b/02 - Java Basics/004 Homework Solution .bat file creation.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1d45e91ae58721dc9acdb3c60f55d160a65c57902db2bd77af10fb4ebf30934c
+size 34785076
diff --git a/02 - Java Basics/004 Homework Solution .bat file creation_en.srt b/02 - Java Basics/004 Homework Solution .bat file creation_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..1549e8b3e38acfb03c078f39875995bf491bb85a
--- /dev/null
+++ b/02 - Java Basics/004 Homework Solution .bat file creation_en.srt
@@ -0,0 +1,104 @@
+1
+00:00:05,000 --> 00:00:12,000
+In the last and will review solution of your homework, you have a task to create that file to compile
+
+2
+00:00:12,000 --> 00:00:17,000
+your hello world application and run it, let's review the solution for this homework.
+
+3
+00:00:17,000 --> 00:00:20,000
+Here we have Hello World Application from previous lesson.
+
+4
+00:00:21,000 --> 00:00:22,000
+Here is my bad file.
+
+5
+00:00:23,000 --> 00:00:24,000
+Let me show you how it works.
+
+6
+00:00:25,000 --> 00:00:27,000
+Let me open a common line here and run it.
+
+7
+00:00:31,000 --> 00:00:38,000
+Here it is, you see that search code has been compiled and executed in command line, and he also noticed
+
+8
+00:00:38,000 --> 00:00:41,000
+that after execution class file has been removed.
+
+9
+00:00:41,000 --> 00:00:44,000
+Let's write the script together from scratch.
+
+10
+00:00:44,000 --> 00:00:48,000
+Typed this not bad homework.
+
+11
+00:00:48,000 --> 00:00:49,000
+Dot that.
+
+12
+00:00:51,000 --> 00:00:56,000
+Our first comment would be echo of at echo of.
+
+13
+00:00:57,000 --> 00:01:04,000
+Echoes a common to display message in standard output to prevent action, a particular comment in a
+
+14
+00:01:04,000 --> 00:01:08,000
+batch file, we have to write an at sign in front of the comment.
+
+15
+00:01:08,000 --> 00:01:14,000
+We want to prevent again of all comments in our file to see only Java application output.
+
+16
+00:01:15,000 --> 00:01:19,000
+That's why I wrote at Echo of at the beginning of the file.
+
+17
+00:01:20,000 --> 00:01:22,000
+Next comment will be familiar to you.
+
+18
+00:01:22,000 --> 00:01:28,000
+It's Java Asterisk Dot Java asterisk.
+
+19
+00:01:28,000 --> 00:01:36,000
+Here is metal symbol to describe all possible files that have Java extension next common java.
+
+20
+00:01:36,000 --> 00:01:37,000
+Hello World.
+
+21
+00:01:37,000 --> 00:01:42,000
+And at the end, let the lead class file to keep our director clean.
+
+22
+00:01:43,000 --> 00:01:47,000
+Dell Asterisk Dot class asterisk.
+
+23
+00:01:47,000 --> 00:01:52,000
+Here is a symbol to describe all possible files that have class extension.
+
+24
+00:01:53,000 --> 00:01:55,000
+That said, let's save it.
+
+25
+00:01:56,000 --> 00:02:01,000
+I press control plus s to save the file and let's run it from here.
+
+26
+00:02:02,000 --> 00:02:04,000
+It works as expected.
+
diff --git a/02 - Java Basics/005 Homework.url b/02 - Java Basics/005 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..0717a7249f3793009fdb50d5fb462df215f19747
--- /dev/null
+++ b/02 - Java Basics/005 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/13PLSDOQUUZAqRDhgHvNhKJUNZRvuQhe4ymqS2DAzoM8/edit?folder=1XkdXhkewYf3n2ak7mRbUNW3HDc_mCMvP
\ No newline at end of file
diff --git a/02 - Java Basics/005 Integrated Development Environment, Eclipse Overview_en.srt b/02 - Java Basics/005 Integrated Development Environment, Eclipse Overview_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..dbf71257c1dbf4a1188a8af6e65936139ca73cd4
--- /dev/null
+++ b/02 - Java Basics/005 Integrated Development Environment, Eclipse Overview_en.srt
@@ -0,0 +1,656 @@
+1
+00:00:06,000 --> 00:00:10,000
+They will learn to which will help us create our amazing applications.
+
+2
+00:00:11,000 --> 00:00:14,000
+I am talking about integrated development environment.
+
+3
+00:00:14,000 --> 00:00:20,000
+Beside that, according to our agenda for today, we will learn what are most popular ideas for development
+
+4
+00:00:20,000 --> 00:00:26,000
+of Java based applications will download Eclipse and we'll learn how to configure it.
+
+5
+00:00:27,000 --> 00:00:29,000
+So what is integrated development environment?
+
+6
+00:00:30,000 --> 00:00:36,000
+IDE is a software application that provides comprehensive facilities to computer programmers for software
+
+7
+00:00:36,000 --> 00:00:43,000
+development, and they normally consist of at least a source code editor built automation tools and
+
+8
+00:00:43,000 --> 00:00:47,000
+at the bargain, some ideas such as not being technically contained.
+
+9
+00:00:47,000 --> 00:00:53,000
+The necessary compiler integrated development environments are designed to maximize programmer productivity,
+
+10
+00:00:54,000 --> 00:01:00,000
+reduce and set up time can increase developer productivity, especially in cases where learning to use
+
+11
+00:01:00,000 --> 00:01:05,000
+the idea is faster than manually integrating and learning all of the individual tools.
+
+12
+00:01:06,000 --> 00:01:14,000
+The most popular ideas for Java development are Eclipse Intelligent Idea, not beans and Androids to
+
+13
+00:01:14,000 --> 00:01:15,000
+live for Android projects.
+
+14
+00:01:16,000 --> 00:01:19,000
+I've worked a lot with each of these, to be honest.
+
+15
+00:01:19,000 --> 00:01:21,000
+I can conclude that that's similar.
+
+16
+00:01:21,000 --> 00:01:24,000
+The only difference is the way how to configure your project.
+
+17
+00:01:25,000 --> 00:01:27,000
+The same buttons located in different places.
+
+18
+00:01:27,000 --> 00:01:29,000
+That would be my short answer.
+
+19
+00:01:29,000 --> 00:01:34,000
+But still, my preferred option would be Eclipse for Java Enterprise Edition developers.
+
+20
+00:01:34,000 --> 00:01:35,000
+Why?
+
+21
+00:01:35,000 --> 00:01:37,000
+There are a few reasons.
+
+22
+00:01:37,000 --> 00:01:44,000
+Some of them, it is completely free of charge, the same as that means you can find that idea.
+
+23
+00:01:44,000 --> 00:01:47,000
+Community version is also free of charge.
+
+24
+00:01:47,000 --> 00:01:53,000
+But later during the course you will notice that in communications there is a lack of support of Java
+
+25
+00:01:53,000 --> 00:02:00,000
+Enterprise Edition and you would need either to buy license version of a year so-called AUTOMATE edition
+
+26
+00:02:00,000 --> 00:02:02,000
+or looking for some workarounds.
+
+27
+00:02:03,000 --> 00:02:07,000
+If you're a student, you can get ultimata, edition license free of charge.
+
+28
+00:02:07,000 --> 00:02:12,000
+But again, it's free only for educational purposes, but not for commercial use.
+
+29
+00:02:12,000 --> 00:02:13,000
+In many companies.
+
+30
+00:02:13,000 --> 00:02:20,000
+Eclipse isn't standard software package for Java software engineers because it's powerful for creation
+
+31
+00:02:20,000 --> 00:02:25,000
+of any kind of applications and it's free, huge community in the Internet.
+
+32
+00:02:25,000 --> 00:02:27,000
+You will find a lot of support.
+
+33
+00:02:27,000 --> 00:02:32,000
+How to deal with different configuration issues in case you have them in your project while working
+
+34
+00:02:32,000 --> 00:02:33,000
+with Eclipse.
+
+35
+00:02:34,000 --> 00:02:40,000
+You can easily extend your idea was extensions and plug ins, for example, you can add plugin which
+
+36
+00:02:40,000 --> 00:02:45,000
+will check your code style, you can add plug in to test your passcode coverage.
+
+37
+00:02:45,000 --> 00:02:51,000
+You cannot plug in, which will allow you to style icons, background and fonts in the eclipse.
+
+38
+00:02:51,000 --> 00:02:55,000
+And much more Eclipse has tools to work with Java for Enterprise.
+
+39
+00:02:56,000 --> 00:02:59,000
+This will come in handy later in this training program.
+
+40
+00:02:59,000 --> 00:03:03,000
+Now lets together download and install Eclipse on your computer.
+
+41
+00:03:04,000 --> 00:03:10,000
+We will configure your workspace and we'll create Hello World Java project in Eclipse and you will see
+
+42
+00:03:10,000 --> 00:03:12,000
+how it makes our life easier.
+
+43
+00:03:13,000 --> 00:03:15,000
+Let's make a Google search like this.
+
+44
+00:03:16,000 --> 00:03:19,000
+Eclipse for Java Developers Download.
+
+45
+00:03:21,000 --> 00:03:22,000
+Click on the first link.
+
+46
+00:03:23,000 --> 00:03:27,000
+Here's a warning message which tell us that this is not the latest package.
+
+47
+00:03:28,000 --> 00:03:30,000
+Let's take a look at the newest version.
+
+48
+00:03:31,000 --> 00:03:36,000
+And here it is, the motorcade for Windows Linux on Mac.
+
+49
+00:03:38,000 --> 00:03:39,000
+President Lord Martin.
+
+50
+00:03:43,000 --> 00:03:47,000
+When we have downloaded the clips, extract old files wherever you want on your computer.
+
+51
+00:03:50,000 --> 00:03:51,000
+Now start the clips.
+
+52
+00:03:54,000 --> 00:03:59,000
+When you start the clips, you are asked to indicate a workspace directly, the workspace is a directory
+
+53
+00:03:59,000 --> 00:04:06,000
+on the desk where the eclipse platform and all the installed plug ins or preferences, configurations
+
+54
+00:04:06,000 --> 00:04:12,000
+and temporary information, subsequent clips and locations will use the storage to restore the previous
+
+55
+00:04:12,000 --> 00:04:12,000
+state.
+
+56
+00:04:13,000 --> 00:04:18,000
+Each time you start Eclipse, you can create a new workspace directory or indicate an existing one.
+
+57
+00:04:18,000 --> 00:04:23,000
+You can create many workspaces, each one dedicated to some activity.
+
+58
+00:04:23,000 --> 00:04:27,000
+For example, I want to create a workspace dedicated to this training course here.
+
+59
+00:04:28,000 --> 00:04:31,000
+Let me call it your Nike fundamentals.
+
+60
+00:04:31,000 --> 00:04:33,000
+Let's press the launch button now.
+
+61
+00:04:37,000 --> 00:04:38,000
+Let's make it full screen.
+
+62
+00:04:39,000 --> 00:04:40,000
+Here is a welcome page.
+
+63
+00:04:40,000 --> 00:04:46,000
+Let's get directly to the park bench, just press here and here is your workspace.
+
+64
+00:04:47,000 --> 00:04:49,000
+It comprises different objects and views.
+
+65
+00:04:50,000 --> 00:04:52,000
+You can configure your workspace as you wish.
+
+66
+00:04:52,000 --> 00:04:55,000
+You can move all these widgets anywhere.
+
+67
+00:04:57,000 --> 00:04:58,000
+Let's leave it here.
+
+68
+00:04:58,000 --> 00:05:04,000
+Here you can choose your perspective and the global perspective is the name given to an initial collection
+
+69
+00:05:04,000 --> 00:05:06,000
+and arrangements of use.
+
+70
+00:05:06,000 --> 00:05:13,000
+And then editor area, for example, take a look at current perspective is look like let's also press
+
+71
+00:05:13,000 --> 00:05:14,000
+file new.
+
+72
+00:05:15,000 --> 00:05:16,000
+Can you see this list?
+
+73
+00:05:16,000 --> 00:05:21,000
+It contains MAVEN Project, Dynamic Web Project, IGB Project, etc..
+
+74
+00:05:22,000 --> 00:05:24,000
+Now let's open another perspective.
+
+75
+00:05:24,000 --> 00:05:28,000
+Let's hope and not Joe Enterprise Edition, but Java perspective.
+
+76
+00:05:31,000 --> 00:05:36,000
+Here it is open, you see that the set of digits is different now.
+
+77
+00:05:37,000 --> 00:05:45,000
+Let's open again, file new, and here we see a different list with Java project on top of it in Eclipse,
+
+78
+00:05:45,000 --> 00:05:48,000
+you have multiple perspective and you can switch between them easily here.
+
+79
+00:05:50,000 --> 00:05:54,000
+You have separate perspective for the bargain for database development, etc..
+
+80
+00:05:56,000 --> 00:06:02,000
+Here's your Project Explorer view here, you'll find hierarchical representation of your projects and
+
+81
+00:06:02,000 --> 00:06:08,000
+source code in case you lost some, you would like to open a new one, just press window.
+
+82
+00:06:09,000 --> 00:06:09,000
+Shoyu.
+
+83
+00:06:10,000 --> 00:06:16,000
+Other here, you can find all available views, which you can add to your workspace.
+
+84
+00:06:18,000 --> 00:06:21,000
+Now let's create our Hello World Java project.
+
+85
+00:06:21,000 --> 00:06:26,000
+You can click is a here or go to file new Java project.
+
+86
+00:06:27,000 --> 00:06:29,000
+Let's go over project configurations here.
+
+87
+00:06:30,000 --> 00:06:32,000
+Type any project name you would like.
+
+88
+00:06:32,000 --> 00:06:36,000
+I will type learn I.T. fundamentals.
+
+89
+00:06:38,000 --> 00:06:44,000
+Reached Java runtime environment you would like to use, you can select one of the predefined options
+
+90
+00:06:44,000 --> 00:06:49,000
+in the clips, I would select the ones which are already installed on my computer.
+
+91
+00:06:49,000 --> 00:06:51,000
+We can click finish.
+
+92
+00:06:51,000 --> 00:06:56,000
+But for the sake of the interests, let's click next to learn what other configurations available for
+
+93
+00:06:56,000 --> 00:06:56,000
+us.
+
+94
+00:06:57,000 --> 00:07:04,000
+Here you can see many other configurations, for example, SAAC would be considered as your source folder,
+
+95
+00:07:05,000 --> 00:07:10,000
+a source folder is a pass which is marked by clip's as containing Java sources which are needed to be
+
+96
+00:07:10,000 --> 00:07:11,000
+compiled.
+
+97
+00:07:12,000 --> 00:07:18,000
+You can also see that you can configure default output folder where all files with class extension will
+
+98
+00:07:18,000 --> 00:07:20,000
+be stored in the library.
+
+99
+00:07:20,000 --> 00:07:24,000
+STAP you can add additional external libraries, but we don't need them now.
+
+100
+00:07:25,000 --> 00:07:29,000
+We will cover this part of configuration deeper later in this course.
+
+101
+00:07:30,000 --> 00:07:31,000
+Let's just click finish now.
+
+102
+00:07:33,000 --> 00:07:39,000
+Eclipse will ask us how we want to name our module Java Modules is a new feature which represented the
+
+103
+00:07:39,000 --> 00:07:46,000
+first time in Java nine where the Java platform module system and Java module is a mechanism to package
+
+104
+00:07:46,000 --> 00:07:50,000
+up your job application and Java packages into Java modules.
+
+105
+00:07:51,000 --> 00:07:57,000
+A Java module can specify which of Java packages it contains that should be visible to other Java modules
+
+106
+00:07:57,000 --> 00:07:59,000
+using these module.
+
+107
+00:07:59,000 --> 00:08:04,000
+But with respect to our agenda for today, I suggest to come back to modules a bit later.
+
+108
+00:08:04,000 --> 00:08:06,000
+Just click on create.
+
+109
+00:08:06,000 --> 00:08:12,000
+Your project is created now and you'll remember that you need to create a class, so let's create it
+
+110
+00:08:12,000 --> 00:08:13,000
+now.
+
+111
+00:08:14,000 --> 00:08:15,000
+Let's expand your project.
+
+112
+00:08:16,000 --> 00:08:17,000
+Do right.
+
+113
+00:08:17,000 --> 00:08:19,000
+Click on the SSD source folder.
+
+114
+00:08:20,000 --> 00:08:21,000
+New Class.
+
+115
+00:08:23,000 --> 00:08:24,000
+Name of the class.
+
+116
+00:08:24,000 --> 00:08:25,000
+Hello, girls.
+
+117
+00:08:25,000 --> 00:08:31,000
+It has public modifier objects, always superclass of each type in Jawa.
+
+118
+00:08:31,000 --> 00:08:33,000
+We'll discuss this on all be topic.
+
+119
+00:08:34,000 --> 00:08:37,000
+We can also create a step of the main method.
+
+120
+00:08:37,000 --> 00:08:44,000
+Just check this checkbox and the last, but not the least configuration package name package in Java
+
+121
+00:08:44,000 --> 00:08:48,000
+is a mechanism to encapsulate a group of classes, sub packages and interfaces.
+
+122
+00:08:49,000 --> 00:08:52,000
+Packages are used for preventing name and conflicts.
+
+123
+00:08:52,000 --> 00:08:58,000
+Potentially, your application might have user class and the library which they're using in your application,
+
+124
+00:08:58,000 --> 00:09:00,000
+might also contain user class.
+
+125
+00:09:00,000 --> 00:09:07,000
+How we can say that your user and user from external library are different classes and we need to use
+
+126
+00:09:07,000 --> 00:09:08,000
+user from external library.
+
+127
+00:09:09,000 --> 00:09:14,000
+The full name of the class consist of package name plus class name, for example.
+
+128
+00:09:14,000 --> 00:09:16,000
+Com dot Barek.
+
+129
+00:09:17,000 --> 00:09:17,000
+Hello.
+
+130
+00:09:17,000 --> 00:09:19,000
+World will be one class.
+
+131
+00:09:21,000 --> 00:09:29,000
+Comb, dot, Google, hello, world will be completely different class, that's why for the package
+
+132
+00:09:29,000 --> 00:09:35,000
+names reverse order of the main name is used my domain name because it's unique.
+
+133
+00:09:36,000 --> 00:09:42,000
+Also packages I use for making search and locating and usage of classes, interfaces, enumerations
+
+134
+00:09:42,000 --> 00:09:49,000
+and annotations easier later will learn that we can restrict access from different packages to the classes.
+
+135
+00:09:49,000 --> 00:09:51,000
+Inside are the packages.
+
+136
+00:09:51,000 --> 00:10:00,000
+Let's create package following with this bottom comb I Tibbles and your last name and press finish Pathum.
+
+137
+00:10:02,000 --> 00:10:09,000
+You see a package declaration goes on top of the file here during the course, we'll run with you hotkeys,
+
+138
+00:10:10,000 --> 00:10:13,000
+for example, control class will delete the line.
+
+139
+00:10:14,000 --> 00:10:18,000
+Let's press control to remove this single line to the common.
+
+140
+00:10:19,000 --> 00:10:27,000
+Eclipse has other suggestion support, what a subtle suggestion, let's start typing here, System C.
+
+141
+00:10:28,000 --> 00:10:35,000
+Press controlled glass space, now you see this dropdown list eclipses trying to guess what you would
+
+142
+00:10:35,000 --> 00:10:42,000
+like to type here, select type which you need from the least press center type dot.
+
+143
+00:10:43,000 --> 00:10:52,000
+And again, at a suggestion I will go with out here, press center dot start typing print.
+
+144
+00:10:53,000 --> 00:10:54,000
+And here is our method.
+
+145
+00:10:56,000 --> 00:10:57,000
+That's right, string literal here.
+
+146
+00:10:58,000 --> 00:10:58,000
+Hello, world.
+
+147
+00:11:00,000 --> 00:11:06,000
+Asterisk near the file name means the file is not safe birth control plus s to save the file.
+
+148
+00:11:07,000 --> 00:11:15,000
+You can run your program in different ways, first option for you is mouse right click run s Java application.
+
+149
+00:11:16,000 --> 00:11:22,000
+The second option is to find this icon here and again, run s Java application.
+
+150
+00:11:23,000 --> 00:11:27,000
+And the third option is Hotkey Control Class F 11.
+
+151
+00:11:28,000 --> 00:11:29,000
+Let's run our program now.
+
+152
+00:11:30,000 --> 00:11:32,000
+And here we have output.
+
+153
+00:11:32,000 --> 00:11:35,000
+Hello, world, congratulations.
+
+154
+00:11:36,000 --> 00:11:39,000
+One more trick for out.
+
+155
+00:11:39,000 --> 00:11:45,000
+You can use something like this, just type this out and press controlled space.
+
+156
+00:11:45,000 --> 00:11:50,000
+You get system out into then and now.
+
+157
+00:11:50,000 --> 00:11:53,000
+Let's recap what we have learned today after this lesson.
+
+158
+00:11:53,000 --> 00:11:57,000
+We know what is integrated development environment.
+
+159
+00:11:57,000 --> 00:12:00,000
+What are most popular ideas for Java development?
+
+160
+00:12:01,000 --> 00:12:03,000
+How to configure Eclipse on your computer.
+
+161
+00:12:04,000 --> 00:12:11,000
+You learned the concept of packages and created your first project in Eclipse and now your homework
+
+162
+00:12:13,000 --> 00:12:13,000
+download.
+
+163
+00:12:13,000 --> 00:12:17,000
+I guess you can choose whatever idea you wish.
+
+164
+00:12:17,000 --> 00:12:22,000
+Install it on your computer and create Hello World Project in your ID.
+
diff --git a/02 - Java Basics/006 Comments in Java source code_en.srt b/02 - Java Basics/006 Comments in Java source code_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..b5b78705d9b65cf942b80c1d85714bbcd8b08598
--- /dev/null
+++ b/02 - Java Basics/006 Comments in Java source code_en.srt
@@ -0,0 +1,380 @@
+1
+00:00:05,000 --> 00:00:07,000
+In this lecture, we'll run with you.
+
+2
+00:00:07,000 --> 00:00:12,000
+What comments are and what type of comments are available in Java source code and apart from that,
+
+3
+00:00:12,000 --> 00:00:16,000
+we'll talk together regarding Deep's and best practices while using comments.
+
+4
+00:00:17,000 --> 00:00:20,000
+First of all, let's come up with a common definition here.
+
+5
+00:00:21,000 --> 00:00:25,000
+The Java comments are statements that are not executed by GBM.
+
+6
+00:00:25,000 --> 00:00:31,000
+The comments can be used to provide information or explanation about the variable method class or any
+
+7
+00:00:31,000 --> 00:00:32,000
+statement.
+
+8
+00:00:32,000 --> 00:00:35,000
+It can also be used to hide program code temporarily.
+
+9
+00:00:36,000 --> 00:00:40,000
+Comments often used to live so-called to do comments mentions.
+
+10
+00:00:40,000 --> 00:00:43,000
+Do not forget to restructure code or to add something in the future.
+
+11
+00:00:44,000 --> 00:00:46,000
+There are three types of comments in Java.
+
+12
+00:00:46,000 --> 00:00:49,000
+Single line, multiline and Javadoc.
+
+13
+00:00:50,000 --> 00:00:54,000
+Let's take a closer look at how comments are looked like in our clip's workspace.
+
+14
+00:00:56,000 --> 00:01:02,000
+Here is our hello world application, which we all know, let's add a single line comment right after
+
+15
+00:01:02,000 --> 00:01:03,000
+console output.
+
+16
+00:01:04,000 --> 00:01:10,000
+That was to do at more court here in the future.
+
+17
+00:01:11,000 --> 00:01:17,000
+By the way, in the clips, if you want to find all to do comments in your code, just go to window
+
+18
+00:01:17,000 --> 00:01:19,000
+shoyu desks.
+
+19
+00:01:20,000 --> 00:01:21,000
+Here it is.
+
+20
+00:01:22,000 --> 00:01:29,000
+Just don't forget to save your file before that eclipse passes all to the comments and lists it here.
+
+21
+00:01:29,000 --> 00:01:31,000
+I used this too many times.
+
+22
+00:01:32,000 --> 00:01:34,000
+There is a hotkey for single line comment.
+
+23
+00:01:35,000 --> 00:01:41,000
+For example, you can comment this code line by pressing control plus slash and uncommented in the same
+
+24
+00:01:41,000 --> 00:01:42,000
+way.
+
+25
+00:01:42,000 --> 00:01:49,000
+You can select few lines, for example, the whole method, and call it the same way with hotkeys.
+
+26
+00:01:50,000 --> 00:01:58,000
+And uncommented, if you wish, with the hotkeys now let's create multiline common type slash asterisk
+
+27
+00:01:58,000 --> 00:01:59,000
+and enter.
+
+28
+00:02:00,000 --> 00:02:07,000
+You see how Eclipse helps us to write Multiline Command, you can type something like this, please
+
+29
+00:02:08,000 --> 00:02:11,000
+do not remove this quote.
+
+30
+00:02:12,000 --> 00:02:18,000
+And now let me show you, Javadoc, the first thing you should know about Javadoc is that this type
+
+31
+00:02:18,000 --> 00:02:23,000
+of comments can be converted to nice looking TAMAO pages in JDK.
+
+32
+00:02:23,000 --> 00:02:29,000
+We have Javadoc program which generates these e-mail pages out of our source code.
+
+33
+00:02:30,000 --> 00:02:31,000
+Let me show you example.
+
+34
+00:02:32,000 --> 00:02:35,000
+Here is official javadoc of string class.
+
+35
+00:02:35,000 --> 00:02:39,000
+You can see class description, constructor, fields' methods.
+
+36
+00:02:40,000 --> 00:02:41,000
+All of them are clickable.
+
+37
+00:02:42,000 --> 00:02:43,000
+For example, let me click here.
+
+38
+00:02:44,000 --> 00:02:46,000
+You can generate the same documentation.
+
+39
+00:02:46,000 --> 00:02:48,000
+Let's learn how to do this.
+
+40
+00:02:49,000 --> 00:02:52,000
+Let's create Java documentation for our main method.
+
+41
+00:02:53,000 --> 00:02:56,000
+Slash Nebel Asterisk Enter.
+
+42
+00:02:57,000 --> 00:03:02,000
+And here your comment goes the entry point to that program.
+
+43
+00:03:04,000 --> 00:03:12,000
+You can see the stack there, it is used to add parameter to parameter section in Javadoc, I will share
+
+44
+00:03:12,000 --> 00:03:15,000
+with you more tags to learn in the homework section.
+
+45
+00:03:16,000 --> 00:03:18,000
+Meanwhile, let's add clarification here.
+
+46
+00:03:19,000 --> 00:03:21,000
+Input arguments.
+
+47
+00:03:22,000 --> 00:03:25,000
+Let's also add Javadoc to our class.
+
+48
+00:03:27,000 --> 00:03:31,000
+You can see Ostertag here, I will leave the next comment here.
+
+49
+00:03:32,000 --> 00:03:35,000
+Hello, world application.
+
+50
+00:03:36,000 --> 00:03:44,000
+Now we can save the file, we are good to generate javadoc to generate javadoc from Eclipse Project,
+
+51
+00:03:44,000 --> 00:03:52,000
+generate javadoc you configurations you can configure output folder for your documentation.
+
+52
+00:03:52,000 --> 00:03:56,000
+I will leave default settings here and will press finish.
+
+53
+00:03:58,000 --> 00:04:06,000
+Now, you can see that dog directly appeared in our project, let's expand it, find index, dot Ashton,
+
+54
+00:04:06,000 --> 00:04:08,000
+nail file and open it.
+
+55
+00:04:08,000 --> 00:04:13,000
+You can open it in any browser or you can just use built in Eclipse browser.
+
+56
+00:04:14,000 --> 00:04:14,000
+Right.
+
+57
+00:04:14,000 --> 00:04:17,000
+Click open with Web browser.
+
+58
+00:04:19,000 --> 00:04:23,000
+And here we have our documentation, congratulations.
+
+59
+00:04:24,000 --> 00:04:27,000
+This is your first documentation to your first program.
+
+60
+00:04:27,000 --> 00:04:29,000
+You see our class here.
+
+61
+00:04:29,000 --> 00:04:31,000
+Here's our class description.
+
+62
+00:04:31,000 --> 00:04:37,000
+Orser Constructor's Method's, here is our main message description.
+
+63
+00:04:38,000 --> 00:04:40,000
+And here's our arguments description.
+
+64
+00:04:41,000 --> 00:04:45,000
+Let me share with you tips and best practices of using comments in Java.
+
+65
+00:04:46,000 --> 00:04:51,000
+The first thing you need to remember in case you want to comment, chunk of code to hide this code,
+
+66
+00:04:51,000 --> 00:04:54,000
+just remove it if you don't need this code.
+
+67
+00:04:55,000 --> 00:04:58,000
+That means you don't need this code.
+
+68
+00:04:58,000 --> 00:05:05,000
+I faced with this so many times when developers comments there or others code and leave it just in case.
+
+69
+00:05:05,000 --> 00:05:09,000
+Be smart, you will learn how to use version control systems.
+
+70
+00:05:09,000 --> 00:05:16,000
+And believe me, there is no such cases when you need to leave code just in case, especially when you
+
+71
+00:05:16,000 --> 00:05:21,000
+have a version control system, because this will end up having a lot of comment at code, which nobody
+
+72
+00:05:21,000 --> 00:05:25,000
+knows what is it for and you won't be able to support it.
+
+73
+00:05:25,000 --> 00:05:30,000
+My next advice always remember that comments require maintenance.
+
+74
+00:05:30,000 --> 00:05:33,000
+You need to keep them up to date and relevant.
+
+75
+00:05:33,000 --> 00:05:35,000
+Don't forget about this.
+
+76
+00:05:35,000 --> 00:05:40,000
+I'm trying to be a good tutor and I am saying that right in Javadoc is great.
+
+77
+00:05:40,000 --> 00:05:43,000
+But also I have to prepare you for real life.
+
+78
+00:05:44,000 --> 00:05:45,000
+In real life.
+
+79
+00:05:45,000 --> 00:05:48,000
+You would notice that not all developers write comments.
+
+80
+00:05:48,000 --> 00:05:49,000
+Why?
+
+81
+00:05:49,000 --> 00:05:56,000
+Because sometimes they are not needed because you have live documentation, your unit tests in your
+
+82
+00:05:56,000 --> 00:05:59,000
+test data as you change your code.
+
+83
+00:05:59,000 --> 00:06:04,000
+We'll discuss in later lessons Giggie approach and goals of unit testing.
+
+84
+00:06:04,000 --> 00:06:11,000
+But for now, just remember, in case you have solid unit test code coverage and you follow Jawa naming
+
+85
+00:06:11,000 --> 00:06:17,000
+conventions and choose meaningful names for variables and methods, sometimes javadoc in this case is
+
+86
+00:06:17,000 --> 00:06:21,000
+redundant so they will learn what comments are.
+
+87
+00:06:21,000 --> 00:06:24,000
+Now we also know what types of comments we have in Java.
+
+88
+00:06:25,000 --> 00:06:31,000
+You saw how to generate Javadoc from the source code and also I shared with you tips and best practices
+
+89
+00:06:31,000 --> 00:06:33,000
+of common usage in real life.
+
+90
+00:06:34,000 --> 00:06:42,000
+And your homework created Javadoc for your Hello World application and generate documentation from your
+
+91
+00:06:42,000 --> 00:06:42,000
+source code.
+
+92
+00:06:43,000 --> 00:06:46,000
+Also, during the lesson you saw only a few javadoc decks.
+
+93
+00:06:47,000 --> 00:06:53,000
+There are no need to go over each of them because most of them self describing, you know, already
+
+94
+00:06:53,000 --> 00:06:54,000
+how to use them.
+
+95
+00:06:54,000 --> 00:06:58,000
+Just take a look through this table to know what other text you can use.
+
diff --git a/02 - Java Basics/006 Homework.url b/02 - Java Basics/006 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..44e7bd64a394730d02b32e9f12527c3ebe76ee03
--- /dev/null
+++ b/02 - Java Basics/006 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1Zh60MWoy3WfDQaUzcw7r0kJIPITbVl0pSdKDFufJ-Fs/edit
\ No newline at end of file
diff --git a/02 - Java Basics/006 Source-code-of-the-example-used-in-the-lesson.url b/02 - Java Basics/006 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..c8fcb96f69169f89e3d33e5624463871324db911
--- /dev/null
+++ b/02 - Java Basics/006 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/javadoc/HelloWorld.java
\ No newline at end of file
diff --git a/02 - Java Basics/007 Quiz Java Basics - Check yourself.html b/02 - Java Basics/007 Quiz Java Basics - Check yourself.html
new file mode 100644
index 0000000000000000000000000000000000000000..c458c3c08316eb26ca35b6f25fb05514d59e2b08
--- /dev/null
+++ b/02 - Java Basics/007 Quiz Java Basics - Check yourself.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Quiz Java Basics - Check yourself
+
+
+
+
+
The quiz doesn’t require you to log in or submit any personal information. Your data privacy is my priority.
The Quiz covers content from the following lessons:
What is Java and JDK
JDK Installation
First application: Hello World App
Integrated Development Environment, Eclipse Overview
Comments in Java Source Code
Quiz Instructions:
This quiz is designed to help you check your understanding of the content from the previous lessons. All questions are based only on material covered in the lessons you've already watched, so there’s no need to worry about unfamiliar topics.
Each question has one correct answer. Select the best answer and click "Submit" when you're ready.
After submitting, you'll see your score. For each question, you earn 1 point.
Click "View Results" to see the explanations for each correct answer. Reviewing these explanations can help reinforce your understanding.
If you score below 70%, I recommend revisiting the previous lessons. However, if the explanations make sense and you’re confident in your understanding, feel free to move on.
If any explanations are unclear, please don’t hesitate to post questions in the Q&A section—I’m here to help!
+
+
+
+
diff --git a/02 - Java Basics/external-links.txt b/02 - Java Basics/external-links.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2c5ccf7e44123070d083a07bf79ac49cd3d4bb1a
--- /dev/null
+++ b/02 - Java Basics/external-links.txt
@@ -0,0 +1,24 @@
+
+002 How-to-set-up-env-variables-on-Mac-OS
+https://docs.google.com/document/d/1_p8YAQ3khC8fTkTM4r1oGuGW___XjGTa1DmMGaGMjA8/edit?usp=sharing
+
+002 Homework
+https://docs.google.com/document/d/19g5WpFD0Jygpvuda5-PC_rNt3wDJ8d_AICvc4coP0_s/edit?usp=sharing
+
+003 Homework
+https://docs.google.com/document/d/1NoTwR9ZiOzdE_ONc45jJv8sLVtJqiZm-eGz-S9Guv-w/edit?folder=1XkdXhkewYf3n2ak7mRbUNW3HDc_mCMvP
+
+004 .bat-file
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/hw.bat
+
+004 Hello-World-Application
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/HelloWorld.java
+
+005 Homework
+https://docs.google.com/document/d/13PLSDOQUUZAqRDhgHvNhKJUNZRvuQhe4ymqS2DAzoM8/edit?folder=1XkdXhkewYf3n2ak7mRbUNW3HDc_mCMvP
+
+006 Homework
+https://docs.google.com/document/d/1Zh60MWoy3WfDQaUzcw7r0kJIPITbVl0pSdKDFufJ-Fs/edit
+
+006 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/javadoc/HelloWorld.java
diff --git a/03 - Primitive Data Types, Variables and Arrays/001 Homework.url b/03 - Primitive Data Types, Variables and Arrays/001 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..518c7ad75a11672fe7de8066b571167081f67d4e
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/001 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1kqT7AkWTHAUXuJtA9pijWeqwQB7v-oVDjc3tsgajML4/edit?usp=sharing
\ No newline at end of file
diff --git a/03 - Primitive Data Types, Variables and Arrays/001 Primitive types and variables_en.srt b/03 - Primitive Data Types, Variables and Arrays/001 Primitive types and variables_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..e5538dd901b28ad814ff84e4671a99d19db85ab4
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/001 Primitive types and variables_en.srt
@@ -0,0 +1,940 @@
+1
+00:00:05,000 --> 00:00:07,000
+Today we have a very important topic.
+
+2
+00:00:07,000 --> 00:00:10,000
+We will learn how data is stored in Java programs.
+
+3
+00:00:11,000 --> 00:00:14,000
+We will talk with you in details about primitive types.
+
+4
+00:00:14,000 --> 00:00:17,000
+Also we will discuss what variables are.
+
+5
+00:00:17,000 --> 00:00:22,000
+After this lesson, you will have all necessary knowledge regarding primitive types to proceed with
+
+6
+00:00:22,000 --> 00:00:23,000
+your Java education.
+
+7
+00:00:24,000 --> 00:00:28,000
+We will start this lesson from theory and after that we will play with primitive types and variables
+
+8
+00:00:28,000 --> 00:00:30,000
+in eclipse.
+
+9
+00:00:30,000 --> 00:00:35,000
+It will be very important to understand how you can convert primitive types between each other.
+
+10
+00:00:35,000 --> 00:00:41,000
+First of all, let's try to understand what data types are available for us in Java, how we can store
+
+11
+00:00:41,000 --> 00:00:46,000
+information in our programs to be able to work with it in the future.
+
+12
+00:00:46,000 --> 00:00:49,000
+There are two major groups of data types in Java.
+
+13
+00:00:49,000 --> 00:00:51,000
+They are primitive types.
+
+14
+00:00:51,000 --> 00:00:53,000
+Reference types.
+
+15
+00:00:53,000 --> 00:00:55,000
+Reference types consist of classes.
+
+16
+00:00:55,000 --> 00:00:56,000
+Annotations.
+
+17
+00:00:56,000 --> 00:00:57,000
+Interfaces.
+
+18
+00:00:57,000 --> 00:00:58,000
+Enumerations.
+
+19
+00:00:58,000 --> 00:00:59,000
+Arrays.
+
+20
+00:00:59,000 --> 00:01:05,000
+We will not discuss reference types today in the lesson, but we will talk about them later in the course.
+
+21
+00:01:05,000 --> 00:01:08,000
+Today we will talk about primitive types.
+
+22
+00:01:08,000 --> 00:01:11,000
+They are integers, floating point numbers.
+
+23
+00:01:11,000 --> 00:01:12,000
+Booleans.
+
+24
+00:01:12,000 --> 00:01:14,000
+Characters.
+
+25
+00:01:14,000 --> 00:01:16,000
+Probably you already interested.
+
+26
+00:01:16,000 --> 00:01:19,000
+What is the difference between primitive and reference types?
+
+27
+00:01:19,000 --> 00:01:25,000
+There are many differences between them and we will learn all of them as we keep learning Java.
+
+28
+00:01:25,000 --> 00:01:31,000
+But the main difference is that primitive variables store the actual values, whereas reference variables
+
+29
+00:01:31,000 --> 00:01:35,000
+store the addresses of the objects they refer to.
+
+30
+00:01:35,000 --> 00:01:41,000
+The primitive types in Java are analogous to the simple types found in most non object oriented languages.
+
+31
+00:01:42,000 --> 00:01:47,000
+If Java object oriented language, why then we still need to use primitive sometimes over objects and
+
+32
+00:01:47,000 --> 00:01:48,000
+reference types.
+
+33
+00:01:48,000 --> 00:01:51,000
+There is only one reason for this.
+
+34
+00:01:51,000 --> 00:01:52,000
+It's efficiency.
+
+35
+00:01:52,000 --> 00:01:58,000
+Making the primitive types into objects would have degraded performance too much.
+
+36
+00:01:58,000 --> 00:02:03,000
+As you become more mature programmer, you will find how to use properly primitive types and reference
+
+37
+00:02:03,000 --> 00:02:04,000
+types.
+
+38
+00:02:04,000 --> 00:02:08,000
+But right now let's review each primitive type in detail.
+
+39
+00:02:08,000 --> 00:02:12,000
+Here is a table which will help you to learn and understand all primitive types.
+
+40
+00:02:12,000 --> 00:02:15,000
+You can find next columns here.
+
+41
+00:02:15,000 --> 00:02:15,000
+Type.
+
+42
+00:02:15,000 --> 00:02:16,000
+Name.
+
+43
+00:02:16,000 --> 00:02:20,000
+Size, minimum value, maximum value and wrapper type.
+
+44
+00:02:21,000 --> 00:02:27,000
+Primitive wrapper class is wrapper that encapsulates or wraps primitive data types, so that these can
+
+45
+00:02:27,000 --> 00:02:29,000
+be used to create objects.
+
+46
+00:02:29,000 --> 00:02:31,000
+Why do we need this?
+
+47
+00:02:31,000 --> 00:02:35,000
+Objects might have their own behavior and methods.
+
+48
+00:02:35,000 --> 00:02:38,000
+We will use objects in Java collections, for example.
+
+49
+00:02:38,000 --> 00:02:46,000
+The simplest example is that primitive type int just storing value in the variable integer, not only
+
+50
+00:02:46,000 --> 00:02:49,000
+storing value, but has its own behavior.
+
+51
+00:02:49,000 --> 00:02:55,000
+For example, integer object can compare itself with other integers, which provides necessary application
+
+52
+00:02:55,000 --> 00:02:59,000
+programming interface to create self sorting collections.
+
+53
+00:02:59,000 --> 00:03:01,000
+This is just one example.
+
+54
+00:03:01,000 --> 00:03:07,000
+From this table you can see that main difference between simple integers is amount of memory allocated
+
+55
+00:03:07,000 --> 00:03:08,000
+for the variables.
+
+56
+00:03:08,000 --> 00:03:12,000
+This also impacts value range of each primitive type.
+
+57
+00:03:12,000 --> 00:03:16,000
+Take into account that data in computer stored in binary format.
+
+58
+00:03:16,000 --> 00:03:21,000
+The amount of bits allocated to the variable tells us what range of data we can store in it.
+
+59
+00:03:22,000 --> 00:03:27,000
+We will learn number systems in the next lessons, and you will understand why in one byte, which is
+
+60
+00:03:27,000 --> 00:03:29,000
+equal to eight bits.
+
+61
+00:03:29,000 --> 00:03:33,000
+We can store values from -128 to 127.
+
+62
+00:03:34,000 --> 00:03:40,000
+You can see that two bytes are allocated for short, four bytes allocated for int eight bytes allocated
+
+63
+00:03:40,000 --> 00:03:41,000
+for long.
+
+64
+00:03:41,000 --> 00:03:47,000
+If we are talking about floating point numbers, then we need to know that for each float variable,
+
+65
+00:03:47,000 --> 00:03:51,000
+four bytes are allocated and for double eight bytes are allocated.
+
+66
+00:03:51,000 --> 00:03:56,000
+The interesting thing how much memory we need to allocate for boolean value.
+
+67
+00:03:56,000 --> 00:03:58,000
+The right answer would be here.
+
+68
+00:03:58,000 --> 00:04:00,000
+That size of a boolean is platform dependent.
+
+69
+00:04:00,000 --> 00:04:01,000
+Why?
+
+70
+00:04:01,000 --> 00:04:06,000
+Because to store true or false, which in binary format 1 or 0 is enough.
+
+71
+00:04:06,000 --> 00:04:07,000
+Even one bit.
+
+72
+00:04:08,000 --> 00:04:10,000
+The problem is that not always.
+
+73
+00:04:10,000 --> 00:04:12,000
+You can reserve exactly one bit for the variable.
+
+74
+00:04:12,000 --> 00:04:16,000
+Most likely this will be one byte characters.
+
+75
+00:04:16,000 --> 00:04:21,000
+We need characters to be able to describe all symbols of Unicode.
+
+76
+00:04:21,000 --> 00:04:23,000
+Cyrillic special characters.
+
+77
+00:04:23,000 --> 00:04:24,000
+ET cetera.
+
+78
+00:04:24,000 --> 00:04:27,000
+We have two bytes for char primitive type.
+
+79
+00:04:27,000 --> 00:04:33,000
+This gives us a range from 0 to 65,535.
+
+80
+00:04:33,000 --> 00:04:38,000
+Each value will represent the sequence number of character according to Unicode table.
+
+81
+00:04:38,000 --> 00:04:44,000
+You might be wondered why short type also have two bytes allocated but have different range of values.
+
+82
+00:04:44,000 --> 00:04:47,000
+In Java you can't declare a signed or unsigned variables.
+
+83
+00:04:47,000 --> 00:04:50,000
+This is managed on gvm level.
+
+84
+00:04:50,000 --> 00:04:57,000
+So char has the same amount of bytes allocated, but just because it's unsigned it has different range.
+
+85
+00:04:57,000 --> 00:05:02,000
+Probably you already heard that Java is a strongly typed language part of Java safety.
+
+86
+00:05:03,000 --> 00:05:05,000
+And robustness comes from this fact.
+
+87
+00:05:05,000 --> 00:05:06,000
+What does it mean?
+
+88
+00:05:06,000 --> 00:05:09,000
+It means that every variable has a type.
+
+89
+00:05:09,000 --> 00:05:14,000
+Every expression has a type, and each type is strictly defined.
+
+90
+00:05:14,000 --> 00:05:21,000
+Also, all assignments, including parameter passing to the method call, are checked for the type compatibility.
+
+91
+00:05:21,000 --> 00:05:27,000
+The Java compiler checks all expressions and parameters to ensure that the types are compatible.
+
+92
+00:05:27,000 --> 00:05:31,000
+In case of any type, mismatch programs simply won't be compiled.
+
+93
+00:05:32,000 --> 00:05:36,000
+We will also learn in this lesson how type conversion works in Java.
+
+94
+00:05:36,000 --> 00:05:38,000
+So what is variable?
+
+95
+00:05:38,000 --> 00:05:42,000
+Variable is a piece of memory that can contain a data value.
+
+96
+00:05:42,000 --> 00:05:49,000
+You can see that each variable has a data type even when you create variable with var keyword.
+
+97
+00:05:49,000 --> 00:05:54,000
+Compiler identifies type of this variable for the variable name usually used.
+
+98
+00:05:54,000 --> 00:05:56,000
+Nouns started from the small letter.
+
+99
+00:05:56,000 --> 00:05:59,000
+You can't use keywords for the variable names.
+
+100
+00:05:59,000 --> 00:06:00,000
+What are keywords?
+
+101
+00:06:00,000 --> 00:06:06,000
+For example int byte, short class, public package.
+
+102
+00:06:06,000 --> 00:06:08,000
+These are all keywords.
+
+103
+00:06:08,000 --> 00:06:13,000
+Keyword is a word with a predefined meaning in Java programming language syntax.
+
+104
+00:06:14,000 --> 00:06:18,000
+I will share with you a link to all keywords after this lesson so you could learn them.
+
+105
+00:06:18,000 --> 00:06:22,000
+There is no need to go over each of those right now.
+
+106
+00:06:22,000 --> 00:06:24,000
+Now let's practice.
+
+107
+00:06:24,000 --> 00:06:28,000
+We will take a look how to declare variables of specific types in Java.
+
+108
+00:06:28,000 --> 00:06:33,000
+For this lesson, I created a new class with name primitive types in the package primitives.
+
+109
+00:06:33,000 --> 00:06:38,000
+Let's declare a variable of specific type byte b equals one.
+
+110
+00:06:39,000 --> 00:06:46,000
+So here is variable declaration short s and here is variable initialization.
+
+111
+00:06:46,000 --> 00:06:48,000
+S equals to.
+
+112
+00:06:49,000 --> 00:06:52,000
+You can declare an initialize variable in one line.
+
+113
+00:06:53,000 --> 00:06:55,000
+Int I equals three.
+
+114
+00:06:57,000 --> 00:06:59,000
+Long L equals four.
+
+115
+00:07:00,000 --> 00:07:01,000
+Let's proceed.
+
+116
+00:07:01,000 --> 00:07:03,000
+Here is a char variable.
+
+117
+00:07:03,000 --> 00:07:06,000
+Char c equals a.
+
+118
+00:07:06,000 --> 00:07:11,000
+You can notice that characters literals are notated with single quotes.
+
+119
+00:07:11,000 --> 00:07:13,000
+Boolean literals only.
+
+120
+00:07:13,000 --> 00:07:14,000
+True and false.
+
+121
+00:07:14,000 --> 00:07:17,000
+Boolean bool equals true.
+
+122
+00:07:18,000 --> 00:07:20,000
+And now let's create float variable.
+
+123
+00:07:20,000 --> 00:07:23,000
+Float f equals 1.2.
+
+124
+00:07:25,000 --> 00:07:26,000
+Compilation error.
+
+125
+00:07:26,000 --> 00:07:27,000
+What's wrong?
+
+126
+00:07:27,000 --> 00:07:32,000
+If you hover over value, you will see the reason the issue is typed.
+
+127
+00:07:32,000 --> 00:07:35,000
+Mismatch cannot convert from double to float.
+
+128
+00:07:35,000 --> 00:07:41,000
+You should know that floating point number literals by default has typed double, and you can't convert
+
+129
+00:07:41,000 --> 00:07:46,000
+from double to float because double requires more memory allocated than float.
+
+130
+00:07:46,000 --> 00:07:51,000
+Does it make sense now to tell compiler that this is flawed?
+
+131
+00:07:51,000 --> 00:07:52,000
+We are using a flatter.
+
+132
+00:07:52,000 --> 00:07:55,000
+You can use capital F letter if you wish.
+
+133
+00:07:55,000 --> 00:07:57,000
+That would mean the same.
+
+134
+00:07:57,000 --> 00:08:04,000
+Talking about types of literals, it is worth to mention that all integer literals has int type by default.
+
+135
+00:08:04,000 --> 00:08:06,000
+Let's have a look at this example.
+
+136
+00:08:06,000 --> 00:08:11,000
+Long l two equals 2 billion.
+
+137
+00:08:13,000 --> 00:08:18,000
+By the way, you can see that you can separate digits with underscore to increase readability.
+
+138
+00:08:18,000 --> 00:08:25,000
+You can see that there is no error right now because int literal is still within int range.
+
+139
+00:08:25,000 --> 00:08:28,000
+But let me add few more zeros here.
+
+140
+00:08:28,000 --> 00:08:30,000
+And you see compilation error.
+
+141
+00:08:30,000 --> 00:08:31,000
+Why?
+
+142
+00:08:31,000 --> 00:08:35,000
+Because literal of type int is out of range.
+
+143
+00:08:35,000 --> 00:08:36,000
+What to do in this case.
+
+144
+00:08:36,000 --> 00:08:40,000
+Just tell compiler that this literal has type long.
+
+145
+00:08:40,000 --> 00:08:41,000
+How?
+
+146
+00:08:41,000 --> 00:08:44,000
+Just put a letter at the end like this.
+
+147
+00:08:45,000 --> 00:08:47,000
+Let's also create double variable.
+
+148
+00:08:47,000 --> 00:08:50,000
+Double D equals 1.3.
+
+149
+00:08:51,000 --> 00:08:54,000
+As you can see there is no errors here.
+
+150
+00:08:54,000 --> 00:09:00,000
+Previously we discussed that you can declare an initialize variable with var keyword like this.
+
+151
+00:09:00,000 --> 00:09:03,000
+VAR v equals one.
+
+152
+00:09:04,000 --> 00:09:08,000
+In this case, compiler will help us to identify type of this variable.
+
+153
+00:09:08,000 --> 00:09:14,000
+So after first initialization you can assign only integers to this variable.
+
+154
+00:09:14,000 --> 00:09:16,000
+You can't assign boolean.
+
+155
+00:09:18,000 --> 00:09:19,000
+On floating point numbers.
+
+156
+00:09:21,000 --> 00:09:24,000
+Because this variable has int type right now.
+
+157
+00:09:26,000 --> 00:09:28,000
+And now we'll run primitive types.
+
+158
+00:09:28,000 --> 00:09:29,000
+Conversion.
+
+159
+00:09:29,000 --> 00:09:34,000
+When we are talking about primitive types conversion, just keep in mind the boxes.
+
+160
+00:09:34,000 --> 00:09:37,000
+You always can put smaller box into bigger one.
+
+161
+00:09:37,000 --> 00:09:42,000
+That means you can always put value of two bytes into four bytes.
+
+162
+00:09:42,000 --> 00:09:45,000
+Int I three equals s.
+
+163
+00:09:46,000 --> 00:09:47,000
+As is short here.
+
+164
+00:09:49,000 --> 00:09:53,000
+You can put the value of one byte into four bytes variable.
+
+165
+00:09:53,000 --> 00:09:56,000
+You can also convert int to char.
+
+166
+00:09:57,000 --> 00:10:00,000
+Sha c two equals 100.
+
+167
+00:10:00,000 --> 00:10:06,000
+In this case, Sha variable will be initialized with character, which has sequence number 100 in Unicode
+
+168
+00:10:06,000 --> 00:10:07,000
+table.
+
+169
+00:10:07,000 --> 00:10:09,000
+Let's check what this character is.
+
+170
+00:10:10,000 --> 00:10:12,000
+System.out.println.
+
+171
+00:10:12,000 --> 00:10:13,000
+C two.
+
+172
+00:10:15,000 --> 00:10:17,000
+This would be the character.
+
+173
+00:10:17,000 --> 00:10:23,000
+The same conversion rules are also applied if you have double variable vs eight bytes allocated and
+
+174
+00:10:23,000 --> 00:10:30,000
+you want to assign to it int, which is four bytes, double D two equals I three.
+
+175
+00:10:30,000 --> 00:10:33,000
+You can assign eight bytes long to eight bytes.
+
+176
+00:10:33,000 --> 00:10:36,000
+Double D two equals L.
+
+177
+00:10:38,000 --> 00:10:38,000
+All conversions.
+
+178
+00:10:38,000 --> 00:10:44,000
+Examples which we just saw are examples of widening conversion in most cases.
+
+179
+00:10:44,000 --> 00:10:50,000
+Widening conversion happens without losing data, with some exceptions, and widening conversion of
+
+180
+00:10:50,000 --> 00:10:56,000
+an int or a long value to float or of a long value to double may result in loss of precision.
+
+181
+00:10:57,000 --> 00:11:01,000
+That is, the result may lose some of the least significant bits of the value.
+
+182
+00:11:02,000 --> 00:11:08,000
+In this case, the resulting floating point value will be a correctly rounded version of the integer
+
+183
+00:11:08,000 --> 00:11:14,000
+value using I, E75 for round to nearest mode.
+
+184
+00:11:14,000 --> 00:11:19,000
+If we would talk about narrowing conversion, it can't be done automatically.
+
+185
+00:11:19,000 --> 00:11:26,000
+For example, if I would try to assign int variable to byte variable like this b equals i3.
+
+186
+00:11:27,000 --> 00:11:33,000
+We see here a compilation error because compiler can't convert int to byte.
+
+187
+00:11:33,000 --> 00:11:40,000
+What we can do as programmers only in case when we need this, we can tell compiler that we know what
+
+188
+00:11:40,000 --> 00:11:45,000
+we do, and tell compiler to calm down, and we are sure that this is byte.
+
+189
+00:11:45,000 --> 00:11:47,000
+Just type in parentheses.
+
+190
+00:11:48,000 --> 00:11:48,000
+Bite.
+
+191
+00:11:50,000 --> 00:11:53,000
+You can do the same way with all other narrowing conversion.
+
+192
+00:11:53,000 --> 00:12:00,000
+You might be wondered if all integer literals have any type by default, why we don't have compilation
+
+193
+00:12:00,000 --> 00:12:06,000
+error when we assign int literal to byte like this byte b2 equals ten.
+
+194
+00:12:07,000 --> 00:12:13,000
+We don't have compilation error because compiler can read literals value during the compilation process
+
+195
+00:12:13,000 --> 00:12:17,000
+and identify that this value is within the byte range.
+
+196
+00:12:18,000 --> 00:12:22,000
+But if you would add additional zeros here, we would see compilation error.
+
+197
+00:12:23,000 --> 00:12:29,000
+Now I can put bite here, but what would happen if I would try to print bite to console?
+
+198
+00:12:29,000 --> 00:12:31,000
+Your best guess?
+
+199
+00:12:32,000 --> 00:12:34,000
+Sis out be to.
+
+200
+00:12:36,000 --> 00:12:39,000
+This situation called overflow.
+
+201
+00:12:39,000 --> 00:12:45,000
+When an integer overflows, it rolls over to the minimum value and begins counting up from there.
+
+202
+00:12:45,000 --> 00:12:49,000
+You know that max positive byte value is 127.
+
+203
+00:12:50,000 --> 00:12:54,000
+Let's put 128 here and see what it would print to us.
+
+204
+00:12:56,000 --> 00:12:58,000
+-128.
+
+205
+00:12:58,000 --> 00:13:05,000
+Be careful with conversion from double to long, even despite eight bytes allocated for double the same
+
+206
+00:13:05,000 --> 00:13:05,000
+as for long.
+
+207
+00:13:06,000 --> 00:13:10,000
+The integers and floating point numbers stored in different way in memory.
+
+208
+00:13:10,000 --> 00:13:17,000
+Conversion from type double to type long requires a non-trivial translation from 64 bit floating point
+
+209
+00:13:17,000 --> 00:13:20,000
+value to the 64 bit integer representation.
+
+210
+00:13:20,000 --> 00:13:25,000
+Depending on the actual runtime value, information may be lost.
+
+211
+00:13:25,000 --> 00:13:30,000
+That's because floating point numbers and integers stored in different way in Java memory.
+
+212
+00:13:31,000 --> 00:13:33,000
+Let's consider this example.
+
+213
+00:13:33,000 --> 00:13:35,000
+We have this long number.
+
+214
+00:13:35,000 --> 00:13:39,000
+Let's convert this value to double and then back to long.
+
+215
+00:13:55,000 --> 00:14:00,000
+Do you see the difference between long and double converted back to long?
+
+216
+00:14:00,000 --> 00:14:05,000
+Just take this into account when converting long to double and vice versa.
+
+217
+00:14:05,000 --> 00:14:12,000
+And probably the last thing which I would like to cover with you for today is Autoboxing and unboxing.
+
+218
+00:14:12,000 --> 00:14:17,000
+At the beginning of this lesson, you saw that each primitive type has its wrapper type.
+
+219
+00:14:17,000 --> 00:14:23,000
+Autoboxing is automatic conversion that the Java compiler makes between the primitive types and their
+
+220
+00:14:23,000 --> 00:14:25,000
+corresponding object wrapper classes.
+
+221
+00:14:25,000 --> 00:14:29,000
+For example, integer I four equals one.
+
+222
+00:14:30,000 --> 00:14:35,000
+So here you can see that it was auto boxed to integer.
+
+223
+00:14:35,000 --> 00:14:38,000
+If the conversion goes the other way.
+
+224
+00:14:38,000 --> 00:14:40,000
+This is called unboxing.
+
+225
+00:14:40,000 --> 00:14:43,000
+Int i5 equals i4.
+
+226
+00:14:44,000 --> 00:14:48,000
+Here you can see that integer was unboxed to int.
+
+227
+00:14:49,000 --> 00:14:53,000
+And now let's recap what we have learned today.
+
+228
+00:14:53,000 --> 00:14:56,000
+After this lesson you know what primitive types are.
+
+229
+00:14:56,000 --> 00:15:01,000
+What variables are you know rules for conversion between primitive types.
+
+230
+00:15:01,000 --> 00:15:04,000
+And you saw what Autoboxing and unboxing is.
+
+231
+00:15:05,000 --> 00:15:07,000
+And now your homework.
+
+232
+00:15:09,000 --> 00:15:10,000
+Read books.
+
+233
+00:15:10,000 --> 00:15:12,000
+Read chapters about primitives.
+
+234
+00:15:12,000 --> 00:15:17,000
+Learn Java keywords and take a look at Oracle documentation regarding primitives.
+
+235
+00:15:17,000 --> 00:15:18,000
+Conversion.
+
diff --git a/03 - Primitive Data Types, Variables and Arrays/001 Source-code-of-the-example-used-in-the-lesson.url b/03 - Primitive Data Types, Variables and Arrays/001 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..31023a4f434910b75c052d868455756ffc7c8b68
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/001 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/primitives/PrimitiveTypes.java
\ No newline at end of file
diff --git a/03 - Primitive Data Types, Variables and Arrays/002 Homework.url b/03 - Primitive Data Types, Variables and Arrays/002 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..5d751e8b36420ef9e4ca3051e7a6451cde519b9c
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/002 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1w12RqSvsfrGWTDd50QKI2RQWrEMmvE-6tSEMcS4tiOE/edit?usp=sharing
\ No newline at end of file
diff --git a/03 - Primitive Data Types, Variables and Arrays/002 Number Systems_en.srt b/03 - Primitive Data Types, Variables and Arrays/002 Number Systems_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..1b644785d887b94e1b4abbb5d1c3239176c1ba27
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/002 Number Systems_en.srt
@@ -0,0 +1,284 @@
+1
+00:00:05,000 --> 00:00:08,000
+In this lesson, we'll run with you no systems.
+
+2
+00:00:09,000 --> 00:00:12,000
+We'll discuss today why we need to understand different numbers systems.
+
+3
+00:00:13,000 --> 00:00:17,000
+We'll learn what binary octal and the hexadecimal number systems are.
+
+4
+00:00:17,000 --> 00:00:23,000
+And we will learn how we can use binary octal and hexadecimal literals in Java source code.
+
+5
+00:00:23,000 --> 00:00:27,000
+Let's start before we jump to binary number system discussion.
+
+6
+00:00:27,000 --> 00:00:31,000
+Let's try to understand why do we need to know numbers systems.
+
+7
+00:00:31,000 --> 00:00:34,000
+The human language consists of words and characters.
+
+8
+00:00:35,000 --> 00:00:38,000
+This type of data is not suitable for computers.
+
+9
+00:00:38,000 --> 00:00:43,000
+When we enter data, the data is converted into electronic pulse.
+
+10
+00:00:43,000 --> 00:00:49,000
+Each pulse is identified as code and the code is converted into numeric format.
+
+11
+00:00:49,000 --> 00:00:56,000
+It gives each number, character and symbol and numeric value number that the computer understands.
+
+12
+00:00:57,000 --> 00:01:03,000
+One of the skills which is useful to programmers is understanding of relationship between number basis.
+
+13
+00:01:04,000 --> 00:01:09,000
+You want to use binary octal or hexadecimal format on a daily basis.
+
+14
+00:01:09,000 --> 00:01:15,000
+But this is an important part of your general education as a software engineer, because sometimes in
+
+15
+00:01:15,000 --> 00:01:22,000
+JDK in source code you will find hexadecimal literals and you need to be prepared to understand the
+
+16
+00:01:22,000 --> 00:01:23,000
+source code.
+
+17
+00:01:24,000 --> 00:01:29,000
+I will try to explain to you different numbers systems with examples as easy as possible.
+
+18
+00:01:30,000 --> 00:01:33,000
+Hope examples will help you to understand the topic.
+
+19
+00:01:34,000 --> 00:01:36,000
+Let's start from binary number system.
+
+20
+00:01:36,000 --> 00:01:38,000
+Binary number system.
+
+21
+00:01:38,000 --> 00:01:43,000
+Radix is two binary digits can only be zero or one.
+
+22
+00:01:43,000 --> 00:01:46,000
+Let's take a look at this binary number.
+
+23
+00:01:46,000 --> 00:01:50,000
+I also identified that this number has base to.
+
+24
+00:01:51,000 --> 00:01:58,000
+As an exercise, let's convert this binary number into decimal format, which we're all used to, to
+
+25
+00:01:58,000 --> 00:01:59,000
+convert to decimal format.
+
+26
+00:01:59,000 --> 00:02:02,000
+Let's split these digits like this.
+
+27
+00:02:03,000 --> 00:02:09,000
+We have rankest now which are started from zero and from the right to left in each rank.
+
+28
+00:02:09,000 --> 00:02:17,000
+You have to do following calculations, multiply the number in each rank by base of numbers, system
+
+29
+00:02:17,000 --> 00:02:18,000
+in the power of rank.
+
+30
+00:02:19,000 --> 00:02:22,000
+For example, let's start from left to right.
+
+31
+00:02:23,000 --> 00:02:25,000
+One is the number here.
+
+32
+00:02:25,000 --> 00:02:33,000
+Let's multiply one by base of the number system, which is two, as we discussed, in the power of the
+
+33
+00:02:33,000 --> 00:02:36,000
+rank, which is three in this case.
+
+34
+00:02:37,000 --> 00:02:44,000
+So it will be one multiplied by eight after we are done with similar calculations for each rank.
+
+35
+00:02:44,000 --> 00:02:46,000
+Let's add these numbers together.
+
+36
+00:02:47,000 --> 00:02:53,000
+Here we have eight plus zero plus two plus one.
+
+37
+00:02:53,000 --> 00:02:58,000
+So this number in binary format equals to 11 in decimal format.
+
+38
+00:02:58,000 --> 00:03:05,000
+Does it make sense now octal number system, octal number system, Reddick's is eight.
+
+39
+00:03:06,000 --> 00:03:13,000
+Notice how in each of these numbers systems, the number of digits contained within the system is name
+
+40
+00:03:13,000 --> 00:03:20,000
+of the system based two has two digits, base eight has eight digits and so on.
+
+41
+00:03:20,000 --> 00:03:24,000
+Just remember that each system starts counting with zero.
+
+42
+00:03:25,000 --> 00:03:29,000
+So let's convert now this number with base eight to decimal format.
+
+43
+00:03:30,000 --> 00:03:36,000
+The same algorithm lets draw lines to see ranks starting from left.
+
+44
+00:03:36,000 --> 00:03:44,000
+We have seven multiplied by base of number system, which is eight in the power of rank and so on.
+
+45
+00:03:45,000 --> 00:03:47,000
+Let's add this numbers together.
+
+46
+00:03:48,000 --> 00:03:52,000
+Here it is reconverted octal number two decimal.
+
+47
+00:03:52,000 --> 00:03:58,000
+You can use online converters to verify hexadecimal numbers.
+
+48
+00:03:58,000 --> 00:04:03,000
+System has Reddick's 16 and 16 numbers from zero to nine.
+
+49
+00:04:03,000 --> 00:04:09,000
+And after that we are using letters a, b, c, d, e, f.
+
+50
+00:04:09,000 --> 00:04:18,000
+Ravicher, according to decimal number systems equals to 10, 11, 12, 13, 14, 15, respectively.
+
+51
+00:04:19,000 --> 00:04:22,000
+Let's convert this hexadecimal number to decimal.
+
+52
+00:04:22,000 --> 00:04:27,000
+We have base 16 and calculations are pretty straightforward for you.
+
+53
+00:04:29,000 --> 00:04:34,000
+Now, let's have a look how we can write binary OKto and hexadecimal literals in Java.
+
+54
+00:04:35,000 --> 00:04:43,000
+So everything is easy here, binary octal and hexadecimal integer literals have different prefixes.
+
+55
+00:04:43,000 --> 00:04:52,000
+Let's write here integer in decimal format and Thek equals one hundred fifty two.
+
+56
+00:04:52,000 --> 00:04:54,000
+This is a decimal format.
+
+57
+00:04:55,000 --> 00:05:05,000
+If you want to write integer in binary format, just use special prefix and then equals zero b one hundred
+
+58
+00:05:06,000 --> 00:05:08,000
+and eleven three zeros.
+
+59
+00:05:10,000 --> 00:05:19,000
+Octal number started with zero prefix like this, and ARGT equals zero two hundred thirty.
+
+60
+00:05:21,000 --> 00:05:24,000
+And hexadecimal numbers started with zero X prefix.
+
+61
+00:05:26,000 --> 00:05:31,000
+And X equals zero x 98.
+
+62
+00:05:32,000 --> 00:05:36,000
+You can use letters here if you want to express and know that, well, you.
+
+63
+00:05:37,000 --> 00:05:41,000
+Let's print all these numbers to console in that small format.
+
+64
+00:05:53,000 --> 00:05:57,000
+These variables represent the same number in decimal format.
+
+65
+00:05:59,000 --> 00:06:02,000
+Let's recap what we have learned today in this lesson.
+
+66
+00:06:02,000 --> 00:06:10,000
+We have learned what number systems are we know how to convert from binary auto and hexadecimal systems
+
+67
+00:06:10,000 --> 00:06:10,000
+to decimal.
+
+68
+00:06:11,000 --> 00:06:15,000
+We know how to use binary auto and hexadecimal literals in Java.
+
+69
+00:06:16,000 --> 00:06:17,000
+And now your homework.
+
+70
+00:06:18,000 --> 00:06:21,000
+Hope it will be easy and fun for you.
+
+71
+00:06:21,000 --> 00:06:28,000
+Just try to find out what that small number is encoded in hexadecimal name of rock band AC DC.
+
diff --git a/03 - Primitive Data Types, Variables and Arrays/002 Source-code-of-the-example-used-in-the-lesson.url b/03 - Primitive Data Types, Variables and Arrays/002 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..fa9328a37a6a054eaec84eff53fc36d4a93e1bfb
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/002 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/numbersystems/NumberSystems.java
\ No newline at end of file
diff --git a/03 - Primitive Data Types, Variables and Arrays/003 Arrays_en.srt b/03 - Primitive Data Types, Variables and Arrays/003 Arrays_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..f89ca9b51ab4a6fc962821224a69ee3d82e9d21c
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/003 Arrays_en.srt
@@ -0,0 +1,776 @@
+1
+00:00:05,000 --> 00:00:09,000
+In this lesson, we'll learn more about arrays in Java.
+
+2
+00:00:09,000 --> 00:00:11,000
+Here is our agenda for today.
+
+3
+00:00:11,000 --> 00:00:17,000
+We'll discuss everything about arrays today, including what runtime errors might happen during interaction
+
+4
+00:00:17,000 --> 00:00:18,000
+with them.
+
+5
+00:00:18,000 --> 00:00:25,000
+Also, we will talk about multidimensional arrays and I will show you how you can use arrays class to
+
+6
+00:00:25,000 --> 00:00:28,000
+perform standard manipulations with arrays.
+
+7
+00:00:28,000 --> 00:00:33,000
+Before we give definition to arrays let's try to understand what do we need arrays for?
+
+8
+00:00:33,000 --> 00:00:39,000
+Pretend you are implementing software for a travel agency, and you want to allow administrator to see
+
+9
+00:00:39,000 --> 00:00:43,000
+list of people who bought trip to Spain for a specific date.
+
+10
+00:00:43,000 --> 00:00:49,000
+You need to get this information from database and group all users in one place in your program to show
+
+11
+00:00:49,000 --> 00:00:51,000
+them to your administrator.
+
+12
+00:00:52,000 --> 00:00:55,000
+For such purposes, you can group all users in an array.
+
+13
+00:00:55,000 --> 00:00:57,000
+So what is array?
+
+14
+00:00:57,000 --> 00:01:04,000
+Array is an object which contains elements of similar data types and support access to them by index.
+
+15
+00:01:04,000 --> 00:01:10,000
+Accessing each of the element in the array by its index for the constant amount of time that what we
+
+16
+00:01:10,000 --> 00:01:11,000
+love arrays for.
+
+17
+00:01:12,000 --> 00:01:15,000
+Just remember that indices in array start from zero.
+
+18
+00:01:16,000 --> 00:01:21,000
+That means if array size is nine, the last index in this array is eight.
+
+19
+00:01:22,000 --> 00:01:27,000
+If you want to compare arrays in Java and in other languages, be aware that there are some differences.
+
+20
+00:01:27,000 --> 00:01:32,000
+For example, the important one is that in Java, array size is fixed.
+
+21
+00:01:33,000 --> 00:01:37,000
+Once array is created, you can't change size of an array.
+
+22
+00:01:37,000 --> 00:01:41,000
+Now let's take a look how to work with arrays in Java source code.
+
+23
+00:01:41,000 --> 00:01:47,000
+I prepared for this lesson before video recording, so we don't spend time during the lesson on typing
+
+24
+00:01:47,000 --> 00:01:48,000
+code.
+
+25
+00:01:48,000 --> 00:01:53,000
+I created this class beforehand and you can focus directly on the examples.
+
+26
+00:01:53,000 --> 00:01:56,000
+You can declare an array variable like this.
+
+27
+00:01:57,000 --> 00:01:59,000
+Type of elements in your array.
+
+28
+00:01:59,000 --> 00:02:01,000
+Square brackets and variable name.
+
+29
+00:02:02,000 --> 00:02:05,000
+There is also another way to declare an array variable.
+
+30
+00:02:05,000 --> 00:02:10,000
+Type of elements in your array, variable name and square brackets.
+
+31
+00:02:11,000 --> 00:02:16,000
+You can use the one you would like the most, but I would recommend you to use the first declaration.
+
+32
+00:02:16,000 --> 00:02:22,000
+In my humble opinion, it is more readable because you instantly see that this variable is an array
+
+33
+00:02:22,000 --> 00:02:26,000
+of ints, but not like you are noticing that this variable is int.
+
+34
+00:02:26,000 --> 00:02:30,000
+And after that you realized that this is an array of ints.
+
+35
+00:02:31,000 --> 00:02:33,000
+Now let's initialize this variable.
+
+36
+00:02:33,000 --> 00:02:43,000
+This variable equals new type of the elements in array square brackets and ten inside the square brackets.
+
+37
+00:02:44,000 --> 00:02:50,000
+New keyword tells JVM to allocate memory for the new object and return reference to this object.
+
+38
+00:02:50,000 --> 00:02:54,000
+And in square brackets I indicate size of my array.
+
+39
+00:02:54,000 --> 00:02:56,000
+This array has size ten.
+
+40
+00:02:57,000 --> 00:03:02,000
+You can check array size with length property of the array like this.
+
+41
+00:03:05,000 --> 00:03:07,000
+And let's run this program.
+
+42
+00:03:07,000 --> 00:03:12,000
+The length property of the array will tell us the size of the specific array.
+
+43
+00:03:13,000 --> 00:03:17,000
+To get access to the element in the array, you can use its index.
+
+44
+00:03:17,000 --> 00:03:21,000
+Let's print to console the first element of this array.
+
+45
+00:03:21,000 --> 00:03:25,000
+Let me comment this line first and uncomment this line.
+
+46
+00:03:26,000 --> 00:03:28,000
+You know this command.
+
+47
+00:03:28,000 --> 00:03:32,000
+And here we are retrieving the first element of the array by its index.
+
+48
+00:03:33,000 --> 00:03:36,000
+You remember that index of first element in array is zero.
+
+49
+00:03:37,000 --> 00:03:38,000
+Let's run our program.
+
+50
+00:03:39,000 --> 00:03:41,000
+You see that the first element is zero.
+
+51
+00:03:42,000 --> 00:03:45,000
+Why it is zero if I didn't put zero in this array.
+
+52
+00:03:46,000 --> 00:03:52,000
+That is because each data type in Java has its own default value for integers it's zero.
+
+53
+00:03:53,000 --> 00:03:55,000
+Let's take a look at default double value.
+
+54
+00:03:56,000 --> 00:03:58,000
+I created an array of doubles here.
+
+55
+00:03:58,000 --> 00:04:01,000
+Let me uncomment this line and run the program.
+
+56
+00:04:02,000 --> 00:04:05,000
+For double default value is 0.0.
+
+57
+00:04:06,000 --> 00:04:07,000
+What about booleans?
+
+58
+00:04:07,000 --> 00:04:12,000
+Here is a similar example with booleans and run the program.
+
+59
+00:04:13,000 --> 00:04:15,000
+For booleans, the default value is false.
+
+60
+00:04:16,000 --> 00:04:22,000
+Since primitives are not actually objects on their face in Java, then they must be initialized by default
+
+61
+00:04:22,000 --> 00:04:26,000
+because semantically they can never be empty.
+
+62
+00:04:26,000 --> 00:04:30,000
+Primitive variables are not the references to objects.
+
+63
+00:04:30,000 --> 00:04:33,000
+Each primitive variable stores a value in itself.
+
+64
+00:04:33,000 --> 00:04:34,000
+Now let's take a look.
+
+65
+00:04:34,000 --> 00:04:39,000
+What will happen if I would use index which doesn't exist in array?
+
+66
+00:04:39,000 --> 00:04:41,000
+You saw that this array has size ten.
+
+67
+00:04:42,000 --> 00:04:45,000
+Then the last index in this array is nine.
+
+68
+00:04:45,000 --> 00:04:48,000
+I will try to print to console element with index ten.
+
+69
+00:04:48,000 --> 00:04:49,000
+In this array.
+
+70
+00:04:50,000 --> 00:04:51,000
+What will happen?
+
+71
+00:04:51,000 --> 00:04:54,000
+Runtime exception called array index.
+
+72
+00:04:54,000 --> 00:04:56,000
+Out of bounds exception.
+
+73
+00:04:56,000 --> 00:05:00,000
+I tried to get element from array with non-existing index.
+
+74
+00:05:00,000 --> 00:05:04,000
+Always remember that the last index of the array is array size.
+
+75
+00:05:04,000 --> 00:05:09,000
+Subtract one because indices are started from zero.
+
+76
+00:05:09,000 --> 00:05:12,000
+Now I want to show you array literals.
+
+77
+00:05:12,000 --> 00:05:17,000
+If you already know size of an array and variables, you can use array literals like this.
+
+78
+00:05:18,000 --> 00:05:23,000
+Declare array variable first and then use braces to list all elements of an array.
+
+79
+00:05:24,000 --> 00:05:27,000
+Now let's talk about multidimensional arrays.
+
+80
+00:05:27,000 --> 00:05:31,000
+Essentially, there is no such construction as multidimensional array.
+
+81
+00:05:32,000 --> 00:05:39,000
+Technically, it's properly to say that you can create an array of arrays, thus implement matrix in
+
+82
+00:05:39,000 --> 00:05:40,000
+your program.
+
+83
+00:05:40,000 --> 00:05:44,000
+For example, let's create an array which will contain int arrays.
+
+84
+00:05:44,000 --> 00:05:46,000
+You declare a variable first.
+
+85
+00:05:46,000 --> 00:05:50,000
+This is int array type and this is array.
+
+86
+00:05:51,000 --> 00:05:54,000
+So you have an array of int arrays.
+
+87
+00:05:55,000 --> 00:05:59,000
+Here we have variable name and this is array literal.
+
+88
+00:06:00,000 --> 00:06:07,000
+So you use braces to declare your array, and inside this array you use array literals to instantiate
+
+89
+00:06:07,000 --> 00:06:08,000
+other arrays.
+
+90
+00:06:09,000 --> 00:06:15,000
+In multidimensional arrays, you can get access to specific element by index of the array that will
+
+91
+00:06:15,000 --> 00:06:23,000
+be index of the row and index of the element in that array that will be column index just like this.
+
+92
+00:06:23,000 --> 00:06:26,000
+Here is variable of our multidimensional array.
+
+93
+00:06:26,000 --> 00:06:29,000
+This zero refers to index of the array.
+
+94
+00:06:29,000 --> 00:06:31,000
+This is our first array.
+
+95
+00:06:31,000 --> 00:06:34,000
+And this number refers to the element in this array.
+
+96
+00:06:35,000 --> 00:06:40,000
+So basically the first number indicates row and the second number indicates column.
+
+97
+00:06:40,000 --> 00:06:42,000
+Let's run this program.
+
+98
+00:06:42,000 --> 00:06:43,000
+Here it is.
+
+99
+00:06:44,000 --> 00:06:51,000
+You can instantiate multi-dimensional array specifying just its size without array literals.
+
+100
+00:06:51,000 --> 00:06:54,000
+In this case, I specify just array size.
+
+101
+00:06:55,000 --> 00:06:58,000
+Let me print to console the first element of this array.
+
+102
+00:06:59,000 --> 00:07:00,000
+It is null.
+
+103
+00:07:00,000 --> 00:07:01,000
+Why?
+
+104
+00:07:02,000 --> 00:07:06,000
+Because arrays are reference types and not primitives.
+
+105
+00:07:06,000 --> 00:07:13,000
+If you have an array of arrays, the default value of each array variable will be null because all arrays
+
+106
+00:07:13,000 --> 00:07:18,000
+are not instantiated yet and there is no array object in memory for the reference.
+
+107
+00:07:18,000 --> 00:07:22,000
+I can specify size of each inner array like this.
+
+108
+00:07:22,000 --> 00:07:29,000
+Now all inner arrays will be instantiated and when I will print the array object to console, I will
+
+109
+00:07:29,000 --> 00:07:31,000
+see something like this.
+
+110
+00:07:32,000 --> 00:07:33,000
+What is this?
+
+111
+00:07:33,000 --> 00:07:34,000
+And why do we see this?
+
+112
+00:07:35,000 --> 00:07:41,000
+We'll discuss during the learning of the OOP topic, when we will take a look at object class and default
+
+113
+00:07:41,000 --> 00:07:46,000
+implementation of toString method for all objects in JDK.
+
+114
+00:07:46,000 --> 00:07:49,000
+We have special methods to perform basic operations with arrays.
+
+115
+00:07:50,000 --> 00:07:53,000
+Let me show you how you can easily print arrays to console.
+
+116
+00:07:54,000 --> 00:07:56,000
+Just type System.out.println.
+
+117
+00:07:57,000 --> 00:08:02,000
+Next, type arrays like this and call toString method.
+
+118
+00:08:02,000 --> 00:08:06,000
+Pass reference to the array object as argument to this method.
+
+119
+00:08:06,000 --> 00:08:07,000
+Let's run this program.
+
+120
+00:08:08,000 --> 00:08:10,000
+Here you can see values from this array.
+
+121
+00:08:11,000 --> 00:08:12,000
+Here's a.
+
+122
+00:08:13,000 --> 00:08:17,000
+And now, for example, I want to sort values in the array.
+
+123
+00:08:18,000 --> 00:08:19,000
+Let's type like this.
+
+124
+00:08:20,000 --> 00:08:24,000
+Arrays sort and pass the reference to array.
+
+125
+00:08:25,000 --> 00:08:28,000
+And now let's print the same array to console one more time.
+
+126
+00:08:29,000 --> 00:08:32,000
+You see, magic happened.
+
+127
+00:08:32,000 --> 00:08:35,000
+So what does this arrays mean?
+
+128
+00:08:35,000 --> 00:08:42,000
+Arrays is the class in JDK which contains various methods for manipulating arrays such as sorting and
+
+129
+00:08:42,000 --> 00:08:44,000
+searching, for example.
+
+130
+00:08:44,000 --> 00:08:47,000
+This class is located in Java util package.
+
+131
+00:08:48,000 --> 00:08:55,000
+Also, I want to draw attention to one thing that after we wrote arrays here, eclipse automatically
+
+132
+00:08:55,000 --> 00:08:58,000
+added import statement on the top of our Java file.
+
+133
+00:08:59,000 --> 00:09:01,000
+What is import statement in Java?
+
+134
+00:09:01,000 --> 00:09:07,000
+Import statement is a convenience to the programmer and is not technically needed for the programs.
+
+135
+00:09:07,000 --> 00:09:13,000
+With import statement, you bring into visibility certain classes or entire packages.
+
+136
+00:09:13,000 --> 00:09:18,000
+As soon as you import it class in your Java file, you can refer to the class directly by using only
+
+137
+00:09:18,000 --> 00:09:19,000
+class name.
+
+138
+00:09:20,000 --> 00:09:25,000
+Here you can see that eclipse helped me to import Java util arrays class.
+
+139
+00:09:25,000 --> 00:09:28,000
+What if I wouldn't have this import statement?
+
+140
+00:09:28,000 --> 00:09:30,000
+Let me just delete it.
+
+141
+00:09:30,000 --> 00:09:32,000
+I saved the file.
+
+142
+00:09:32,000 --> 00:09:34,000
+When you see a compilation error here.
+
+143
+00:09:36,000 --> 00:09:41,000
+Compiler can't understand to which arrays class am I referring to here?
+
+144
+00:09:41,000 --> 00:09:46,000
+But I can tell compiler that full class name Java util arrays.
+
+145
+00:09:48,000 --> 00:09:50,000
+And error is gone.
+
+146
+00:09:50,000 --> 00:09:54,000
+Compiler understood that I am referring to class from gcc here.
+
+147
+00:09:55,000 --> 00:10:01,000
+If we are going to refer to Dalton classes in our application, the import statement will save a lot
+
+148
+00:10:01,000 --> 00:10:02,000
+of time and typing also.
+
+149
+00:10:03,000 --> 00:10:06,000
+And also one more tip for the future.
+
+150
+00:10:06,000 --> 00:10:13,000
+In case you see some errors in your source code, just hover mouse over error or set cursor in the place
+
+151
+00:10:13,000 --> 00:10:19,000
+of error and press Ctrl Plus one and see what eclipse will suggest you to fix the error.
+
+152
+00:10:20,000 --> 00:10:23,000
+In this case, eclipse suggested me to add import statement.
+
+153
+00:10:23,000 --> 00:10:26,000
+Just select what you need and press enter.
+
+154
+00:10:27,000 --> 00:10:33,000
+Do you see this import statement for race type appeared again on the top of our file.
+
+155
+00:10:33,000 --> 00:10:36,000
+I save file to remove compilation error.
+
+156
+00:10:37,000 --> 00:10:43,000
+All basic classes, such as wrappers of primitive types are included in package Java lang.
+
+157
+00:10:43,000 --> 00:10:51,000
+Import statement for Java.lang package is implicitly added by compiler to all Java files, so this declaration
+
+158
+00:10:51,000 --> 00:10:52,000
+is redundant.
+
+159
+00:10:53,000 --> 00:10:56,000
+You saw only two methods from arrays so far.
+
+160
+00:10:56,000 --> 00:10:59,000
+Now I will teach you what all developers should know.
+
+161
+00:10:59,000 --> 00:11:03,000
+You have to know how to learn and investigate source code.
+
+162
+00:11:03,000 --> 00:11:09,000
+Just hold Ctrl button, hover over class name and do mouse left click.
+
+163
+00:11:10,000 --> 00:11:15,000
+If you are doing this first time in the eclipse, most likely you will see something like this.
+
+164
+00:11:15,000 --> 00:11:18,000
+This means you don't have source code attached.
+
+165
+00:11:18,000 --> 00:11:20,000
+Let's attach source code together.
+
+166
+00:11:21,000 --> 00:11:23,000
+Press attach source button.
+
+167
+00:11:23,000 --> 00:11:25,000
+External location.
+
+168
+00:11:27,000 --> 00:11:28,000
+External file.
+
+169
+00:11:28,000 --> 00:11:34,000
+And now please go to your JDK folder and find lib folder in it.
+
+170
+00:11:35,000 --> 00:11:40,000
+You see I am in my JDK folder and in lib folder which is inside JDK.
+
+171
+00:11:41,000 --> 00:11:46,000
+We are looking for src zip file and this is what we are looking for.
+
+172
+00:11:46,000 --> 00:11:48,000
+Just select it and press open.
+
+173
+00:11:49,000 --> 00:11:49,000
+Okay.
+
+174
+00:11:51,000 --> 00:11:53,000
+And here is your source code of a race class.
+
+175
+00:11:56,000 --> 00:11:58,000
+In UK in all classes.
+
+176
+00:11:58,000 --> 00:12:04,000
+You can find detailed Java documentation about each class, field and method.
+
+177
+00:12:04,000 --> 00:12:08,000
+That is the way how you can investigate what some specific methods do.
+
+178
+00:12:09,000 --> 00:12:13,000
+Investigating all the source code in JDK is part of your self-education.
+
+179
+00:12:14,000 --> 00:12:20,000
+You can find list of all fields, methods, nested and inner classes here in Outline view.
+
+180
+00:12:20,000 --> 00:12:25,000
+Also, you can press Ctrl plus O to see the list here in Code Editor.
+
+181
+00:12:26,000 --> 00:12:30,000
+You can start typing Method name and select it to navigate faster there.
+
+182
+00:12:30,000 --> 00:12:35,000
+For example sort of int array and press enter.
+
+183
+00:12:36,000 --> 00:12:39,000
+And here is Java documentation for this method.
+
+184
+00:12:39,000 --> 00:12:43,000
+Feel free to learn documentation for other methods in the class.
+
+185
+00:12:44,000 --> 00:12:47,000
+Let's recap together what you have learned today.
+
+186
+00:12:47,000 --> 00:12:51,000
+We learned what arrays are and how to work with arrays.
+
+187
+00:12:51,000 --> 00:12:54,000
+We learned default values for primitive types.
+
+188
+00:12:54,000 --> 00:12:58,000
+In this lesson you saw how to instantiate a multidimensional array.
+
+189
+00:12:59,000 --> 00:13:04,000
+Now you know what import statement is used for and how to investigate source code of GCC.
+
+190
+00:13:04,000 --> 00:13:11,000
+Also, you know what Java.util arrays class is and how you can use it to apply basic manipulations with
+
+191
+00:13:11,000 --> 00:13:12,000
+arrays.
+
+192
+00:13:12,000 --> 00:13:15,000
+And now let's review your homework.
+
+193
+00:13:15,000 --> 00:13:20,000
+You can read about arrays in books to review the same topic from different point of view.
+
+194
+00:13:21,000 --> 00:13:25,000
+I also recommend to take your time to investigate source Code of arrays class.
+
diff --git a/03 - Primitive Data Types, Variables and Arrays/003 Homework.url b/03 - Primitive Data Types, Variables and Arrays/003 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..1cff8fab228d9ee79ae8c37b70c1e24077fb0fea
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/003 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1NeP44yrRnKQQBHeYbpj_OcdGyZjmXx3dBRSTUm1BzOE
\ No newline at end of file
diff --git a/03 - Primitive Data Types, Variables and Arrays/003 Source-code-of-the-example-used-in-the-lesson.url b/03 - Primitive Data Types, Variables and Arrays/003 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..466bbddebf08125f98d5150ae65bfde10d5984fb
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/003 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/arrays/ArraysDemo.java
\ No newline at end of file
diff --git a/03 - Primitive Data Types, Variables and Arrays/004 Quiz Primitive data types, variables and arrays - Check yourself.html b/03 - Primitive Data Types, Variables and Arrays/004 Quiz Primitive data types, variables and arrays - Check yourself.html
new file mode 100644
index 0000000000000000000000000000000000000000..f8c777b2965c6dd78f60f26a8bca89809dd76f6e
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/004 Quiz Primitive data types, variables and arrays - Check yourself.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Quiz Primitive data types, variables and arrays - Check yourself
+
+
+
+
+
+
+
Quiz Primitive data types, variables and arrays - Check yourself
The quiz doesn’t require you to log in or submit any personal information. Your data privacy is my priority.
The Quiz covers content from the following lessons:
Primitive types and variables
Number Systems
Arrays
Quiz Instructions:
This quiz is designed to help you check your understanding of the content from the previous lessons. All questions are based only on material covered in the lessons you've already watched, so there’s no need to worry about unfamiliar topics.
Each question has one correct answer. Select the best answer and click "Submit" when you're ready.
After submitting, you'll see your score. For each question, you earn 1 point.
Click "View Results" to see the explanations for each correct answer. Reviewing these explanations can help reinforce your understanding.
If you score below 70%, I recommend revisiting the previous lessons. However, if the explanations make sense and you’re confident in your understanding, feel free to move on.
If any explanations are unclear, please don’t hesitate to post questions in the Q&A section—I’m here to help!
+
+
+
+
diff --git a/03 - Primitive Data Types, Variables and Arrays/external-links.txt b/03 - Primitive Data Types, Variables and Arrays/external-links.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b215b251195290fd5d863068ed5f8fb68da1287e
--- /dev/null
+++ b/03 - Primitive Data Types, Variables and Arrays/external-links.txt
@@ -0,0 +1,18 @@
+
+001 Homework
+https://docs.google.com/document/d/1kqT7AkWTHAUXuJtA9pijWeqwQB7v-oVDjc3tsgajML4/edit?usp=sharing
+
+001 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/primitives/PrimitiveTypes.java
+
+002 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/numbersystems/NumberSystems.java
+
+002 Homework
+https://docs.google.com/document/d/1w12RqSvsfrGWTDd50QKI2RQWrEMmvE-6tSEMcS4tiOE/edit?usp=sharing
+
+003 Source-code-of-the-example-used-in-the-lesson
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/arrays/ArraysDemo.java
+
+003 Homework
+https://docs.google.com/document/d/1NeP44yrRnKQQBHeYbpj_OcdGyZjmXx3dBRSTUm1BzOE
diff --git a/04 - Eclipse Tips and Tricks/001 Packages creation and package presentation in eclipse_en.srt b/04 - Eclipse Tips and Tricks/001 Packages creation and package presentation in eclipse_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..2190b6d7c02792ba5e070ff251e1580c6e0a6434
--- /dev/null
+++ b/04 - Eclipse Tips and Tricks/001 Packages creation and package presentation in eclipse_en.srt
@@ -0,0 +1,112 @@
+1
+00:00:00,000 --> 00:00:00,000
+Hello guys.
+
+2
+00:00:00,000 --> 00:00:04,000
+Let me share with you one more configuration in eclipse.
+
+3
+00:00:04,000 --> 00:00:09,000
+Probably you noticed that each lesson I create new file and put it in a separate package.
+
+4
+00:00:09,000 --> 00:00:14,000
+But for me, the default view of package presentation in eclipse is not easily readable.
+
+5
+00:00:15,000 --> 00:00:21,000
+Personally, I would prefer Chirakkal package representation to see where is parent package and what
+
+6
+00:00:21,000 --> 00:00:22,000
+are nested packages.
+
+7
+00:00:23,000 --> 00:00:29,000
+To change package presentation just click on this arrow here, select Package Presentation and select
+
+8
+00:00:29,000 --> 00:00:31,000
+hierarchical.
+
+9
+00:00:31,000 --> 00:00:33,000
+Now it's changed here.
+
+10
+00:00:33,000 --> 00:00:36,000
+Now let's create new package inside this one.
+
+11
+00:00:37,000 --> 00:00:38,000
+Mouse right click here.
+
+12
+00:00:39,000 --> 00:00:41,000
+New package.
+
+13
+00:00:42,000 --> 00:00:47,000
+The common mistake here that sometimes my students erase existing package name and type completely.
+
+14
+00:00:47,000 --> 00:00:49,000
+New package name.
+
+15
+00:00:49,000 --> 00:00:54,000
+Let's try to do this way and press finish.
+
+16
+00:00:56,000 --> 00:00:58,000
+Do you see on which level package is created.
+
+17
+00:00:59,000 --> 00:01:04,000
+So if you want to have new package on this level, just write full package name.
+
+18
+00:01:05,000 --> 00:01:07,000
+Let's try one more time a.
+
+19
+00:01:11,000 --> 00:01:13,000
+Nested package.
+
+20
+00:01:15,000 --> 00:01:17,000
+And press finish.
+
+21
+00:01:17,000 --> 00:01:19,000
+Here is our new package now.
+
+22
+00:01:20,000 --> 00:01:25,000
+And don't forget that you can also create new package during new class creation.
+
+23
+00:01:25,000 --> 00:01:30,000
+For example mouse right click new class.
+
+24
+00:01:30,000 --> 00:01:32,000
+And here is package field.
+
+25
+00:01:32,000 --> 00:01:39,000
+You can use it to input new package name baths new package baths test.
+
+26
+00:01:41,000 --> 00:01:44,000
+And here you created new class in new package.
+
+27
+00:01:45,000 --> 00:01:48,000
+Hope this information will help you in configuring eclipse.
+
+28
+00:01:48,000 --> 00:01:51,000
+Have a great day and see you in the next lesson.
+
diff --git a/04 - Eclipse Tips and Tricks/002 Plugins how to install free plugins, eclipse marketplace, workspace styles_en.srt b/04 - Eclipse Tips and Tricks/002 Plugins how to install free plugins, eclipse marketplace, workspace styles_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..20dbfee33a43668c5ad4f4b4168e88b70409e2ec
--- /dev/null
+++ b/04 - Eclipse Tips and Tricks/002 Plugins how to install free plugins, eclipse marketplace, workspace styles_en.srt
@@ -0,0 +1,168 @@
+1
+00:00:00,000 --> 00:00:01,000
+Hello guys.
+
+2
+00:00:01,000 --> 00:00:07,000
+In this video I'm going to show you how you can install eclipse plugins and extensions and this very
+
+3
+00:00:07,000 --> 00:00:08,000
+cool feature.
+
+4
+00:00:08,000 --> 00:00:11,000
+And that's one of the reasons why people love eclipse.
+
+5
+00:00:12,000 --> 00:00:17,000
+In Eclipse Marketplace, you can find thousands of free plugins which will help you to extend the default
+
+6
+00:00:17,000 --> 00:00:18,000
+behavior of eclipse.
+
+7
+00:00:19,000 --> 00:00:24,000
+For example, you can easily install plugins for Spring Framework support, or you can install plugins
+
+8
+00:00:24,000 --> 00:00:27,000
+to measure test code coverage and even more.
+
+9
+00:00:27,000 --> 00:00:29,000
+I also code in PHP.
+
+10
+00:00:29,000 --> 00:00:35,000
+Sometimes I installed plugins which added support of PHP, and now I have everything what I need in
+
+11
+00:00:35,000 --> 00:00:36,000
+a single workspace.
+
+12
+00:00:37,000 --> 00:00:42,000
+But today we are going to install plugin which will allow us to change style of our workspace.
+
+13
+00:00:43,000 --> 00:00:44,000
+Let's press help.
+
+14
+00:00:44,000 --> 00:00:46,000
+Eclipse marketplace.
+
+15
+00:00:47,000 --> 00:00:51,000
+And here is the place where you can find all available plugins.
+
+16
+00:00:51,000 --> 00:00:54,000
+You can use this search to find some specific plugin.
+
+17
+00:00:55,000 --> 00:00:59,000
+Let's search for dev style plugin and press enter.
+
+18
+00:01:00,000 --> 00:01:01,000
+Here it is.
+
+19
+00:01:02,000 --> 00:01:06,000
+I have it installed already but you can proceed with the installation flow.
+
+20
+00:01:06,000 --> 00:01:08,000
+Let me show you on this example.
+
+21
+00:01:09,000 --> 00:01:11,000
+You need to press install.
+
+22
+00:01:11,000 --> 00:01:15,000
+You will be offered to select what exactly you want to install.
+
+23
+00:01:16,000 --> 00:01:17,000
+Press confirm.
+
+24
+00:01:17,000 --> 00:01:20,000
+Also, you need to accept the license agreement.
+
+25
+00:01:21,000 --> 00:01:24,000
+And after pressing finish plugin will be installed.
+
+26
+00:01:25,000 --> 00:01:27,000
+Usually eclipse asks for a start.
+
+27
+00:01:27,000 --> 00:01:32,000
+After eclipse is restarted, please navigate to Window Preferences.
+
+28
+00:01:34,000 --> 00:01:36,000
+Find dev style here.
+
+29
+00:01:37,000 --> 00:01:39,000
+Here it is.
+
+30
+00:01:39,000 --> 00:01:40,000
+Workbench theme.
+
+31
+00:01:40,000 --> 00:01:43,000
+Dark gray icons.
+
+32
+00:01:43,000 --> 00:01:44,000
+Color.
+
+33
+00:01:44,000 --> 00:01:46,000
+Let's choose this one.
+
+34
+00:01:46,000 --> 00:01:48,000
+Editor theme.
+
+35
+00:01:48,000 --> 00:01:49,000
+Eclipse standard.
+
+36
+00:01:51,000 --> 00:01:52,000
+Let's apply our changes.
+
+37
+00:01:53,000 --> 00:01:54,000
+Let's restart it.
+
+38
+00:01:56,000 --> 00:01:58,000
+And here is our new theme applied.
+
+39
+00:01:59,000 --> 00:02:03,000
+Now you know how to install plugins and how to change the style of your workspace.
+
+40
+00:02:03,000 --> 00:02:05,000
+Thank you for your attention.
+
+41
+00:02:05,000 --> 00:02:06,000
+See you in the next lesson.
+
+42
+00:02:07,000 --> 00:02:07,000
+Aethes.
+
diff --git a/04 - Eclipse Tips and Tricks/003 Code Refactoring in Eclipse_en.srt b/04 - Eclipse Tips and Tricks/003 Code Refactoring in Eclipse_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..2a7ff8cc97e3e4a497e1cd78e70447a5a5e49d5b
--- /dev/null
+++ b/04 - Eclipse Tips and Tricks/003 Code Refactoring in Eclipse_en.srt
@@ -0,0 +1,432 @@
+1
+00:00:00,000 --> 00:00:01,000
+Hello guys.
+
+2
+00:00:01,000 --> 00:00:04,000
+Let's continue these lessons about tips and tricks.
+
+3
+00:00:04,000 --> 00:00:09,000
+While working with eclipse, I want to share with you useful tricks that I use on a daily basis.
+
+4
+00:00:10,000 --> 00:00:12,000
+Today I will show you how you can refactor your code.
+
+5
+00:00:13,000 --> 00:00:16,000
+We'll learn tools for refactoring that exist in eclipse.
+
+6
+00:00:16,000 --> 00:00:23,000
+We will discuss today how you can rename multiple items at once, how you can format your source code,
+
+7
+00:00:23,000 --> 00:00:29,000
+configure formatting rules, extract variable from expression, extract method from different statements,
+
+8
+00:00:29,000 --> 00:00:31,000
+and optimize imports.
+
+9
+00:00:31,000 --> 00:00:34,000
+But first of all, what is refactoring?
+
+10
+00:00:35,000 --> 00:00:41,000
+Refactoring is a process of restructuring existing computer code without changing its external behavior.
+
+11
+00:00:42,000 --> 00:00:43,000
+When you need it.
+
+12
+00:00:43,000 --> 00:00:47,000
+Even now being a junior developer, sometimes you need to do refactoring.
+
+13
+00:00:48,000 --> 00:00:52,000
+Let me start demo with examples related to renaming of items in your source code.
+
+14
+00:00:52,000 --> 00:00:55,000
+The first example you created class.
+
+15
+00:00:55,000 --> 00:01:00,000
+You wrote some code and after that you realized that you want to change class name.
+
+16
+00:01:00,000 --> 00:01:06,000
+Instead of changing class name in three places plus change in file name, just select class name you
+
+17
+00:01:06,000 --> 00:01:12,000
+want to change and press Alt Plus Shift plus R and come up with new name for your class.
+
+18
+00:01:14,000 --> 00:01:20,000
+After that, press enter and you can see now how class name is changed everywhere, including the file
+
+19
+00:01:20,000 --> 00:01:20,000
+name.
+
+20
+00:01:21,000 --> 00:01:27,000
+The second example you created variable and you already used this variable in different places.
+
+21
+00:01:27,000 --> 00:01:32,000
+And now you want to give meaningful name to this variable the same way.
+
+22
+00:01:32,000 --> 00:01:38,000
+Press alt plus shift plus R simultaneously to refactor variable name.
+
+23
+00:01:40,000 --> 00:01:43,000
+And you can see that variable name is changed everywhere.
+
+24
+00:01:44,000 --> 00:01:45,000
+In case you forgot.
+
+25
+00:01:45,000 --> 00:01:48,000
+Hot key press mouse, right click refactor.
+
+26
+00:01:48,000 --> 00:01:50,000
+Rename.
+
+27
+00:01:50,000 --> 00:01:52,000
+The third example.
+
+28
+00:01:52,000 --> 00:01:55,000
+You can refactor method names in the same way.
+
+29
+00:01:55,000 --> 00:02:00,000
+Let me rename this method to do something.
+
+30
+00:02:02,000 --> 00:02:05,000
+You see, that method name is changed in all occurrences.
+
+31
+00:02:06,000 --> 00:02:06,000
+That's it.
+
+32
+00:02:06,000 --> 00:02:10,000
+Now you know how you can do renaming operations in your source code.
+
+33
+00:02:11,000 --> 00:02:14,000
+Now let's take a look how you can format your code.
+
+34
+00:02:15,000 --> 00:02:21,000
+For example, you are not bothering about padding spaces newlines in your source code, but at the end
+
+35
+00:02:21,000 --> 00:02:26,000
+of the day you realized that this is not clean code, and it will be hard to read for Java developers
+
+36
+00:02:26,000 --> 00:02:28,000
+in the rest of the world.
+
+37
+00:02:28,000 --> 00:02:30,000
+What should you do to fix it?
+
+38
+00:02:31,000 --> 00:02:36,000
+Just press Ctrl Shift plus F simultaneously to format your code like this.
+
+39
+00:02:36,000 --> 00:02:42,000
+If you don't want to format all your code, you can select the lines you want to format, and after
+
+40
+00:02:42,000 --> 00:02:44,000
+that, press Ctrl Shift plus F.
+
+41
+00:02:44,000 --> 00:02:46,000
+But let's format all file.
+
+42
+00:02:47,000 --> 00:02:50,000
+You can configure rules for such formatting.
+
+43
+00:02:50,000 --> 00:02:57,000
+Just go to Window Preferences and find format on Java code style level.
+
+44
+00:02:57,000 --> 00:03:04,000
+Here You can't edit the default profile, but you can create new profile based on this one.
+
+45
+00:03:04,000 --> 00:03:05,000
+Click new.
+
+46
+00:03:05,000 --> 00:03:09,000
+Select the base profile and come up with profile name.
+
+47
+00:03:09,000 --> 00:03:15,000
+Press enter and here you can configure all possible rules for formatting.
+
+48
+00:03:15,000 --> 00:03:19,000
+For example you want to configure maximum line width.
+
+49
+00:03:19,000 --> 00:03:24,000
+Let it be naught 120 characters but 80 births.
+
+50
+00:03:24,000 --> 00:03:25,000
+Okay.
+
+51
+00:03:25,000 --> 00:03:30,000
+And now you can activate this profile on different projects which I worked on.
+
+52
+00:03:30,000 --> 00:03:33,000
+There are specific requirements to code formatting.
+
+53
+00:03:33,000 --> 00:03:36,000
+In the case when special configuration is provided.
+
+54
+00:03:36,000 --> 00:03:39,000
+You can import them here by pressing import button.
+
+55
+00:03:40,000 --> 00:03:42,000
+Let me activate the default profile.
+
+56
+00:03:43,000 --> 00:03:46,000
+Now you know how to configure formatting rules.
+
+57
+00:03:47,000 --> 00:03:49,000
+Now let me show you the next example.
+
+58
+00:03:50,000 --> 00:03:55,000
+Imagine you are writing code, and you realize that it would be nice to have separate variable with
+
+59
+00:03:55,000 --> 00:03:58,000
+the result of this statement, because it's duplicated.
+
+60
+00:03:59,000 --> 00:04:04,000
+Instead of fixing all occurrences manually, you can just select expression and press Alt Plus Shift
+
+61
+00:04:04,000 --> 00:04:05,000
+plus L.
+
+62
+00:04:06,000 --> 00:04:08,000
+You need to come up with variable name.
+
+63
+00:04:08,000 --> 00:04:09,000
+Let it be some.
+
+64
+00:04:10,000 --> 00:04:16,000
+You can also select the checkbox to substitute all occurrences of the selected expression with references
+
+65
+00:04:16,000 --> 00:04:17,000
+to the local variable.
+
+66
+00:04:18,000 --> 00:04:19,000
+Now you can press enter.
+
+67
+00:04:20,000 --> 00:04:21,000
+And here it is.
+
+68
+00:04:21,000 --> 00:04:24,000
+You can see that we extracted the variable out of the expression.
+
+69
+00:04:24,000 --> 00:04:27,000
+And all occurrences are substituted with this variable.
+
+70
+00:04:28,000 --> 00:04:31,000
+Right now we are writing code in the main method.
+
+71
+00:04:31,000 --> 00:04:37,000
+But what if you understood that it is a lot of code already in main method, and you want to split code
+
+72
+00:04:37,000 --> 00:04:39,000
+into different methods to make it more readable?
+
+73
+00:04:40,000 --> 00:04:45,000
+In this case, you can select lines of code which you want to extract into separate method and press
+
+74
+00:04:45,000 --> 00:04:47,000
+alt plus Shift plus m.
+
+75
+00:04:47,000 --> 00:04:49,000
+Here you can configure modifiers.
+
+76
+00:04:49,000 --> 00:04:50,000
+Method name.
+
+77
+00:04:50,000 --> 00:04:54,000
+Let's name this method print to console and press enter.
+
+78
+00:04:56,000 --> 00:04:59,000
+Now you can see that you extracted the method.
+
+79
+00:04:59,000 --> 00:05:05,000
+We'll have separate lesson dedicated to methods where I will cover in details what actually method is?
+
+80
+00:05:05,000 --> 00:05:09,000
+What is method signature, what is method return type and lots more.
+
+81
+00:05:10,000 --> 00:05:13,000
+But take into account this lesson is about refactoring.
+
+82
+00:05:13,000 --> 00:05:16,000
+I wanted to show you how you can extract method when needed.
+
+83
+00:05:17,000 --> 00:05:21,000
+In case you forgot hotkeys, just select the expression or lines.
+
+84
+00:05:21,000 --> 00:05:26,000
+Press mouse, right click navigate to refactor and here you can select either Extract method or Extract
+
+85
+00:05:26,000 --> 00:05:29,000
+Local variable based on what you selected.
+
+86
+00:05:30,000 --> 00:05:34,000
+And last but not the least example for today cleaning imports.
+
+87
+00:05:34,000 --> 00:05:40,000
+You can see on top here that you can do import of all types from Java.util package into this Java file.
+
+88
+00:05:40,000 --> 00:05:46,000
+But right now we are using only arrays class so far from Java util package in this file, it's a rule
+
+89
+00:05:46,000 --> 00:05:50,000
+of thumb to keep your import section clean to make your code readable.
+
+90
+00:05:50,000 --> 00:05:57,000
+Organizing of imports has nothing with your code performance, but it is good practice to organize your
+
+91
+00:05:57,000 --> 00:05:58,000
+imports, just press simultaneously.
+
+92
+00:05:58,000 --> 00:06:00,000
+Ctrl+shift+ O.
+
+93
+00:06:01,000 --> 00:06:07,000
+You can see now that our import statement has been changed to reflect only types which are used in this
+
+94
+00:06:07,000 --> 00:06:07,000
+Java file.
+
+95
+00:06:08,000 --> 00:06:11,000
+And now let's pretend we don't need a race class anymore.
+
+96
+00:06:11,000 --> 00:06:14,000
+In this Java file, let's remove this line.
+
+97
+00:06:14,000 --> 00:06:17,000
+To remove line in eclipse, press Ctrl+ D.
+
+98
+00:06:17,000 --> 00:06:22,000
+And now we can organize imports one more time to remove unused imports.
+
+99
+00:06:22,000 --> 00:06:26,000
+I am pressing Ctrl+shift+ o one more time again.
+
+100
+00:06:26,000 --> 00:06:29,000
+And now you see that import statement is also removed.
+
+101
+00:06:29,000 --> 00:06:32,000
+Since I am not referring to a race class anymore in this Java file.
+
+102
+00:06:33,000 --> 00:06:36,000
+Now let's recap what we have learned today.
+
+103
+00:06:36,000 --> 00:06:43,000
+Now you know how to rename multiple items at once, how to format your code, how to configure custom
+
+104
+00:06:43,000 --> 00:06:49,000
+formatting rules, how to extract variable from expression, how to extract method, and how to organize
+
+105
+00:06:49,000 --> 00:06:50,000
+imports.
+
+106
+00:06:50,000 --> 00:06:52,000
+That's all what I have for you for today.
+
+107
+00:06:52,000 --> 00:06:56,000
+Thank you for your attention and see you in the next lesson.
+
+108
+00:06:56,000 --> 00:06:57,000
+Baths.
+
diff --git a/04 - Eclipse Tips and Tricks/003 Source-code-Example-from-Lecture-1.url b/04 - Eclipse Tips and Tricks/003 Source-code-Example-from-Lecture-1.url
new file mode 100644
index 0000000000000000000000000000000000000000..f998fbfb60457fcf58ad55be0860465a9ef626bf
--- /dev/null
+++ b/04 - Eclipse Tips and Tricks/003 Source-code-Example-from-Lecture-1.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/misc/NewRefactoringDemo.java
\ No newline at end of file
diff --git a/04 - Eclipse Tips and Tricks/003 Source-code-Example-from-Lecture-2.url b/04 - Eclipse Tips and Tricks/003 Source-code-Example-from-Lecture-2.url
new file mode 100644
index 0000000000000000000000000000000000000000..6438db45d6f6653d2e28fd229a0956d2d7d07c7f
--- /dev/null
+++ b/04 - Eclipse Tips and Tricks/003 Source-code-Example-from-Lecture-2.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/misc/RefactoringDemo2.java
\ No newline at end of file
diff --git a/04 - Eclipse Tips and Tricks/external-links.txt b/04 - Eclipse Tips and Tricks/external-links.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a83492e58233c096ecba7bb820909e4122fc05ad
--- /dev/null
+++ b/04 - Eclipse Tips and Tricks/external-links.txt
@@ -0,0 +1,6 @@
+
+003 Source-code-Example-from-Lecture-1
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/misc/NewRefactoringDemo.java
+
+003 Source-code-Example-from-Lecture-2
+https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/misc/RefactoringDemo2.java
diff --git a/05 - Operators and Operations with primitive types/001 Homework.url b/05 - Operators and Operations with primitive types/001 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..3bd5980f4532c285a2f819f46c32f88cf7435edc
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/001 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/159vwvLmhStIcYp4Lug3fM5AizDPXXMJ5W3SexJQC11M/edit?usp=sharing
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/001 Operators in Java_en.srt b/05 - Operators and Operations with primitive types/001 Operators in Java_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..460348249cf540741e9529aaebae15029c354b9e
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/001 Operators in Java_en.srt
@@ -0,0 +1,996 @@
+1
+00:00:05,000 --> 00:00:12,000
+Today, we'll talk with you about operators in Java, what operators and operator is a symbol that performs
+
+2
+00:00:12,000 --> 00:00:18,000
+a specific kind of operation on a one, two or three operations and produce result, operators from
+
+3
+00:00:18,000 --> 00:00:21,000
+Java can be categorized based on two criteria.
+
+4
+00:00:21,000 --> 00:00:24,000
+The first criteria number of operations.
+
+5
+00:00:24,000 --> 00:00:28,000
+There are three types of operators based on a number of operands.
+
+6
+00:00:28,000 --> 00:00:33,000
+An operator is called the unary binary or ternary operator based on a number of operations.
+
+7
+00:00:34,000 --> 00:00:41,000
+If an operator takes one or it called a unary operator, if it takes two operands, it calls a binary
+
+8
+00:00:41,000 --> 00:00:42,000
+operator.
+
+9
+00:00:42,000 --> 00:00:46,000
+If it takes three operands, it called the operator.
+
+10
+00:00:46,000 --> 00:00:53,000
+And the second criteria type of operation they perform, an operator is called an arithmetic operator,
+
+11
+00:00:53,000 --> 00:00:59,000
+a relational operator, a logical operator or bitwise operator, depending on the kind of operation
+
+12
+00:00:59,000 --> 00:01:00,000
+it performs on its operations.
+
+13
+00:01:01,000 --> 00:01:05,000
+Today we will talk about all operators which we have in Java.
+
+14
+00:01:05,000 --> 00:01:09,000
+Let's start I'd like to begin with unary arithmetic operators.
+
+15
+00:01:09,000 --> 00:01:11,000
+They are unary.
+
+16
+00:01:11,000 --> 00:01:14,000
+Plus operator indicates positive value.
+
+17
+00:01:14,000 --> 00:01:16,000
+By the way, numbers are positive by default.
+
+18
+00:01:17,000 --> 00:01:25,000
+Unary minus operator negates an expression value increment operator increments of value by one decrement
+
+19
+00:01:25,000 --> 00:01:28,000
+operator decrements a value by one.
+
+20
+00:01:28,000 --> 00:01:30,000
+And here examples of these operators.
+
+21
+00:01:31,000 --> 00:01:33,000
+We talk that numbers are positive by default.
+
+22
+00:01:33,000 --> 00:01:38,000
+So in this case plus sign is redundant, but still this is unary.
+
+23
+00:01:38,000 --> 00:01:41,000
+Operator here is a minus sign.
+
+24
+00:01:41,000 --> 00:01:47,000
+I believe this is clear and it doesn't require us to dive into the details here and here.
+
+25
+00:01:47,000 --> 00:01:50,000
+You can see incremental decremental operators.
+
+26
+00:01:50,000 --> 00:01:53,000
+Each has two forms, prefix and postfix.
+
+27
+00:01:54,000 --> 00:01:55,000
+What is the difference?
+
+28
+00:01:55,000 --> 00:01:57,000
+Let's take a closer look at this example.
+
+29
+00:01:58,000 --> 00:02:04,000
+With prefix form, the value of operand is incremented and only after that value of the operant is used
+
+30
+00:02:04,000 --> 00:02:08,000
+for the operations in this example for assignment operation.
+
+31
+00:02:08,000 --> 00:02:14,000
+In this case, I variable will be incremented and after that assigned to a three variable.
+
+32
+00:02:15,000 --> 00:02:20,000
+In the next example, value of operand will be obtained first for use in operation.
+
+33
+00:02:20,000 --> 00:02:25,000
+In this case, I for variable will be initialized with 11 value.
+
+34
+00:02:25,000 --> 00:02:32,000
+Since the incremented are here and only after that I variable will be increment it from 11 to 12.
+
+35
+00:02:32,000 --> 00:02:37,000
+And here you can see a similar example with decrement in this line.
+
+36
+00:02:37,000 --> 00:02:45,000
+Value of the variable is already twelve because of increment in previous line prefix, form of decrement
+
+37
+00:02:45,000 --> 00:02:47,000
+decrements, value of the operand.
+
+38
+00:02:47,000 --> 00:02:52,000
+First and only after that the value is assigned to a five variable.
+
+39
+00:02:53,000 --> 00:02:58,000
+That's why five variable, not twelve, but again eleven in this line.
+
+40
+00:02:58,000 --> 00:03:03,000
+Eleven is assigned to each six and only after that decremental operation is performed.
+
+41
+00:03:04,000 --> 00:03:08,000
+That's why value of the Ivanovo will be down here.
+
+42
+00:03:08,000 --> 00:03:13,000
+I will share a link with you to this example and you can run the program to find the console output
+
+43
+00:03:13,000 --> 00:03:15,000
+with all the examples.
+
+44
+00:03:16,000 --> 00:03:21,000
+You can play on your local environment with prefix and postfix form of increment and decrement to understand
+
+45
+00:03:21,000 --> 00:03:22,000
+it better.
+
+46
+00:03:23,000 --> 00:03:31,000
+Now, let's discuss arithmetic binary operators, they are additions at as on either side of the operator,
+
+47
+00:03:32,000 --> 00:03:40,000
+subtraction subtracts right hand operand from left hand operand division divides left hand over my right
+
+48
+00:03:40,000 --> 00:03:48,000
+hand operand modulars divides left hand operand, my right hand operand and returns reminder and multiplication
+
+49
+00:03:49,000 --> 00:03:52,000
+multiply as values on either side of the operator.
+
+50
+00:03:54,000 --> 00:03:58,000
+You can find examples of basic arithmetic operations right here.
+
+51
+00:03:59,000 --> 00:04:01,000
+And console output of the results.
+
+52
+00:04:02,000 --> 00:04:10,000
+Talking about modulars, let's consider the next example, if I9 Viable is five Zenn reminder of the
+
+53
+00:04:10,000 --> 00:04:13,000
+division by two would be one hope.
+
+54
+00:04:13,000 --> 00:04:17,000
+It's obvious that in his left hand, operand is less than right hand open.
+
+55
+00:04:17,000 --> 00:04:22,000
+The result is always a value of the left hand operand like in this example.
+
+56
+00:04:24,000 --> 00:04:30,000
+I believe this apparatus looks familiar to you from the times when you were in school and again here
+
+57
+00:04:30,000 --> 00:04:36,000
+you can find all the examples, all operators mentioned above works with all primitive numeric types.
+
+58
+00:04:37,000 --> 00:04:43,000
+What else you need to know about Addition Operator is that it is overloaded overload.
+
+59
+00:04:43,000 --> 00:04:47,000
+That means that this operator is used to perform more than one function.
+
+60
+00:04:48,000 --> 00:04:50,000
+This operator also concatenate strings.
+
+61
+00:04:50,000 --> 00:04:55,000
+You can subtract strings, but you can concatenate them like this.
+
+62
+00:04:56,000 --> 00:05:01,000
+In the next lesson about expression type, I will share with you how concatenation of integer and string
+
+63
+00:05:01,000 --> 00:05:01,000
+happened.
+
+64
+00:05:02,000 --> 00:05:04,000
+Let's review assignment operators now.
+
+65
+00:05:06,000 --> 00:05:13,000
+Everything is easy here, right hand operand is a sign to the left hand operand, you can also see here
+
+66
+00:05:13,000 --> 00:05:16,000
+different variations of assignment operators.
+
+67
+00:05:16,000 --> 00:05:18,000
+They all behave similarly.
+
+68
+00:05:18,000 --> 00:05:20,000
+So let's review one example here.
+
+69
+00:05:20,000 --> 00:05:22,000
+Assignment with addition.
+
+70
+00:05:23,000 --> 00:05:28,000
+This operator at the right hand operand to the left hand operand and assigns the result to the left
+
+71
+00:05:28,000 --> 00:05:29,000
+hand operand.
+
+72
+00:05:29,000 --> 00:05:32,000
+The same with other assignments operators.
+
+73
+00:05:33,000 --> 00:05:40,000
+Relational operators, these operators compare values on either side of them and decide the relation
+
+74
+00:05:40,000 --> 00:05:45,000
+and them, the result produced by a relational operator is always a boolean value.
+
+75
+00:05:45,000 --> 00:05:48,000
+True or false, in Java we have the following.
+
+76
+00:05:48,000 --> 00:05:56,000
+The relational operators equals to checks if the values of two operands are equal or not, if your condition
+
+77
+00:05:56,000 --> 00:06:02,000
+becomes true, not equals to check if the values of two operands are equal or not.
+
+78
+00:06:02,000 --> 00:06:08,000
+If values are not equal, then condition becomes true greater than checks.
+
+79
+00:06:08,000 --> 00:06:11,000
+If the value of left operand is greater than the value of right operand.
+
+80
+00:06:11,000 --> 00:06:18,000
+If your condition becomes true, less then check if the value of left operands is less than the value
+
+81
+00:06:18,000 --> 00:06:21,000
+of right operand if that condition becomes true.
+
+82
+00:06:22,000 --> 00:06:28,000
+Greater than or equal to checks, if the value of left hand operand is greater than or equal to the
+
+83
+00:06:28,000 --> 00:06:32,000
+value of right operand if your skin condition becomes true.
+
+84
+00:06:33,000 --> 00:06:39,000
+And less than or equal to checks, it was a value of left operand is less than or equal to the value
+
+85
+00:06:39,000 --> 00:06:39,000
+of right.
+
+86
+00:06:39,000 --> 00:06:42,000
+Operand, if he has some condition, becomes true.
+
+87
+00:06:43,000 --> 00:06:48,000
+And here you can find examples with two integers, which are 10 and 20.
+
+88
+00:06:49,000 --> 00:06:50,000
+No surprises here.
+
+89
+00:06:50,000 --> 00:06:52,000
+Everything is pretty straightforward.
+
+90
+00:06:53,000 --> 00:07:01,000
+Logical operators, these operators work only with Bohlin operands, usually both as a result of some
+
+91
+00:07:01,000 --> 00:07:05,000
+calculations in real life, you can check the next scenario.
+
+92
+00:07:05,000 --> 00:07:13,000
+For example, if variable of type user is not now and user, i.e. is not empty, then perform some actions.
+
+93
+00:07:13,000 --> 00:07:23,000
+We have such logical operators, logical and short circuit and logical or short circuit or logical,
+
+94
+00:07:23,000 --> 00:07:28,000
+unary, not logical exer or exclusive.
+
+95
+00:07:28,000 --> 00:07:32,000
+Or let's start with logical and logical and returns.
+
+96
+00:07:32,000 --> 00:07:35,000
+True only when both your parents are true.
+
+97
+00:07:36,000 --> 00:07:38,000
+We have this example.
+
+98
+00:07:38,000 --> 00:07:40,000
+Let me anchorman's this line.
+
+99
+00:07:40,000 --> 00:07:46,000
+Let's pretend here will be some condition which returns false and here will be next calculations.
+
+100
+00:07:46,000 --> 00:07:52,000
+I will divide five by zero and will use relational operator to check was a result of this expression
+
+101
+00:07:52,000 --> 00:07:53,000
+is equal to zero.
+
+102
+00:07:54,000 --> 00:07:55,000
+What would I have during this program?
+
+103
+00:07:55,000 --> 00:08:04,000
+Execution will see runtime exception to be specific arithmetic exception because I can't divide by zero.
+
+104
+00:08:05,000 --> 00:08:10,000
+But I want you to focus on the next thing is the first up is false.
+
+105
+00:08:10,000 --> 00:08:16,000
+We already know that result of this whole expression will be false because as we discussed and operator
+
+106
+00:08:16,000 --> 00:08:19,000
+returns true only if two operations are true.
+
+107
+00:08:20,000 --> 00:08:25,000
+Why isn't everyone needs to evaluate the result of the second expression if result is clear from the
+
+108
+00:08:25,000 --> 00:08:29,000
+first operand, I'm running the program.
+
+109
+00:08:30,000 --> 00:08:32,000
+Here we have a brief take exception.
+
+110
+00:08:33,000 --> 00:08:39,000
+That's why it is good practice to use short circuit and in case outcome of the expression may be determined
+
+111
+00:08:39,000 --> 00:08:47,000
+only by the first operand, like in this example, when no matter what the second operand is, short
+
+112
+00:08:47,000 --> 00:08:53,000
+circuits and returns result of the expression and you will not even bother to evaluate the right hand
+
+113
+00:08:53,000 --> 00:08:54,000
+operand.
+
+114
+00:08:54,000 --> 00:08:55,000
+And here are the proofs.
+
+115
+00:08:56,000 --> 00:09:03,000
+Let me comment this line, a similar example, but with short circuit and will not throw the exception.
+
+116
+00:09:03,000 --> 00:09:10,000
+This proves that doesn't invalidate result of the right hand operand and relies only on the left hand
+
+117
+00:09:10,000 --> 00:09:12,000
+open to return the result.
+
+118
+00:09:13,000 --> 00:09:14,000
+Let me run this program again.
+
+119
+00:09:15,000 --> 00:09:18,000
+And you see we don't have any kind of exceptions.
+
+120
+00:09:20,000 --> 00:09:27,000
+A similar situation with awe and short circuit or operators or returns true in case at least one of
+
+121
+00:09:27,000 --> 00:09:33,000
+the Oberon's is true, in case we can get the result of the expression only knowing in the first operand
+
+122
+00:09:33,000 --> 00:09:36,000
+was a short circuit or ignores the right hand operand.
+
+123
+00:09:37,000 --> 00:09:43,000
+And these examples will prove the statement in the first one will have arithmetic exception even despite
+
+124
+00:09:43,000 --> 00:09:44,000
+the left hand.
+
+125
+00:09:44,000 --> 00:09:50,000
+Operand is true, the right hand expression is also related and arithmetic exception is strong.
+
+126
+00:09:50,000 --> 00:09:57,000
+In the second example, we will receive true because the first operand is true and right hand expression
+
+127
+00:09:57,000 --> 00:10:01,000
+is not evaluated logical or operator returns true.
+
+128
+00:10:01,000 --> 00:10:08,000
+If at least one operand is true, that's why Jovian doesn't care about right hand operand if the first
+
+129
+00:10:08,000 --> 00:10:09,000
+one is true.
+
+130
+00:10:10,000 --> 00:10:17,000
+You can see how logical unary not works in this example, it's just chance true to false and false to
+
+131
+00:10:17,000 --> 00:10:25,000
+true when to use this the easiest example string objects have method is empty, which return true if
+
+132
+00:10:25,000 --> 00:10:27,000
+strings are empty.
+
+133
+00:10:27,000 --> 00:10:33,000
+But in your program, you want to perform some actions with the string only if string is not empty.
+
+134
+00:10:34,000 --> 00:10:39,000
+Taking into account this apparent limitations, you use logical unary not to implement your logic.
+
+135
+00:10:40,000 --> 00:10:44,000
+It will sounds like this in case the string is not empty.
+
+136
+00:10:44,000 --> 00:10:46,000
+Then do the following.
+
+137
+00:10:47,000 --> 00:10:49,000
+That's where you need unary not operator.
+
+138
+00:10:50,000 --> 00:10:58,000
+Exclusive or behaves like a logical or with one exception, it returns false if both operands are true.
+
+139
+00:11:00,000 --> 00:11:02,000
+Now, let's take a look at bitwise operators.
+
+140
+00:11:04,000 --> 00:11:09,000
+Hope you watched previous lesson about no systems, because to understand how bitwise operators work,
+
+141
+00:11:09,000 --> 00:11:14,000
+you need to have clear understanding of how integers are represented in binary format.
+
+142
+00:11:15,000 --> 00:11:22,000
+In general, we have the following binary operators, binary and operator Corpus a bit to the result
+
+143
+00:11:22,000 --> 00:11:28,000
+if it exists in both operands binary or operator Corpus a bit.
+
+144
+00:11:28,000 --> 00:11:36,000
+If it exists in either operand binary XOR operator Corpus a bit if it's set in one operand, but not
+
+145
+00:11:36,000 --> 00:11:42,000
+both binary ones complement operator is unary and has the effect of flipping bits.
+
+146
+00:11:43,000 --> 00:11:44,000
+Binary right shift operator.
+
+147
+00:11:45,000 --> 00:11:51,000
+The left operands value is moved right by the number of bits specified by the right operand schifter
+
+148
+00:11:52,000 --> 00:11:53,000
+zero feel operator.
+
+149
+00:11:53,000 --> 00:12:00,000
+The left operands value is moved right by the number of bits specified by the right operand and shifted
+
+150
+00:12:00,000 --> 00:12:07,000
+values are filled up with zeros and will show you an example why they still consider it to be different.
+
+151
+00:12:07,000 --> 00:12:09,000
+Binary left shift operator.
+
+152
+00:12:09,000 --> 00:12:15,000
+The left operands value is moved left by the number of bits specified by the right operand.
+
+153
+00:12:15,000 --> 00:12:17,000
+Let's take a look at examples here.
+
+154
+00:12:19,000 --> 00:12:25,000
+To visualize how binary and operator works, I put anchorman's here binary representation of four and
+
+155
+00:12:25,000 --> 00:12:25,000
+five.
+
+156
+00:12:26,000 --> 00:12:33,000
+This is four in binary format and this is five and is applied to each pair of these in the number,
+
+157
+00:12:34,000 --> 00:12:37,000
+let's say three to one is true and to zero as false.
+
+158
+00:12:38,000 --> 00:12:40,000
+True and true will be true.
+
+159
+00:12:40,000 --> 00:12:43,000
+False and false will be false.
+
+160
+00:12:44,000 --> 00:12:46,000
+False and true is false.
+
+161
+00:12:47,000 --> 00:12:50,000
+And this number in decimal format is four.
+
+162
+00:12:51,000 --> 00:12:53,000
+That's why four and five equals to four.
+
+163
+00:12:54,000 --> 00:12:55,000
+Does it make sense now?
+
+164
+00:12:57,000 --> 00:13:06,000
+The similar example is binary or operator, true or true will be true, false or false will be false.
+
+165
+00:13:07,000 --> 00:13:08,000
+False or true.
+
+166
+00:13:09,000 --> 00:13:09,000
+Will be true.
+
+167
+00:13:10,000 --> 00:13:13,000
+This number in the small format will be equal to five.
+
+168
+00:13:14,000 --> 00:13:18,000
+Feel free to investigate this exer example by yourself.
+
+169
+00:13:19,000 --> 00:13:25,000
+Bitwise compliment operator just flips the beats, what was one becomes zero and vice versa.
+
+170
+00:13:26,000 --> 00:13:28,000
+Let's flip the dates in this number.
+
+171
+00:13:29,000 --> 00:13:36,000
+Bitwise operators work with 32 bit integers, but for the sake of example, I put anchorman's here,
+
+172
+00:13:36,000 --> 00:13:43,000
+only lost eight bits here is lost a bit of one, and after a bit, we have minus two.
+
+173
+00:13:44,000 --> 00:13:44,000
+Why?
+
+174
+00:13:45,000 --> 00:13:52,000
+Because in Java, integers are signed and the first bit of the integer is a sign with little ones where
+
+175
+00:13:52,000 --> 00:13:54,000
+the number is positive or negative.
+
+176
+00:13:54,000 --> 00:13:58,000
+It was the first bit is zero since the number is positive.
+
+177
+00:13:58,000 --> 00:14:01,000
+It was the first bit is one, then the number is negative.
+
+178
+00:14:02,000 --> 00:14:04,000
+Here is the binary representation of minus two.
+
+179
+00:14:05,000 --> 00:14:11,000
+To make you understand better how negative integers are stored in Java, please consider this example.
+
+180
+00:14:12,000 --> 00:14:20,000
+Here is binary representation of minus one hundred twenty eight Y because one multiplied by two in the
+
+181
+00:14:20,000 --> 00:14:22,000
+power of seven because Renco.
+
+182
+00:14:22,000 --> 00:14:24,000
+This bit is seven.
+
+183
+00:14:24,000 --> 00:14:26,000
+That will be one hundred twenty eight.
+
+184
+00:14:26,000 --> 00:14:33,000
+Take into account that the first bit is signed with this is minus one hundred twenty eight and here's
+
+185
+00:14:33,000 --> 00:14:41,000
+binary representation of minus sixty for Y because minus one hundred twenty eight plus one multiplied
+
+186
+00:14:41,000 --> 00:14:45,000
+by two in power of six will be minus sixty four.
+
+187
+00:14:46,000 --> 00:14:52,000
+You remember how we did calculations in our numbers, systems, lesson, we the values of the next beat
+
+188
+00:14:52,000 --> 00:14:53,000
+to each other.
+
+189
+00:14:55,000 --> 00:14:56,000
+Hope this makes more sense now.
+
+190
+00:14:58,000 --> 00:15:04,000
+Let's take a look how bitwise right shift works and again, to understand how right shift works, let's
+
+191
+00:15:04,000 --> 00:15:07,000
+convert this decimal number to its binary format.
+
+192
+00:15:07,000 --> 00:15:10,000
+Five in binary format looks like this.
+
+193
+00:15:10,000 --> 00:15:13,000
+And now let's shift all bets to the right.
+
+194
+00:15:13,000 --> 00:15:20,000
+What we will get, we'll get to because two in binary format looks like this.
+
+195
+00:15:23,000 --> 00:15:27,000
+But what is the difference between the right shift and Alcides right shift?
+
+196
+00:15:27,000 --> 00:15:34,000
+If we take a look at the same example we want to see difference, the five becomes two after shifting
+
+197
+00:15:34,000 --> 00:15:35,000
+by one bit to the right.
+
+198
+00:15:36,000 --> 00:15:42,000
+But if we take a look at example with negative number, we we'll see how right shift and unsign Tradeshift
+
+199
+00:15:42,000 --> 00:15:44,000
+operators are different.
+
+200
+00:15:44,000 --> 00:15:52,000
+We have minus one hundred twenty eight here and Tradeshift for one bit gives us this number and just
+
+201
+00:15:52,000 --> 00:15:57,000
+Tradeshift gives us this number one we use right shivved operator.
+
+202
+00:15:57,000 --> 00:15:59,000
+It keeps unberth intact.
+
+203
+00:15:59,000 --> 00:16:05,000
+If original number is negative then it will remain negative even after right shift because first or
+
+204
+00:16:05,000 --> 00:16:07,000
+most significant, it never lost.
+
+205
+00:16:08,000 --> 00:16:10,000
+Doesn't matter how many times you shift.
+
+206
+00:16:10,000 --> 00:16:17,000
+On the other hand, onsides right shift operator doesn't preserve sign of original number and feels
+
+207
+00:16:17,000 --> 00:16:18,000
+the new place with zero.
+
+208
+00:16:19,000 --> 00:16:26,000
+That's why it's known as unsigned right shift operator or simply write shift with zero fill and it uses
+
+209
+00:16:26,000 --> 00:16:27,000
+in binary format.
+
+210
+00:16:28,000 --> 00:16:35,000
+In the first example, Windfield new place with zero in the second example, will it the first bit unchanged
+
+211
+00:16:35,000 --> 00:16:36,000
+and made shift here?
+
+212
+00:16:38,000 --> 00:16:46,000
+Left shift is a similar example with a move to the left and new positions are filled with zeroes, five
+
+213
+00:16:46,000 --> 00:16:50,000
+in binary format and then in binary format looks like this.
+
+214
+00:16:51,000 --> 00:16:57,000
+So after the left shift by one bit, we are getting this number where you will use both shifts.
+
+215
+00:16:58,000 --> 00:17:03,000
+Operation was considered to be faster than regular arithmetic operations engineer.
+
+216
+00:17:03,000 --> 00:17:07,000
+Sometimes in the source code you will find that big shifts are used.
+
+217
+00:17:08,000 --> 00:17:13,000
+Probably you want to use big shifts in day to day activities, but definitely you will see those in
+
+218
+00:17:13,000 --> 00:17:18,000
+the source code and now you understand how these operators work.
+
+219
+00:17:18,000 --> 00:17:25,000
+That's very convenient to use shift operators for division and multiplication by two shifts in bits
+
+220
+00:17:25,000 --> 00:17:25,000
+to the left.
+
+221
+00:17:25,000 --> 00:17:30,000
+By one, it is equivalent to multiplication by two shifts in base, to the right.
+
+222
+00:17:30,000 --> 00:17:33,000
+By one, it is equivalent to division by two.
+
+223
+00:17:34,000 --> 00:17:38,000
+You can also use these formulas for faster calculations of beats shift.
+
+224
+00:17:39,000 --> 00:17:47,000
+In some X no shift in which to the left and right white, this will be equal to X multiplied by two
+
+225
+00:17:47,000 --> 00:17:56,000
+in power of Y, the similar example in some X number shifting bit to the right y y bits will be equal
+
+226
+00:17:56,000 --> 00:17:59,000
+to X divided by two in power of Y.
+
+227
+00:18:00,000 --> 00:18:07,000
+And live right now, you know, about beetroots even more than some senior developers and last but not
+
+228
+00:18:07,000 --> 00:18:09,000
+the least operator for the day is generally operator.
+
+229
+00:18:10,000 --> 00:18:17,000
+This operator works with three options, this is conditional operator, which can help us to write ins
+
+230
+00:18:17,000 --> 00:18:18,000
+and outs statements.
+
+231
+00:18:19,000 --> 00:18:25,000
+Let's have a closer look to how it works, the first expression usually called confusion and should
+
+232
+00:18:25,000 --> 00:18:33,000
+return true or false in case condition is true, then true expression is evaluated in case condition
+
+233
+00:18:33,000 --> 00:18:39,000
+is false and false expression is evaluated in this example, in case two is more than one.
+
+234
+00:18:39,000 --> 00:18:46,000
+And result of this expression is true, then the first expression is evaluated and the string is returned
+
+235
+00:18:46,000 --> 00:18:53,000
+in case we have expression where two is less than one and a result of this expression is false, then
+
+236
+00:18:53,000 --> 00:18:57,000
+the second expression is evaluated and the string is returned.
+
+237
+00:18:57,000 --> 00:18:58,000
+Is it clear?
+
+238
+00:18:59,000 --> 00:19:06,000
+And now let's discuss operator precedence from highest, the lowest, I know that some companies also
+
+239
+00:19:06,000 --> 00:19:09,000
+have test questions to test precedents of operators.
+
+240
+00:19:09,000 --> 00:19:12,000
+That's why I encourage you to on these operators.
+
+241
+00:19:13,000 --> 00:19:19,000
+But in real life, nobody would write the code with multiple arithmetic operators, bitwise operators,
+
+242
+00:19:19,000 --> 00:19:21,000
+along with ternary operators in one line.
+
+243
+00:19:22,000 --> 00:19:27,000
+Usually you would use parentheses to make it clear in which sequence operator should work.
+
+244
+00:19:28,000 --> 00:19:33,000
+So I would leave the none of operator precedence up to you because in my opinion, it doesn't require
+
+245
+00:19:33,000 --> 00:19:36,000
+to go over each of these right now.
+
+246
+00:19:36,000 --> 00:19:41,000
+And with video lesson, you just need to learn the table, which I will share with you in the homework.
+
+247
+00:19:42,000 --> 00:19:49,000
+And now let's review your homework, remember that optionally I always recommend you to read books,
+
+248
+00:19:49,000 --> 00:19:56,000
+the same things, what we discussed just from different point of view chapters about operators and also
+
+249
+00:19:56,000 --> 00:19:59,000
+lone operator presidents described in this table.
+
diff --git a/05 - Operators and Operations with primitive types/001 Source-code-of-the-example-used-in-the-lesson.url b/05 - Operators and Operations with primitive types/001 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..c0d7c591e7156f9b8d9b0330f976febaf324b75c
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/001 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operators/JavaOperators.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/002 Operations with integers and floating-point numbers, BigDecimal type_en.srt b/05 - Operators and Operations with primitive types/002 Operations with integers and floating-point numbers, BigDecimal type_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..117e451cfd6577d615985d3ddd0d7491ae1b841a
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/002 Operations with integers and floating-point numbers, BigDecimal type_en.srt
@@ -0,0 +1,260 @@
+1
+00:00:05,000 --> 00:00:10,000
+Yes, students in this lesson, I would like to draw attention to some operations with integers and
+
+2
+00:00:10,000 --> 00:00:12,000
+floating point numbers.
+
+3
+00:00:12,000 --> 00:00:14,000
+Let's start with use this example.
+
+4
+00:00:14,000 --> 00:00:17,000
+Imagine you want to divide two integers.
+
+5
+00:00:17,000 --> 00:00:23,000
+Let's imagine you're implementing overapplication and you want to split the right charge between you
+
+6
+00:00:23,000 --> 00:00:23,000
+and your friends.
+
+7
+00:00:24,000 --> 00:00:30,000
+If right charge was 20 bucks and there were three of you, each of you should pay for six bucks.
+
+8
+00:00:32,000 --> 00:00:38,000
+According to the results of our program, probably each of you will be happy because you all together
+
+9
+00:00:38,000 --> 00:00:42,000
+saved two bucks, but Uber driver will hit you up.
+
+10
+00:00:43,000 --> 00:00:49,000
+You need to remember that when you are dividing integers, you receive integer and there is no rounding
+
+11
+00:00:49,000 --> 00:00:50,000
+fractional.
+
+12
+00:00:50,000 --> 00:00:55,000
+Part of the result is just not taken into account what you can do about it now.
+
+13
+00:00:55,000 --> 00:01:00,000
+Just change type of the option to double to get floating point number as a result.
+
+14
+00:01:02,000 --> 00:01:09,000
+You see, I am custom integer to double here and right in the program, we'll run with you more about
+
+15
+00:01:09,000 --> 00:01:11,000
+expression, type in the separate less than.
+
+16
+00:01:12,000 --> 00:01:18,000
+Now you see double the result, but still this is something what the end user wouldn't expect and can't
+
+17
+00:01:18,000 --> 00:01:20,000
+pay exactly this amount of money.
+
+18
+00:01:21,000 --> 00:01:22,000
+So what to do in this case?
+
+19
+00:01:23,000 --> 00:01:26,000
+The rule of thumb here is to use big decimal object.
+
+20
+00:01:27,000 --> 00:01:32,000
+In previous lessons, we learned how to attach source code to eclipse and how to investigate the source
+
+21
+00:01:32,000 --> 00:01:33,000
+code.
+
+22
+00:01:33,000 --> 00:01:37,000
+So feel free to open Javadoc for that small type.
+
+23
+00:01:37,000 --> 00:01:37,000
+To learn more.
+
+24
+00:01:39,000 --> 00:01:44,000
+The big Desmonte class provides reparations for arithmetic, scale manipulation around in.
+
+25
+00:01:46,000 --> 00:01:53,000
+Also, this class gives its user complete control of around in behavior, if no round in mode is specified
+
+26
+00:01:53,000 --> 00:01:57,000
+and the exact result cannot be represented, an exception is thrown.
+
+27
+00:01:58,000 --> 00:02:00,000
+Let's declare a variable of big decimal type here.
+
+28
+00:02:02,000 --> 00:02:09,000
+To create object, object that small use, special method value of like this and calling value of method
+
+29
+00:02:09,000 --> 00:02:11,000
+here of big decimal type.
+
+30
+00:02:12,000 --> 00:02:17,000
+This message represents gradational architecture, Partan, which is called factory method.
+
+31
+00:02:17,000 --> 00:02:21,000
+We'll discuss portions in the separate lesson for now.
+
+32
+00:02:21,000 --> 00:02:24,000
+Just remember how to create an object of that small type.
+
+33
+00:02:25,000 --> 00:02:27,000
+You can also set scale for this number.
+
+34
+00:02:27,000 --> 00:02:29,000
+We are having to deal with money here.
+
+35
+00:02:29,000 --> 00:02:31,000
+So let me set a scale of two.
+
+36
+00:02:32,000 --> 00:02:33,000
+This is our right feet.
+
+37
+00:02:34,000 --> 00:02:37,000
+Let's create a new variable which will contain amount of people.
+
+38
+00:02:37,000 --> 00:02:39,000
+We have three people.
+
+39
+00:02:40,000 --> 00:02:46,000
+And now let's divide right feet by amount of people without rounding more specified, we'll have arithmetic
+
+40
+00:02:46,000 --> 00:02:48,000
+exception like this.
+
+41
+00:02:49,000 --> 00:02:54,000
+Our program wants to tell us that we can't show the exact calculation result.
+
+42
+00:02:54,000 --> 00:02:59,000
+Let's set up around in put call my hair in mode.
+
+43
+00:03:01,000 --> 00:03:01,000
+Not.
+
+44
+00:03:03,000 --> 00:03:08,000
+You can choose out of different rounded modes here, but let's select the one we learned at school.
+
+45
+00:03:09,000 --> 00:03:11,000
+And now let's bring the result to console.
+
+46
+00:03:12,000 --> 00:03:13,000
+And runs the program.
+
+47
+00:03:15,000 --> 00:03:18,000
+And now we see the results, which we were expected to see.
+
+48
+00:03:20,000 --> 00:03:27,000
+Let's also review operations with double imagine you have some double number three point one, and you
+
+49
+00:03:27,000 --> 00:03:32,000
+need to subtract from it one point twenty one when you subtract double value from double value.
+
+50
+00:03:33,000 --> 00:03:34,000
+You will see a result like this.
+
+51
+00:03:37,000 --> 00:03:44,000
+The funny story that I order a pizza online recently and applied my bonuses as a result, I got no like
+
+52
+00:03:44,000 --> 00:03:44,000
+this.
+
+53
+00:03:45,000 --> 00:03:49,000
+I asked them how they would like me to pay this amount of money we love to meet.
+
+54
+00:03:49,000 --> 00:03:53,000
+But still, as a programmer, you need to know what to do.
+
+55
+00:03:53,000 --> 00:03:53,000
+In such cases.
+
+56
+00:03:54,000 --> 00:04:00,000
+There are infinite number of real numbers in any range, but only a finite number of bits to represent
+
+57
+00:04:00,000 --> 00:04:00,000
+them.
+
+58
+00:04:01,000 --> 00:04:05,000
+For this reason, a rounding error is expected for doubles and flaws.
+
+59
+00:04:06,000 --> 00:04:12,000
+The number you get is the closest number possible that can be represented by double in 14 points representation.
+
+60
+00:04:13,000 --> 00:04:15,000
+Here's where Big Decimal was rounding.
+
+61
+00:04:15,000 --> 00:04:16,000
+What will help us?
+
+62
+00:04:17,000 --> 00:04:23,000
+Let's create the objects of big decimal here, do not forget to set the scale for them.
+
+63
+00:04:24,000 --> 00:04:30,000
+And let's subtract this number from this one, I'm right in the program and here is the result.
+
+64
+00:04:31,000 --> 00:04:36,000
+Today, you learned how to control precision in arithmetic operations and how to set up around in the
+
+65
+00:04:36,000 --> 00:04:37,000
+rules.
+
diff --git a/05 - Operators and Operations with primitive types/002 Source-code-of-the-example-used-in-the-lesson.url b/05 - Operators and Operations with primitive types/002 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..478eec3ef638db4a42df3c751ec9a5fd0799afb9
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/002 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/OperationsWithIntegersAndDoubles.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/003 Math class, NaN, Infinity_en.srt b/05 - Operators and Operations with primitive types/003 Math class, NaN, Infinity_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..dc64337ff45e2f590e8f6f22e6c2ec72bb600fa9
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/003 Math class, NaN, Infinity_en.srt
@@ -0,0 +1,248 @@
+1
+00:00:06,000 --> 00:00:11,000
+They will review special class, which will help us to perform mathematical operations, that javelin
+
+2
+00:00:11,000 --> 00:00:19,000
+math contains a set of basic math operations, such as obtaining the absolute value, highest and lowest
+
+3
+00:00:19,000 --> 00:00:27,000
+of two values, rounding of failures, random values, etc. in this lesson will not review each specific
+
+4
+00:00:27,000 --> 00:00:29,000
+method in details because of two reasons.
+
+5
+00:00:30,000 --> 00:00:33,000
+The first reason is that in real life, you want to use them all.
+
+6
+00:00:34,000 --> 00:00:39,000
+For example, you will not use calculation of tangent on a daily basis while creating Web applications.
+
+7
+00:00:40,000 --> 00:00:43,000
+I hope so, and a lot of others trigonometric functions.
+
+8
+00:00:44,000 --> 00:00:49,000
+And the second reason most of the methods are self describing and it's clear what they perform from
+
+9
+00:00:49,000 --> 00:00:50,000
+their names.
+
+10
+00:00:50,000 --> 00:00:56,000
+Instead, I would suggest us to focus on how to call this method and what are the most common methods
+
+11
+00:00:56,000 --> 00:00:58,000
+which we'll use from the master class.
+
+12
+00:00:58,000 --> 00:01:01,000
+Let's open math type source code in eclipse.
+
+13
+00:01:01,000 --> 00:01:04,000
+You can easily open any type by using the following hotkeys.
+
+14
+00:01:05,000 --> 00:01:07,000
+Hold control class shift plasty.
+
+15
+00:01:08,000 --> 00:01:13,000
+We already have smashed glass here because I searched for it recently, but just remember that you can
+
+16
+00:01:13,000 --> 00:01:17,000
+type name of any glass here and find it in the list below.
+
+17
+00:01:19,000 --> 00:01:24,000
+Let's press control and all to have overview of what we have in this class.
+
+18
+00:01:24,000 --> 00:01:31,000
+First of all, we have two constants here, E. The number one failure, which is closer than any other
+
+19
+00:01:31,000 --> 00:01:38,000
+to the base of natural logarithms by the PI number, the ratio of the circumference of a circle to its
+
+20
+00:01:38,000 --> 00:01:45,000
+diameter here, trigonometric methods, shehri, the math forgettin square root of a number.
+
+21
+00:01:46,000 --> 00:01:50,000
+Here is the method to raise the numbers of the power of another argument.
+
+22
+00:01:51,000 --> 00:01:53,000
+Here is a method to round number.
+
+23
+00:01:54,000 --> 00:01:57,000
+Here is the method to generate random numbers from zero to one.
+
+24
+00:01:58,000 --> 00:02:02,000
+Share overloaded methods to get an absolute number of value.
+
+25
+00:02:04,000 --> 00:02:08,000
+And here, methods to find maximum and minimum value out of two arguments.
+
+26
+00:02:09,000 --> 00:02:11,000
+And now let's take a look how you can use these methods.
+
+27
+00:02:13,000 --> 00:02:19,000
+The specific methods in the glass mask or to refer to the constant in the glass use don't like this.
+
+28
+00:02:19,000 --> 00:02:25,000
+You can refer to the pie constant and here's how you can call any specific method and see the result
+
+29
+00:02:25,000 --> 00:02:26,000
+in console output.
+
+30
+00:02:27,000 --> 00:02:31,000
+You can also sign the value, which is a return from method to the variable, if you wish.
+
+31
+00:02:32,000 --> 00:02:35,000
+By the way, you can extract variable very easy like this.
+
+32
+00:02:36,000 --> 00:02:42,000
+So like the expression threshold plus shift plus L simultaneously type the variable name.
+
+33
+00:02:43,000 --> 00:02:49,000
+And press enter and you can see how we substituted the expression here with wearable.
+
+34
+00:02:50,000 --> 00:02:55,000
+You also need to know that some operations was fourteen point numbers can produce, not a no result.
+
+35
+00:02:56,000 --> 00:03:00,000
+Getting a square root from negative number will return, not a no result.
+
+36
+00:03:00,000 --> 00:03:04,000
+This very usually indicates the result of inwell operations.
+
+37
+00:03:04,000 --> 00:03:10,000
+For example, getting a square root from a negative number or dividing zero by another zero of double
+
+38
+00:03:10,000 --> 00:03:14,000
+type operations was not a number will produce, not a no result.
+
+39
+00:03:15,000 --> 00:03:18,000
+By the way, you already aware that division by zero?
+
+40
+00:03:18,000 --> 00:03:25,000
+I really take exception, but in case we divide any number by fourteen point zero, we will get infinity.
+
+41
+00:03:26,000 --> 00:03:30,000
+We can get positive and negative infinity like showed in these examples.
+
+42
+00:03:32,000 --> 00:03:37,000
+And here's how you can round numbers to take control over the scale of the result.
+
+43
+00:03:37,000 --> 00:03:43,000
+Feel free to multiply the first operand around value and after that divides the results on the same
+
+44
+00:03:43,000 --> 00:03:43,000
+number.
+
+45
+00:03:43,000 --> 00:03:48,000
+You multiply it at the beginning, for example, to have scale of two for the result.
+
+46
+00:03:49,000 --> 00:03:53,000
+Feel free to multiply on one hundred and divide the result by one hundred.
+
+47
+00:03:54,000 --> 00:04:00,000
+And now let's take a look how to generate random number mass random generates values only between zero
+
+48
+00:04:00,000 --> 00:04:00,000
+and one.
+
+49
+00:04:01,000 --> 00:04:07,000
+To get a random integer number you should cast the result tend to not always have zero.
+
+50
+00:04:07,000 --> 00:04:13,000
+After casting to end, we need to multiply random number by the amount of numbers we would like to have
+
+51
+00:04:13,000 --> 00:04:15,000
+in our range for random number generation.
+
+52
+00:04:16,000 --> 00:04:23,000
+This example would generate for us random number in the range from zero to 100, and if you want to
+
+53
+00:04:23,000 --> 00:04:29,000
+make the first number of the range different, just at an integer number, for example, here we will
+
+54
+00:04:29,000 --> 00:04:35,000
+generate random numbers in the range from one hundred to 200 in the next lessons will run with you.
+
+55
+00:04:35,000 --> 00:04:39,000
+One more option to generate random number was random class.
+
+56
+00:04:39,000 --> 00:04:45,000
+Taking into account this lesson about math class, we'll review only this option to generate random
+
+57
+00:04:45,000 --> 00:04:46,000
+number in scope of the lesson.
+
+58
+00:04:47,000 --> 00:04:53,000
+By the way, in case you want to learn how specific method works, you can hold control and press most
+
+59
+00:04:53,000 --> 00:04:57,000
+likely to get navigated to the source code and investigate how it works.
+
+60
+00:04:57,000 --> 00:05:03,000
+And to learn the Java documentation for this method, please feel free to investigate the source code
+
+61
+00:05:03,000 --> 00:05:08,000
+of the math class and learn what other methods there after today's lesson.
+
+62
+00:05:08,000 --> 00:05:11,000
+You know why you need math class and how you can use it.
+
diff --git a/05 - Operators and Operations with primitive types/003 Source-code-of-the-example-used-in-the-lesson.url b/05 - Operators and Operations with primitive types/003 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..5d1c6026f9765f37b13ce34caf07b674ddc748ed
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/003 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/math/MathClassDemo.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/004 Source-code-of-the-example-used-in-the-lesson.url b/05 - Operators and Operations with primitive types/004 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..5aecfe56ca5c1e0d18fac9973f47967a0c6fab48
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/004 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/ExpressionTypeExample.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/004 Type of the expression in Java_en.srt b/05 - Operators and Operations with primitive types/004 Type of the expression in Java_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..2299137b4883a7e24300eaa3e905f55b0771bfb6
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/004 Type of the expression in Java_en.srt
@@ -0,0 +1,220 @@
+1
+00:00:06,000 --> 00:00:11,000
+The purpose of today's lesson to learn what is the type of arithmetic expression, it is very important
+
+2
+00:00:11,000 --> 00:00:12,000
+topic to understand.
+
+3
+00:00:13,000 --> 00:00:15,000
+I suggest to jump directly to examples.
+
+4
+00:00:16,000 --> 00:00:19,000
+But first of all, let's agree on the names in Java.
+
+5
+00:00:19,000 --> 00:00:21,000
+We have expressions and statements.
+
+6
+00:00:22,000 --> 00:00:23,000
+What is the difference?
+
+7
+00:00:23,000 --> 00:00:28,000
+An expression is a construct made up of verbose operators and methods and locations.
+
+8
+00:00:29,000 --> 00:00:34,000
+On the other hand, statements are roughly equivalent to sentences in natural languages.
+
+9
+00:00:34,000 --> 00:00:37,000
+A statement forms a complete unit of execution.
+
+10
+00:00:38,000 --> 00:00:39,000
+Let's take a look here.
+
+11
+00:00:40,000 --> 00:00:48,000
+B plus B, this is the expression and all this line is a statement, including assignment operation,
+
+12
+00:00:48,000 --> 00:00:55,000
+so that they will learn what are the type of an arithmetic expression we have, both short and a long,
+
+13
+00:00:55,000 --> 00:00:57,000
+flawed double and char variables here.
+
+14
+00:00:58,000 --> 00:01:05,000
+You need to remember, if you want to add two bytes, the expression type won't be byte by default of
+
+15
+00:01:05,000 --> 00:01:05,000
+that integer.
+
+16
+00:01:05,000 --> 00:01:08,000
+Result of the expression is always end.
+
+17
+00:01:08,000 --> 00:01:14,000
+So in case you would like to assign the result of this expression to by the variable, you see compilation
+
+18
+00:01:14,000 --> 00:01:16,000
+error because this is against the rules.
+
+19
+00:01:17,000 --> 00:01:24,000
+That mismatch cannot convert from end to bite, no matter if you're in shorts or byte and end and char.
+
+20
+00:01:24,000 --> 00:01:28,000
+The result of operations with integers always will be in.
+
+21
+00:01:29,000 --> 00:01:32,000
+But in case you will use, the long variable in operation was integers.
+
+22
+00:01:32,000 --> 00:01:38,000
+The result will be long and you see that in case I would try to assign the result of the addition of
+
+23
+00:01:38,000 --> 00:01:45,000
+Int and long to invariable, I will see the same compilation error type mismatch in case fluid becomes
+
+24
+00:01:45,000 --> 00:01:47,000
+part of the arithmetic operation.
+
+25
+00:01:47,000 --> 00:01:50,000
+The result of the expression also becomes flawed.
+
+26
+00:01:50,000 --> 00:01:56,000
+And if we perform operations with double the type of the result obviously is double.
+
+27
+00:01:56,000 --> 00:02:00,000
+So now I believe you understand why in this case we'll see three.
+
+28
+00:02:00,000 --> 00:02:03,000
+And in this case the result will be flawed point number.
+
+29
+00:02:05,000 --> 00:02:12,000
+One more thing you need to know about expression types in case one of the operands is string, the result
+
+30
+00:02:12,000 --> 00:02:13,000
+always will be string.
+
+31
+00:02:15,000 --> 00:02:21,000
+There is no such thing as plus operator on the bytecode level, so the compiler has to pick an operation.
+
+32
+00:02:22,000 --> 00:02:28,000
+The operator, which is applied to non constant strings, was compiler to string buffer usage before
+
+33
+00:02:28,000 --> 00:02:35,000
+Java five and a string builder usage in Java five, the Java eight in Java nine for string concatenation
+
+34
+00:02:35,000 --> 00:02:41,000
+is going to change from a string builder to strategy chosen by the jury via invoke dynamic.
+
+35
+00:02:42,000 --> 00:02:48,000
+There are six strategies that are possible for string concatenation, starting from JDK nine, and we
+
+36
+00:02:48,000 --> 00:02:51,000
+want to get deeper here in details to not get lost.
+
+37
+00:02:51,000 --> 00:02:55,000
+This is not very critical information for junior software engineers to know.
+
+38
+00:02:56,000 --> 00:02:56,000
+So far.
+
+39
+00:02:56,000 --> 00:03:02,000
+You can imagine that this expression is interpreted as string builder object, which behaves like different
+
+40
+00:03:02,000 --> 00:03:03,000
+append method call.
+
+41
+00:03:04,000 --> 00:03:08,000
+We'll have separate lessoned dedicated to string builder and string Baffour objects.
+
+42
+00:03:08,000 --> 00:03:11,000
+That's open string builder type for a few seconds.
+
+43
+00:03:11,000 --> 00:03:13,000
+Just to take a look at the bent method.
+
+44
+00:03:13,000 --> 00:03:20,000
+We have overloaded methods for append in the case when we concatenate into this method will be called.
+
+45
+00:03:20,000 --> 00:03:23,000
+You can investigate the source code if you wish.
+
+46
+00:03:27,000 --> 00:03:30,000
+In case when we can coordinate now, this method will be called.
+
+47
+00:03:32,000 --> 00:03:38,000
+Where in terms tranquilly of methods will be called and here you can find ternary operator.
+
+48
+00:03:39,000 --> 00:03:46,000
+And in case this argument is now the message will return, the string will have separate lesson dedicated
+
+49
+00:03:46,000 --> 00:03:50,000
+to string builder and string mafia types later in our course.
+
+50
+00:03:51,000 --> 00:03:51,000
+So don't worry.
+
+51
+00:03:51,000 --> 00:03:57,000
+In case you didn't catch something related to string builder type, we'll discuss it more in detail
+
+52
+00:03:57,000 --> 00:03:57,000
+later.
+
+53
+00:03:58,000 --> 00:04:03,000
+Right now, you can imagine a string builder as a special type which can create one single string object
+
+54
+00:04:03,000 --> 00:04:10,000
+out of many string objects by concatenating strings just to have understanding how plants operate that
+
+55
+00:04:10,000 --> 00:04:12,000
+perform string concatenation under the hood.
+
diff --git a/05 - Operators and Operations with primitive types/005 Compare primitive and reference types & Java Memory Model_en.srt b/05 - Operators and Operations with primitive types/005 Compare primitive and reference types & Java Memory Model_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..206a824fe82c8fc31a11b1591df66fd12f51e491
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/005 Compare primitive and reference types & Java Memory Model_en.srt
@@ -0,0 +1,512 @@
+1
+00:00:05,000 --> 00:00:10,000
+In today's lesson, we'll learn how we can compare primitive and referenced times and we will review
+
+2
+00:00:10,000 --> 00:00:11,000
+Java memory model.
+
+3
+00:00:12,000 --> 00:00:17,000
+Also, we'll show you what is integer pool in Java and what does equals method do.
+
+4
+00:00:18,000 --> 00:00:21,000
+Let's start from example how we are comparing primitive types.
+
+5
+00:00:21,000 --> 00:00:27,000
+You already learned the operators in Java in order to compare primitive types we can use equals to operator.
+
+6
+00:00:28,000 --> 00:00:30,000
+It works with all primitive types.
+
+7
+00:00:30,000 --> 00:00:37,000
+For example, here we have two environments and here we compare them in this line will receive true.
+
+8
+00:00:38,000 --> 00:00:46,000
+And this line will receive false and he will also receive true because a character is on 60 fifth position
+
+9
+00:00:46,000 --> 00:00:49,000
+in the table, everything is clear here.
+
+10
+00:00:49,000 --> 00:00:53,000
+Let's continue from the lesson about primitive types.
+
+11
+00:00:53,000 --> 00:00:56,000
+You should remember that each primitive type has its wrapper type.
+
+12
+00:00:56,000 --> 00:01:00,000
+The wrapper types are reference types of data in Java.
+
+13
+00:01:00,000 --> 00:01:06,000
+Let me declare two variables of integer type here and initialize both of them with the same value.
+
+14
+00:01:06,000 --> 00:01:09,000
+Now let's compare them with equals to operator.
+
+15
+00:01:09,000 --> 00:01:17,000
+The result will be false y I variable and I do have the same value to understand the answer.
+
+16
+00:01:17,000 --> 00:01:18,000
+Let me visualize it to you.
+
+17
+00:01:19,000 --> 00:01:24,000
+It is primitive type, variable of type, it contains a value in itself.
+
+18
+00:01:25,000 --> 00:01:31,000
+So when we are comparing to ends, there is no concerns from Java during the runtime to compare to values.
+
+19
+00:01:31,000 --> 00:01:36,000
+On the other hand, variables of integer type are referencing to the objects.
+
+20
+00:01:36,000 --> 00:01:42,000
+So when you're comparing two variables of reference type, which equals to operator, you're comparing
+
+21
+00:01:42,000 --> 00:01:44,000
+just references but not values.
+
+22
+00:01:45,000 --> 00:01:52,000
+And the references are different to references are pointing out to different objects in the memory to
+
+23
+00:01:52,000 --> 00:01:53,000
+understand them better.
+
+24
+00:01:53,000 --> 00:01:55,000
+Let's take a look on the Java memory model.
+
+25
+00:01:55,000 --> 00:02:01,000
+I was thinking what a separate lesson for Java memory model is required and come up with a decision
+
+26
+00:02:01,000 --> 00:02:03,000
+to review it with specific examples like this one.
+
+27
+00:02:04,000 --> 00:02:09,000
+Because one of the goals of this course to not make things even more complex, but find the way how
+
+28
+00:02:09,000 --> 00:02:11,000
+to simplify your learning process.
+
+29
+00:02:12,000 --> 00:02:19,000
+So here on the screen, you see very high level visualization of Java memory model JVM divides memory
+
+30
+00:02:19,000 --> 00:02:20,000
+into stack and hit memory.
+
+31
+00:02:21,000 --> 00:02:22,000
+What is the difference?
+
+32
+00:02:23,000 --> 00:02:25,000
+Let me start from Stack Stack.
+
+33
+00:02:25,000 --> 00:02:31,000
+Memory contains primitive values that are specific to a method, so-called local variables, and the
+
+34
+00:02:31,000 --> 00:02:33,000
+references to the objects that are in ship.
+
+35
+00:02:34,000 --> 00:02:37,000
+Access to this memory is last in first out order.
+
+36
+00:02:38,000 --> 00:02:43,000
+Whenever a new method is called, for example, main method is called like showed here, a new block
+
+37
+00:02:43,000 --> 00:02:49,000
+on top of the stack is created, which contains value specific to that method, like primitive variables
+
+38
+00:02:49,000 --> 00:02:51,000
+and references to objects.
+
+39
+00:02:52,000 --> 00:02:58,000
+When the method finishes execution, its corresponding stack frame is flushed, the flow goes back to
+
+40
+00:02:58,000 --> 00:03:01,000
+the the method and space becomes available for the next method.
+
+41
+00:03:02,000 --> 00:03:05,000
+Stack memory size is very compared to heat memory.
+
+42
+00:03:06,000 --> 00:03:10,000
+So here you can see where storing primitive types and the references to the objects.
+
+43
+00:03:11,000 --> 00:03:18,000
+Java uses space for dynamic method allocation for Java objects and classes and the runtime.
+
+44
+00:03:18,000 --> 00:03:22,000
+Every time we are creating new objects, it's created in space.
+
+45
+00:03:23,000 --> 00:03:26,000
+But reference to this object is stored in STAC memory.
+
+46
+00:03:26,000 --> 00:03:31,000
+We can always manipulate the size of heap memory esper our requirement.
+
+47
+00:03:31,000 --> 00:03:34,000
+You can start GBM with parameters to indicate, he says.
+
+48
+00:03:34,000 --> 00:03:41,000
+If you wish how to do that, we can discuss it separately just to not lose focus from current subject.
+
+49
+00:03:42,000 --> 00:03:49,000
+So I believe now it's clear why we have pause here when comparing to integer objects, because these
+
+50
+00:03:49,000 --> 00:03:51,000
+variables are referencing to the different objects.
+
+51
+00:03:52,000 --> 00:03:58,000
+Let's take a look at the next example now I have to integer variables which are initialized with one
+
+52
+00:03:58,000 --> 00:04:00,000
+hundred twenty seven value.
+
+53
+00:04:01,000 --> 00:04:04,000
+Let's compare them again with equals to operator.
+
+54
+00:04:05,000 --> 00:04:08,000
+And the result is true based on what I've just described.
+
+55
+00:04:08,000 --> 00:04:13,000
+The only thing which might pop up in your mind is that I have three variable and I, for example, are
+
+56
+00:04:13,000 --> 00:04:15,000
+referencing to the same object in ship.
+
+57
+00:04:16,000 --> 00:04:23,000
+But how this can be it can be this way for integers because in hip integer pool exists.
+
+58
+00:04:23,000 --> 00:04:30,000
+What is integer pool from your language specification in chapter five, you can see that if value is
+
+59
+00:04:30,000 --> 00:04:35,000
+box in the range from minus one hundred twenty eight to one hundred twenty seven, then the result of
+
+60
+00:04:35,000 --> 00:04:37,000
+two Moxham conversions will be the same.
+
+61
+00:04:38,000 --> 00:04:42,000
+Optimized memory to integer objects won't be created.
+
+62
+00:04:42,000 --> 00:04:48,000
+Instead, our variable will refer to integer pool where values from minus one hundred twenty eight to
+
+63
+00:04:48,000 --> 00:04:50,000
+one hundred twenty seven are stored.
+
+64
+00:04:51,000 --> 00:04:54,000
+So two variables will refer to the same object in hip memory.
+
+65
+00:04:55,000 --> 00:04:57,000
+Let me visualize this for better understanding.
+
+66
+00:04:58,000 --> 00:05:04,000
+Two references in stack memory are referring to the same value and that's why when we are comparing
+
+67
+00:05:04,000 --> 00:05:06,000
+these trailers, we are equals to operator.
+
+68
+00:05:06,000 --> 00:05:08,000
+We receive true hope.
+
+69
+00:05:08,000 --> 00:05:09,000
+That explains a lot.
+
+70
+00:05:10,000 --> 00:05:11,000
+Let's continue this.
+
+71
+00:05:12,000 --> 00:05:13,000
+It is not over yet.
+
+72
+00:05:14,000 --> 00:05:21,000
+Now, let me get to new objects of integer type, because previously we just boxed in into integer.
+
+73
+00:05:21,000 --> 00:05:24,000
+But let me specify that I want to create new objects.
+
+74
+00:05:25,000 --> 00:05:29,000
+New keyword tells Java to allocate memory for the new object in hip.
+
+75
+00:05:30,000 --> 00:05:33,000
+Your first question might be why is this crossed out?
+
+76
+00:05:34,000 --> 00:05:38,000
+The answer is because this is duplicate constructor starting from Java version nine.
+
+77
+00:05:39,000 --> 00:05:41,000
+This means from Java version nine.
+
+78
+00:05:41,000 --> 00:05:45,000
+It is not recommended way to create integer objects with this constructor.
+
+79
+00:05:45,000 --> 00:05:52,000
+Usually in Javadoc, it's specified why some consider it to be deprecated and what to use instead.
+
+80
+00:05:52,000 --> 00:05:55,000
+So let's open the source code and what do we see here?
+
+81
+00:05:56,000 --> 00:05:59,000
+Because it's really appropriate to use these constructor.
+
+82
+00:06:00,000 --> 00:06:06,000
+The static factory is generally a better choice as it's likely to yield significantly better space and
+
+83
+00:06:06,000 --> 00:06:07,000
+time performance.
+
+84
+00:06:07,000 --> 00:06:10,000
+But let's not focus on the deprecated constructor.
+
+85
+00:06:10,000 --> 00:06:12,000
+We have another goal here.
+
+86
+00:06:12,000 --> 00:06:16,000
+The point is to explain where objects are stored on the simple examples.
+
+87
+00:06:17,000 --> 00:06:23,000
+So let's explicitly call this constructor to create new object and help, even despite the fact that
+
+88
+00:06:23,000 --> 00:06:30,000
+the value of integer is one hundred twenty seven, the result of comparing will be false because after
+
+89
+00:06:30,000 --> 00:06:36,000
+these lines are executed, we have two different objects in the heap and those two variables reference
+
+90
+00:06:36,000 --> 00:06:37,000
+to two different objects.
+
+91
+00:06:38,000 --> 00:06:44,000
+And here you can see the recommended way to initialize integer variables and as it was set in Javadoc,
+
+92
+00:06:45,000 --> 00:06:49,000
+this way of getting reference to the integer object can ensure better space usage.
+
+93
+00:06:50,000 --> 00:06:54,000
+That's why seven and eight are referencing to the same object.
+
+94
+00:06:54,000 --> 00:06:56,000
+And the result of this comparison is true.
+
+95
+00:06:57,000 --> 00:07:03,000
+But if we can't compare properly to different objects with equals to operator, how we can compare them
+
+96
+00:07:04,000 --> 00:07:10,000
+all reference types have equals method, which allows us to compare notes, references, but values
+
+97
+00:07:10,000 --> 00:07:13,000
+of objects integers also have equals method.
+
+98
+00:07:14,000 --> 00:07:15,000
+Let's take a look how it works.
+
+99
+00:07:16,000 --> 00:07:22,000
+You should write variable name calling equals and after that passes the value which you want to compare.
+
+100
+00:07:23,000 --> 00:07:24,000
+And in this case, we'll see.
+
+101
+00:07:24,000 --> 00:07:25,000
+True.
+
+102
+00:07:26,000 --> 00:07:28,000
+Now let's create two array objects.
+
+103
+00:07:28,000 --> 00:07:31,000
+As you remember, arrays are also reference types.
+
+104
+00:07:32,000 --> 00:07:36,000
+So when I compare them with equals to operator, the result is false.
+
+105
+00:07:37,000 --> 00:07:38,000
+That is obvious.
+
+106
+00:07:38,000 --> 00:07:39,000
+And you already understand why?
+
+107
+00:07:40,000 --> 00:07:44,000
+Because we are comparing references here, but not actually the value of objects.
+
+108
+00:07:45,000 --> 00:07:48,000
+Now you know that each reference type has equals method.
+
+109
+00:07:48,000 --> 00:07:49,000
+Let's try it.
+
+110
+00:07:50,000 --> 00:07:58,000
+But unfortunately the result is again false y because to make equals work properly, each Java type
+
+111
+00:07:58,000 --> 00:07:59,000
+needs to implement it.
+
+112
+00:07:59,000 --> 00:08:02,000
+That way it would compare state of the objects.
+
+113
+00:08:02,000 --> 00:08:07,000
+There is a default implementation of equals method which compares references.
+
+114
+00:08:07,000 --> 00:08:09,000
+Let's take a look at the source code.
+
+115
+00:08:10,000 --> 00:08:17,000
+Do you see this, it's the same as just comparing references and this is the full implementation of
+
+116
+00:08:17,000 --> 00:08:22,000
+equals method in object class one little object oriented programming.
+
+117
+00:08:22,000 --> 00:08:28,000
+I will explain to you more about object class for integer type equals method works differently because
+
+118
+00:08:28,000 --> 00:08:30,000
+it has different implementation.
+
+119
+00:08:31,000 --> 00:08:37,000
+We are cast in object to integer retrieval and in value and comparing it with another int value.
+
+120
+00:08:37,000 --> 00:08:44,000
+So we are comparing to here and this value variable is field of integer object.
+
+121
+00:08:47,000 --> 00:08:53,000
+So how you can compare our race, then you remember that we have a race class, just use our race equals
+
+122
+00:08:53,000 --> 00:08:57,000
+to compare our race and you will get through in this case.
+
+123
+00:08:58,000 --> 00:09:05,000
+And now at this very point out to the same object at this bowl after this line, two variables are pointing
+
+124
+00:09:05,000 --> 00:09:07,000
+out to the same object in hip.
+
+125
+00:09:08,000 --> 00:09:11,000
+That's why comparison here will return true as a result.
+
+126
+00:09:12,000 --> 00:09:14,000
+Let's recap what we have learned today.
+
+127
+00:09:15,000 --> 00:09:21,000
+They've learned how to compare reference types, how Jebba memory model looks like what is integer pool
+
+128
+00:09:21,000 --> 00:09:23,000
+and how we can use equals method.
+
diff --git a/05 - Operators and Operations with primitive types/005 Source-code-of-the-example-used-in-the-lesson.url b/05 - Operators and Operations with primitive types/005 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..d4ddd8a3c4e447df064924f1913056fb798a705c
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/005 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/PrimitiveAndRefferenceTypesComparison.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/006 Homework.url b/05 - Operators and Operations with primitive types/006 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..26db3e680dd43a1df6db0531bb594f475c1489a3
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/006 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1g5Nl9tqjgs8taUA7jJQeMaGfnWuSeLB_zSFrbozfT-c/edit?folder=1XkdXhkewYf3n2ak7mRbUNW3HDc_mCMvP
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/006 Read user input from console_en.srt b/05 - Operators and Operations with primitive types/006 Read user input from console_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..ce6cf7ec1a75f78eac9e2a89b7fc73af51531cc2
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/006 Read user input from console_en.srt
@@ -0,0 +1,112 @@
+1
+00:00:05,000 --> 00:00:11,000
+Today, we'll show you how your Java program can read information from council in Nachshon, tasks you
+
+2
+00:00:11,000 --> 00:00:13,000
+will need to create console applications.
+
+3
+00:00:13,000 --> 00:00:17,000
+And I want you to write programs that can interact with end users.
+
+4
+00:00:17,000 --> 00:00:22,000
+The easiest way to build this interaction is user input to the program through the console.
+
+5
+00:00:22,000 --> 00:00:28,000
+A bit later in the course, we'll have input output streams topic where we'll review in details different
+
+6
+00:00:28,000 --> 00:00:32,000
+ways how your program can process inputs and outputs streams so far.
+
+7
+00:00:33,000 --> 00:00:37,000
+I want to show you a common approach for educational purposes, how to read information from a console,
+
+8
+00:00:38,000 --> 00:00:43,000
+feel free to create a scanner object like this and pass system into it like this.
+
+9
+00:00:43,000 --> 00:00:50,000
+Do not forget to import first class from Java equal package and they should recommend you to import
+
+10
+00:00:50,000 --> 00:00:50,000
+this one.
+
+11
+00:00:51,000 --> 00:00:57,000
+What a system in Java application has inputs and outputs, dreams by default.
+
+12
+00:00:57,000 --> 00:01:01,000
+These streams are connected with console for the full output stream.
+
+13
+00:01:01,000 --> 00:01:08,000
+We are calling print method on system out which prints data to console system in allows us to read values
+
+14
+00:01:08,000 --> 00:01:09,000
+from console.
+
+15
+00:01:10,000 --> 00:01:11,000
+So how to read from console?
+
+16
+00:01:12,000 --> 00:01:14,000
+You can call methods on the scanner object.
+
+17
+00:01:14,000 --> 00:01:21,000
+For example, if you want to read string, you need to call next method if you want to read and go and
+
+18
+00:01:21,000 --> 00:01:22,000
+methods and so on.
+
+19
+00:01:23,000 --> 00:01:24,000
+Let's run this program.
+
+20
+00:01:25,000 --> 00:01:27,000
+Input streams, blogs, the threat execution.
+
+21
+00:01:28,000 --> 00:01:35,000
+So when you call method next, the program execution is paused because it's waiting for user input after
+
+22
+00:01:35,000 --> 00:01:37,000
+that program will proceed execution.
+
+23
+00:01:38,000 --> 00:01:40,000
+Let's put in a word here and press enter.
+
+24
+00:01:41,000 --> 00:01:48,000
+And again, program execution will be paused in this line after my input, I press, enter and program
+
+25
+00:01:48,000 --> 00:01:49,000
+successfully finished.
+
+26
+00:01:50,000 --> 00:01:53,000
+Now you know how to read information from counsel.
+
+27
+00:01:53,000 --> 00:01:56,000
+Feel free to investigate other methods in scanner type.
+
+28
+00:01:58,000 --> 00:02:02,000
+This information should help you during the implementation of your console applications.
+
diff --git a/05 - Operators and Operations with primitive types/006 Source-code-of-the-example-used-in-the-lesson.url b/05 - Operators and Operations with primitive types/006 Source-code-of-the-example-used-in-the-lesson.url
new file mode 100644
index 0000000000000000000000000000000000000000..e31a5019e84b493a26cea4a006e768b0f13a982e
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/006 Source-code-of-the-example-used-in-the-lesson.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/ReadFromConsole.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/007 Simple console integer calculator.html b/05 - Operators and Operations with primitive types/007 Simple console integer calculator.html
new file mode 100644
index 0000000000000000000000000000000000000000..1e9aa6001581cfe6033cf7cc4c81178c1183a9ad
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/007 Simple console integer calculator.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
Instructions
+
+
+
+
Test(s)
+
+
+
+
Solution(s)
+
+
+
+
+
+
diff --git a/05 - Operators and Operations with primitive types/008 Calculate Area of Triangle.html b/05 - Operators and Operations with primitive types/008 Calculate Area of Triangle.html
new file mode 100644
index 0000000000000000000000000000000000000000..2591ff94af34977e2d812c49b5d9da2890a1249b
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/008 Calculate Area of Triangle.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
Instructions
+
+
+
+
Test(s)
+
+
+
+
Solution(s)
+
+
+
+
+
+
diff --git a/05 - Operators and Operations with primitive types/009 Calculate Circle Circumference.html b/05 - Operators and Operations with primitive types/009 Calculate Circle Circumference.html
new file mode 100644
index 0000000000000000000000000000000000000000..f20510b389458fa9e2be6aed3165f052d59b19dd
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/009 Calculate Circle Circumference.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ Coding Assignment
+
+
+
+
+
+
+
+
Instructions
+
+
+
+
Test(s)
+
+
+
+
Solution(s)
+
+
+
+
+
+
diff --git a/05 - Operators and Operations with primitive types/010 Area-of-Triangle-Solution.url b/05 - Operators and Operations with primitive types/010 Area-of-Triangle-Solution.url
new file mode 100644
index 0000000000000000000000000000000000000000..495e83165895c0720734c576906e5a147108b36e
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/010 Area-of-Triangle-Solution.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/hw/AreaOfTriangle.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/010 Circle-Circumference-Solution.url b/05 - Operators and Operations with primitive types/010 Circle-Circumference-Solution.url
new file mode 100644
index 0000000000000000000000000000000000000000..11441e4c6e87ecbd0c13aef36cc38f47e43c623c
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/010 Circle-Circumference-Solution.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/hw/CircleCircumference.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/010 Homework review Operators and Operations_en.srt b/05 - Operators and Operations with primitive types/010 Homework review Operators and Operations_en.srt
new file mode 100644
index 0000000000000000000000000000000000000000..e5e1868fbc55811a35ca8bde5ed2756d8320d769
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/010 Homework review Operators and Operations_en.srt
@@ -0,0 +1,504 @@
+1
+00:00:05,000 --> 00:00:10,000
+In this video, we'll take a look at your homework and we'll review a solution of your coding exercises.
+
+2
+00:00:11,000 --> 00:00:13,000
+Let's take a look at your homework first.
+
+3
+00:00:13,000 --> 00:00:18,000
+As usual, I recommend you read books to have different point of view on the same topics.
+
+4
+00:00:18,000 --> 00:00:23,000
+Also, before homework implementation, please review the source code of Java Land Math class.
+
+5
+00:00:24,000 --> 00:00:30,000
+And here was our first coding exercise to write a program which will add to integers which were passed
+
+6
+00:00:30,000 --> 00:00:31,000
+as program arguments.
+
+7
+00:00:32,000 --> 00:00:39,000
+The second coding exercise is about finding an area of triangle, and the third coding exercise is about
+
+8
+00:00:39,000 --> 00:00:40,000
+calculating circle's circumference.
+
+9
+00:00:41,000 --> 00:00:44,000
+Let's review the solution for each of these tasks.
+
+10
+00:00:45,000 --> 00:00:48,000
+Task number one, you can run your program with input arguments.
+
+11
+00:00:49,000 --> 00:00:50,000
+Here's the solution.
+
+12
+00:00:50,000 --> 00:00:55,000
+The ARC's variable is array of strings, array of program arguments.
+
+13
+00:00:55,000 --> 00:00:58,000
+Why do we need to specify arguments for program?
+
+14
+00:00:58,000 --> 00:01:04,000
+For example, you implemented Messenger app and your application could work in several mode and inclined
+
+15
+00:01:04,000 --> 00:01:06,000
+mode to switch modes.
+
+16
+00:01:06,000 --> 00:01:08,000
+You need to start your program with different arguments.
+
+17
+00:01:09,000 --> 00:01:11,000
+This is just one of the examples from the top of my head.
+
+18
+00:01:12,000 --> 00:01:18,000
+Another example, Java Virtual Machine is also program, which can be started with different arguments.
+
+19
+00:01:18,000 --> 00:01:22,000
+For example, you need to set up initial heap size for your VM.
+
+20
+00:01:22,000 --> 00:01:29,000
+You can use special arguments to do this, to remember how we run our Hello World application in console,
+
+21
+00:01:29,000 --> 00:01:32,000
+to make you understand how you can run the application with arguments.
+
+22
+00:01:32,000 --> 00:01:38,000
+Let me run this solution from console and you understand where potentially we can pass arguments.
+
+23
+00:01:39,000 --> 00:01:42,000
+You don't need to open console separately if you have a clip's open.
+
+24
+00:01:43,000 --> 00:01:47,000
+First of all, we need to find file with class extension for this solution.
+
+25
+00:01:48,000 --> 00:01:54,000
+Remember that when we created Project by default, Benfold there is used to store class files.
+
+26
+00:01:55,000 --> 00:01:57,000
+Let me remind you where this was specified.
+
+27
+00:01:58,000 --> 00:02:02,000
+New project, Java project, random name here.
+
+28
+00:02:04,000 --> 00:02:09,000
+Click next, and here's is where default output folder is specified.
+
+29
+00:02:09,000 --> 00:02:14,000
+You can change it if you wish, but there is not so much sense in doing this.
+
+30
+00:02:15,000 --> 00:02:23,000
+OK, so here's our project, but where is bin folder, you can't see it here because we're in the package
+
+31
+00:02:23,000 --> 00:02:28,000
+Explorer package Explorer shows project in a structured and more logical way.
+
+32
+00:02:28,000 --> 00:02:32,000
+For example, we can see packages here instead of multiple nested folders.
+
+33
+00:02:33,000 --> 00:02:36,000
+We can execute Java files, is Java programs here and so on.
+
+34
+00:02:37,000 --> 00:02:43,000
+Take into account as a software engineer, you're interested in the source code and not interested in
+
+35
+00:02:43,000 --> 00:02:43,000
+Golos files.
+
+36
+00:02:44,000 --> 00:02:46,000
+You even can see bin folder here.
+
+37
+00:02:47,000 --> 00:02:48,000
+So what to do now?
+
+38
+00:02:48,000 --> 00:02:53,000
+Let's open Navigator View the open navigator press window.
+
+39
+00:02:53,000 --> 00:02:55,000
+Show you navigator here.
+
+40
+00:02:57,000 --> 00:03:04,000
+And here, this interview shows the restructure of your project when you need it, when you want to
+
+41
+00:03:04,000 --> 00:03:08,000
+see this files, the exact way they're located in your file system.
+
+42
+00:03:09,000 --> 00:03:12,000
+And here we can find our big folder and cross files in it.
+
+43
+00:03:13,000 --> 00:03:20,000
+And now when we found Benfold, let's open the console here to do this, select the folder and find
+
+44
+00:03:20,000 --> 00:03:23,000
+this icon open a terminal.
+
+45
+00:03:24,000 --> 00:03:26,000
+You don't have Bosch installed on your computer.
+
+46
+00:03:26,000 --> 00:03:31,000
+So far, so most likely the only option you would have here is a local terminal.
+
+47
+00:03:32,000 --> 00:03:34,000
+Let's open it and hear this.
+
+48
+00:03:35,000 --> 00:03:37,000
+They see this pass.
+
+49
+00:03:37,000 --> 00:03:39,000
+We are in Benfold.
+
+50
+00:03:40,000 --> 00:03:46,000
+Now we need to run a program with arguments to receive this package declaration here.
+
+51
+00:03:47,000 --> 00:03:51,000
+That's why to run this program, we need to write full class name, including package.
+
+52
+00:03:52,000 --> 00:03:53,000
+Let's do it.
+
+53
+00:03:54,000 --> 00:03:55,000
+Java Chrome.
+
+54
+00:03:56,000 --> 00:03:59,000
+I, Tibbles, learn it.
+
+55
+00:03:59,000 --> 00:04:08,000
+Not Java core, not operations, not homework, not at integers.
+
+56
+00:04:09,000 --> 00:04:10,000
+And let's press enter now.
+
+57
+00:04:13,000 --> 00:04:19,000
+This is an area we have a right index out of Mount Exception, that is because we are trying to get
+
+58
+00:04:19,000 --> 00:04:25,000
+alignment with zero index from zero eight when they say it doesn't have any items in it.
+
+59
+00:04:25,000 --> 00:04:32,000
+So that's why JVM tells us I can't get item with zero index because there is no items at all in this
+
+60
+00:04:32,000 --> 00:04:33,000
+area.
+
+61
+00:04:33,000 --> 00:04:35,000
+So let's now past our program.
+
+62
+00:04:35,000 --> 00:04:36,000
+Next arguments.
+
+63
+00:04:36,000 --> 00:04:44,000
+I press up Arrow Key and pass into arguments one, space three and Presenta.
+
+64
+00:04:45,000 --> 00:04:46,000
+And you can see the result here now.
+
+65
+00:04:47,000 --> 00:04:51,000
+So one in three in this case are program arguments, everything.
+
+66
+00:04:52,000 --> 00:04:59,000
+What will be specified after your program name separated by spaces is program arguments and everything.
+
+67
+00:04:59,000 --> 00:05:02,000
+What you will put after Jawa is Trivium arguments.
+
+68
+00:05:03,000 --> 00:05:06,000
+For example, let me press up Arrow Press Home Button team.
+
+69
+00:05:06,000 --> 00:05:08,000
+Of course, at the beginning.
+
+70
+00:05:08,000 --> 00:05:10,000
+This time I will give them arguments.
+
+71
+00:05:11,000 --> 00:05:22,000
+Let me at argument to set maximum Capsis one gigabyte Desh X X one G and press enter to run the program.
+
+72
+00:05:22,000 --> 00:05:28,000
+So this is called GBM arguments and this is called program arguments.
+
+73
+00:05:29,000 --> 00:05:29,000
+I believe.
+
+74
+00:05:29,000 --> 00:05:36,000
+Now it is clear what this program Endgame Arguments How to Run Your Program with arguments from Eclipse
+
+75
+00:05:36,000 --> 00:05:37,000
+Lumos right.
+
+76
+00:05:37,000 --> 00:05:42,000
+Click on the code editor run s around configurations.
+
+77
+00:05:43,000 --> 00:05:44,000
+Make sure you are selected.
+
+78
+00:05:44,000 --> 00:05:45,000
+Correct program.
+
+79
+00:05:45,000 --> 00:05:53,000
+Here on the left, my program's name at Integers and here in arguments that you can specify program
+
+80
+00:05:53,000 --> 00:05:54,000
+and Trivium arguments.
+
+81
+00:05:54,000 --> 00:05:59,000
+I already have one and minus two here and you can press around button.
+
+82
+00:06:01,000 --> 00:06:07,000
+And here is the result of our program in the program, we pass an integer from the first argument,
+
+83
+00:06:08,000 --> 00:06:13,000
+it will have zero index in strings are right and you pass the second argument.
+
+84
+00:06:14,000 --> 00:06:19,000
+After two integers, you can add them and print results to console.
+
+85
+00:06:20,000 --> 00:06:26,000
+Definitely, this is not a perfect solution why, for example, we don't expect a situation when our
+
+86
+00:06:26,000 --> 00:06:32,000
+program will be started without arguments and you already saw exception which might happen or when arguments
+
+87
+00:06:32,000 --> 00:06:38,000
+will be floating point numbers or when arguments won't be integers, but will be special characters,
+
+88
+00:06:38,000 --> 00:06:39,000
+for example.
+
+89
+00:06:40,000 --> 00:06:45,000
+But to implement all these scenarios, we need to learn other topics such as control statements and
+
+90
+00:06:45,000 --> 00:06:46,000
+exception handling.
+
+91
+00:06:46,000 --> 00:06:49,000
+So this solution should be more than enough right now.
+
+92
+00:06:50,000 --> 00:06:53,000
+We'll make our tasks more complicated as we go.
+
+93
+00:06:54,000 --> 00:06:56,000
+Now let's take a look at solutions for the second task.
+
+94
+00:06:57,000 --> 00:07:03,000
+Let me let me get back to the package, explore and open area of Trengove source quote, It is pretty
+
+95
+00:07:03,000 --> 00:07:04,000
+straightforward.
+
+96
+00:07:04,000 --> 00:07:07,000
+You already saw in previous lessons how to read information from console.
+
+97
+00:07:08,000 --> 00:07:14,000
+So you need to ask users to enter values for triangle sites first and after that, to use Kieran's formula
+
+98
+00:07:14,000 --> 00:07:16,000
+to calculate area of triangle.
+
+99
+00:07:16,000 --> 00:07:21,000
+Here, I'm using math class to implement Hera's formula in Java source code.
+
+100
+00:07:21,000 --> 00:07:25,000
+Let's run this application and we'll take a look how it works.
+
+101
+00:07:25,000 --> 00:07:32,000
+I am pressing control plus F eleven and I'm asked to provide links of a site of a triangle.
+
+102
+00:07:32,000 --> 00:07:33,000
+Leatherby be three.
+
+103
+00:07:34,000 --> 00:07:35,000
+I press enter.
+
+104
+00:07:36,000 --> 00:07:42,000
+The value is assigned to a site variable and I'm asked to enter B side of a triangle.
+
+105
+00:07:42,000 --> 00:07:46,000
+I'm entering three one more time pressing enter.
+
+106
+00:07:46,000 --> 00:07:53,000
+This value is assigned to B site variable and I'm asked to enter C site variable whether it be three
+
+107
+00:07:53,000 --> 00:08:01,000
+one more time and I press enter C site value was assigned to this variable and after that calculations
+
+108
+00:08:01,000 --> 00:08:05,000
+have been performed and we print the result to console here.
+
+109
+00:08:06,000 --> 00:08:12,000
+In case a triangle with such sites doesn't exist, we need to print not a number according to our requirements.
+
+110
+00:08:12,000 --> 00:08:14,000
+Let's check this scenario.
+
+111
+00:08:15,000 --> 00:08:23,000
+I'm running the program from the beginning that A, side B five, B, side one and C side one.
+
+112
+00:08:24,000 --> 00:08:27,000
+That is obvious that such triangle doesn't exist.
+
+113
+00:08:27,000 --> 00:08:29,000
+And I see not a no result.
+
+114
+00:08:30,000 --> 00:08:32,000
+Let's have a solution of the task.
+
+115
+00:08:33,000 --> 00:08:37,000
+You need to ask user to input circle radius to calculate circumference.
+
+116
+00:08:37,000 --> 00:08:41,000
+After that, you need to read input value from a console that's readable.
+
+117
+00:08:42,000 --> 00:08:47,000
+And according to formula, which you can find in the Internet, lets calculate Circle's circumference
+
+118
+00:08:48,000 --> 00:08:53,000
+and print result, the console that means and without a bit, let's run this program.
+
+119
+00:08:55,000 --> 00:08:58,000
+I am asked to enter a circle radius, let it be five.
+
+120
+00:08:59,000 --> 00:09:01,000
+And here is the circle circumference.
+
+121
+00:09:01,000 --> 00:09:03,000
+Geometry is not a part of this course.
+
+122
+00:09:03,000 --> 00:09:09,000
+So what I expect from you after this task completion, that you know how to read values from console
+
+123
+00:09:09,000 --> 00:09:12,000
+and you are aware about constants that exist in math class.
+
+124
+00:09:13,000 --> 00:09:18,000
+That's all I will share with you links to the source code and attachments to this lesson.
+
+125
+00:09:18,000 --> 00:09:23,000
+Feel free to ask questions and comments to this lesson in case if you have any, and I will be glad
+
+126
+00:09:23,000 --> 00:09:24,000
+to answer them.
+
diff --git a/05 - Operators and Operations with primitive types/010 Homework-Demo-Class.url b/05 - Operators and Operations with primitive types/010 Homework-Demo-Class.url
new file mode 100644
index 0000000000000000000000000000000000000000..8891ea2fb52dacf0949fcc5d0b13a664f1037dcb
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/010 Homework-Demo-Class.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/hw/Demo.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/010 Homework.url b/05 - Operators and Operations with primitive types/010 Homework.url
new file mode 100644
index 0000000000000000000000000000000000000000..26db3e680dd43a1df6db0531bb594f475c1489a3
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/010 Homework.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.google.com/document/d/1g5Nl9tqjgs8taUA7jJQeMaGfnWuSeLB_zSFrbozfT-c/edit?folder=1XkdXhkewYf3n2ak7mRbUNW3HDc_mCMvP
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/010 Integers-Calculator-Solution.url b/05 - Operators and Operations with primitive types/010 Integers-Calculator-Solution.url
new file mode 100644
index 0000000000000000000000000000000000000000..003b823863ab7858625a0418eaaa9ffcaef456ca
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/010 Integers-Calculator-Solution.url
@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://github.com/AndriiPiatakha/learnit_java_core/blob/master/src/com/itbulls/learnit/javacore/operations/hw/AddIntegers.java
\ No newline at end of file
diff --git a/05 - Operators and Operations with primitive types/011 Quiz Operators and Operations with primitive types - Check yourself.html b/05 - Operators and Operations with primitive types/011 Quiz Operators and Operations with primitive types - Check yourself.html
new file mode 100644
index 0000000000000000000000000000000000000000..3a84334dc41a0d6ad9aa277944f76355207845f7
--- /dev/null
+++ b/05 - Operators and Operations with primitive types/011 Quiz Operators and Operations with primitive types - Check yourself.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Quiz Operators and Operations with primitive types - Check yourself
+
+
+
+
+
+
+
Quiz Operators and Operations with primitive types - Check yourself
The quiz doesn’t require you to log in or submit any personal information. Your data privacy is my priority.
The Quiz covers content from the following lessons:
Operators in Java
Operations with integers and floating-point numbers, BigDecimal type
Math class, NaN, Infinity
Type of the expression in Java
Compare primitive and reference types & Java Memory Model
Read user input from console
Quiz Instructions:
This quiz is designed to help you check your understanding of the content from the previous lessons. All questions are based only on material covered in the lessons you've already watched, so there’s no need to worry about unfamiliar topics.
Each question has one correct answer. Select the best answer and click "Submit" when you're ready.
After submitting, you'll see your score. For each question, you earn 1 point.
Click "View Results" to see the explanations for each correct answer. Reviewing these explanations can help reinforce your understanding.
If you score below 70%, I recommend revisiting the previous lessons. However, if the explanations make sense and you’re confident in your understanding, feel free to move on.
If any explanations are unclear, please don’t hesitate to post questions in the Q&A section—I’m here to help!