1

00:00:01,170  -->  00:00:03,440
So that's kind of the first chapter.

2

00:00:03,880  -->  00:00:08,850
The covered several important concepts to get a good high level understanding of Java.

3

00:00:09,450  -->  00:00:15,960
So let's start with some of the key points that we covered in this chapter we learn that Java was designed

4

00:00:16,200  -->  00:00:23,070
to work in a network environment consisting of heterogeneous consumer devices running in such an environment

5

00:00:23,190  -->  00:00:25,910
in some unique challenges.

6

00:00:26,010  -->  00:00:29,570
One of the main challenges was platform independence.

7

00:00:29,700  -->  00:00:35,850
This was important as software components would be passed around between consumer devices and those

8

00:00:35,850  -->  00:00:39,510
software components should run on those devices without any issues.

9

00:00:39,840  -->  00:00:47,100
Regardless of operating system and hardware architecture of those devices and to a new platform independent

10

00:00:47,280  -->  00:00:53,950
source code is compiled into an intermediate platform independent Java bytecode which is then interpreted

11

00:00:53,950  -->  00:00:56,900
by a platform dependent JVM.

12

00:00:57,030  -->  00:01:03,570
Just keep in mind the JVM is an abstract computing machine and Java bytecode serves as its instruction

13

00:01:03,570  -->  00:01:07,300
set apart from platform independence.

14

00:01:07,470  -->  00:01:10,900
Java was also built on few other principles.

15

00:01:11,130  -->  00:01:14,010
One is Java platform has to be robust.

16

00:01:14,040  -->  00:01:19,950
That's because Java bytecode can be downloaded from across the network and those boycotts can be generated

17

00:01:19,950  -->  00:01:22,190
by a malicious compiler.

18

00:01:22,230  -->  00:01:28,830
Hence to ensure robustness byte are always very fine before execution.

19

00:01:28,830  -->  00:01:35,400
Joe has to be very fast Sopel ensure high performance bytecode were designed to be interpreted quickly

20

00:01:35,420  -->  00:01:36,310
.

21

00:01:36,320  -->  00:01:42,820
Technically GRB compilation make Java almost indistinguishable from C and C++.

22

00:01:43,620  -->  00:01:50,580
Most programmers during early nineties were using C and C++ so Java's designers wanted to keep the syntax

23

00:01:50,580  -->  00:01:55,280
familiar solderless indexes kept similar to see and C++.

24

00:01:55,950  -->  00:02:00,590
Moreover simplicity was one of the most important goals of our designers.

25

00:02:01,080  -->  00:02:08,460
They did not want programmers to deal with memory related errors that are common in C and C++ and then

26

00:02:08,460  -->  00:02:13,370
showed this by relieving programmers from directly manipulating memory.

27

00:02:13,390  -->  00:02:17,730
JVM does the memory management by using garbage collection technique.

28

00:02:17,730  -->  00:02:26,100
Of course this also makes Delap programs more robust always is a pure object oriented language and supports

29

00:02:26,160  -->  00:02:28,120
multi-threading.

30

00:02:28,120  -->  00:02:31,470
These are core principles on which Java is built on.

31

00:02:31,530  -->  00:02:36,320
So try to keep these principles in mind and that's the end of the first chapter.

32

00:02:36,330  -->  00:02:39,950
And thanks for listening and I will see you in the next chapter.
