SlideShare a Scribd company logo
1 of 31
Жава
Технологи

Бэлтгэсэн: Багш Б.Ганзориг
Хуудас: 31
Ulaanbaatar University
Жава Програмчлалын Хэлний
Vндсэн Зорилт
 Ерөнхий











зориулалтын програм хангамж

Console-based хэрэглээний програм
Ширээний компьютерийн
Сервэр програм хангамж
Вэб програм (Үйлчлэгч талын- Үйлчлүүлэгч
талын)
Тархалттай / 2-tier, 3-tier, N-tier програмууд
Сүлжээний програм
Гэр ахуйн цахилгаан төхөөрөмж / Суулгагдсан
системүүд
Зөөврийн төхөөрөмжийн програм
Чипийн, Картын програм
Үйлдлийн систем (JavaOS)
Жава Програмчлалын Хэлний
Vндсэн Зорилт









Бүрэн ОХ
Хэрэглээний энгийн байдалтай
Тархалттай сүлжээний технологитой
Нууцлалт, хамгаалалт
Зөөврийн, архитектурын хамааралгүй
(ямар ч төхөөрөмжийн хувьд)
Өндөр боломжтой
Олон бодлогын горимыг дэмждэг
Уян хатан
Java хэлний чадвар








C++ хэлний дутагдалтай талуудыг засан
уламжилсан
ОХ-ыг улам сайжруулан объект хандлагат
биш боломжуудыг устгасан (жишээ нь, C++
хэлний макро ба глобаль хувьсагч).
Алдаа гарах магадлалыг өндөрсгөдөг санах
ойн заагчийн үйлдлүүдийг устгаж заалт болон
заагч гэх мэтийн зарим зөрчлийг арилгасан.
Динамик санах ойн зохион байгуулалттай.
Өгөгдлийн төрлийн хувьд төрлийн аюулгүй.
Java хэлний чадвар







Нийтлэг тохиолддог буруу төрлийн
хувиргалт, массивын индекс, санах ойн
заагчийн алдааны хувьд ажиллах үеийн
шалгалттай.
Олон бодлогын ба сүлжээний програм
зохиохыг илүү дэмждэг.
Онцгой тохиолдол боловсруулалтын сайн
ажиллагаатай.
Хөгжүүлэлтийн үр ашигтай байдал.
“Элстэй савны” нууцлал.
Java хэлний чадвар
Java хэлний сул тал


Java кодыг ажиллуулдаг нэмэлт програм
хангамж шаардлагатай. Үүнийг
Java Virtual Machine (JVM) гэдэг.
гэдэг
 Java код нь төхөөрөмжийн ойлгодог машины
код руу шууд хөрвүүлэгддэггүй.
 Харин өөр нэгэн доод түвшний хэл болох
байт-код руу хөрвүүлэгддэг.
 Байт-код (bytecode) нь JVM-д ойлгогддог ба
JVM түүнийг тухайн машины хэл рүү
хөрвүүлдэг.
 Үүнээс болоод Java програм эхлэхдээ удаан
(JVM-г эхлүүлэх хугацаа ордог) байдаг ба
ажиллахын тулд илүү нөөц шаарддаг.
Java хэлний сул тал


Хэлний онцлог боломжууд




Санах ойтой шууд ажилладаггүй

Хурд





Өмнөх хувилбарын Java програм нь үнэхээр бусад хэл
дээр бичигдсэн програмаас (C++) харьцангуй удаан
байсан.
JVM-д ажиллах хурдыг өндөрсгөх тооцоологч нэмсэн.
Шинэ хувилбарын Java хурдыг сайжруулах хэд хэдэн
боломжийг агуулсан.
Яг тухайн үед нь хөрвүүлэгч(Just-in-time compiler),
– HotSpot кодын ажиллагааны сайжруулалт.
– Динамик хог цуглуулагч.
– гэх мэт
–
Java програм хэрхэн
ажилладаг тухай




Эх код ажиллахын өмнө объект код руу хөрвөсөн байх
ёстой тухай бид мэдсэн.
 Хөрвүүлэгчийн үүсгэсэн объект код нь тодорхой
компьютерт байдаг (төхөөрөмж болон үйлдлийн
систем).
Java нь ялгаатай аргачлал ашигладаг ба энэ нь зөөврийн
хэмээх сайн талыг бий болгодог.
 Java эх код хөрвүүлэгдэж үр дүнд bytecode хэмээх
машины стандарт хэл дээрх програм бий болдог ба энэ
нь бүх компьютерт ижилхэн байдаг.
 Тиймээс хөрвүүлэгдсэн Java програм дахин хөрвүүлэх
шаардлагагүйгээр бүх компьютерт ажилладаг.
 Энэ авсаар байдал нь олон төрлийн компьютерүүд
холбогдсон World Wide Web-д чухал ач холбогдолтой.
Java програм хэрхэн
ажилладаг тухай
 Гэвч

ямар ч компьютер байт кодыг
машины хэл шиг шууд ашигладаггүй.
 “Машин” үүрэг гүйцэтгэх тусгай програм
хангамж ажиллан байт код програмыг
ажиллуулдаг.




Java Virtual Machine (JVM) нь хөрвүүлэгдсэн
Java програмыг интерпретатор маягаар
ажиллуулдаг.
JVM нь байт код програмын заавруудыг нэг
нэгээр унших ба нэг заавраа машины хэлний
заавар руу хөрвүүлэнгүүт тухайн компьютер
түүнийг ажиллуулдаг. Энэ ажиллагааг
Interpretation буюу интерпретаци гэдэг.
гэдэг
Java програм хэрхэн
ажилладаг тухай
Програмыг ажиллуулах болон
интерпретаци хийхийн ялгаа
Интерпретаци нь програм ажиллах явцад нэг
нэг заавруудад хийгддэг.
 Энэ нь хөрвүүлэхээс ялгаатай. Хөрвүүлэх үед
програм ажиллахаас өмнө түүний бүх зааврыг
хөрвүүлдэг.
 Компьютер машины хэл рүү хөрвөсөн програмыг
шууд ажиллуулж чаддаг
 Компьютер bytecode-г шууд ажиллуулж чадахгүй.
Хөрвөсөн Java байт кодыг ажиллуулахын тулд
JVM байт кодын эхний зааврын машины хэлний
зааврыг олж үйлдлийг гүйцэтгэх командыг
машинд өгдөг. Үүний дараа дараагийн байт код
зааврыг машины заавар руу гэх мэтчилэн бүгдийг
нэг нэгээр хөрвүүлэн ажиллуулна.

Програмыг ажиллуулах болон
интерпретаци хийхийн ялгаа






JVM нь яг хөрвүүлэгч шиг машины кодыг
үүсгэдэггүй боловч байт кодын зааврын яг ижил
үйлдэл хийх машины заавруудыг нь компьютерт
өгдөг.
Java байт код програм нь арай удаан байдаг нь
компьютер түүнийг машины хэл дээрх програм шиг
шууд ажиллуулахгүйгээс болдог. Авсаар байх нь
удаан ажиллагаа бүхий сул талтай байх нээ.
Сүүлийн үеийн Java нь Just-in-Time (JIT)
хөрвүүлэлттэй болсон. Энэ нь байт код програм
болсон
тухайн компьютер дээр эхний удаа ажилангуут
машины кодыг нь үүсгээд дараагийн
ажиллуулалтан дээр үүсгэсэн машины кодоо
ажиллуулдаг аргачлал юм
Програмыг ажиллуулах болон
интерпретаци хийхийн ялгаа
 Шууд

ажиллуулах Компьютер
тодорхойлогдсон үйлдлүүдийг биелүүлэх

 Интерпретаци

хийх
Програм ажиллах явцад машины биш
хэлнээс (bytecode шиг) ажиллах үйлдэл
рүү хөрвүүлэх
Хөрвүүлэлт нь интепретаци болон
биелүүлэлттэй ямар хамаатай вэ?
 Хөрвүүлэлт

биелүүлэлт нь ялгаатай 2

процесс.
 Хөрвүүлэлтийн үед компьютер хөрвүүлэгч
програмыг ажиллуулан эх кодыг машины код
руу хөрвүүлдэг.
 Энэ машины код дахин дахин ажиллах
болно.
 Биелүүлэлтийн үед машины код(объект
код) компьютерийн санах ой руу ачаалагдан
шууд биелэгддэг.
Хөрвүүлэлт нь интепретаци болон
биелүүлэлттэй ямар хамаатай вэ?





JVM нь C++ бичигдэн машины хэл рүү хөрвүүлэгдсэн програм
юм.
 Энэ машины код санах ой руу ачаалагдаж JVM ажиллана.
 Үүний оролт нь хөрвүүлэгдсэн Java програм(bytecode).
 Үүний үр дүн нь орсон програмын үйлдлүүдийн харгалзаадэс дараалсан машины үйлдлүүдийн ажилласан үр дүн
юм.
JVM болон Java програм хөрвүүлэгдсэний дараа тэднийг
дахин хөрвүүлэхгүйгээр ашигласаар байх болно.
Нэг компьютерийг өөр компьютер шиг болгон хиймэл
компьютерийн үүрэг гүйцэтгэдэг програмыг virtual machine
буюу бараг л машин гэдэг.
гэдэг
 Хэрэв компьютер “Java програмыг ажиллуулж байвал” энэ
нь үнэндээ “Компьютер Java програмыг ажиллуулж байгаа
JVM –г ажиллуулж байна” гэсэн үг юм.
Хөрвүүлэлт нь интепретаци болон
биелүүлэлттэй ямар хамаатай вэ?
JVM-ийн хөрвүүлэлт болон ажиллагаа ба
Java програмын хөрвүүлэлт болон
ажиллагаа
Энгийн Java програмын
ажиллагааны зарчим
Жава Програмчлалын Хэлний Vндсэн
Зорилт
 Дараахь

онцлогууд дээр дурьдсан
бүх зүйлсийг хангах юм:




Жава Виртуаль Машин (JVM)
Garbage Collection
Кодын нууцлал
Жава Виртуаль Машин (JVM)
Хатуумжийн платформ тодорхойлолтуудыг
хангана
 Платформоос үл хамаарах хөрвөсөн байт
кодуудыг уншина
 Уямж эсхүл хатуумж байдлаар хэрэглэгдэнэ
 Жава хөгжүүлэлтийн багаж эсхүл веб
браузер байдлаар хэрэглэгдэнэ

Жава Виртуаль Машин (JVM)
JVM нь дараахь тодорхойлолтуудыг барина:
 Instrcution set (CPU)
 Register set
 Class file format
 Stack
 Garbage collected-heap
 Memory area
Жава Виртуаль Машин (JVM)
 Байткод

нь кодоос бий болсон
хамгийн эвтэйхэн хэлбэр
 Кодыг хөрвүүлэх явцад ихэнхи
төрөл шалгалтууд явагддаг
 SUN-аас хүлээн зөвшөөрөгдсөн
JVM-ууд бүх класс файлыг
ажиллах чадвартай
Garbage Collection





Байршсан санамж хэрэгцээгүй болсон бол
цэвэрлэгдэж байх хэрэгтэй
Зарим хэлнүүдэд цэвэрлэх үйлдэл нь програмчын
хийх ёстой үйлдэл байдаг
Жава хэлэнд санах ойг цэвэрлэх системийн
трийдүүд(зүтгүүр) байдаг
Garbage Collection:
- Хэрэгцээгүй санамж байгаа эсэхийг шалгаж, тийм
бол цэвэрлэдэг
-Автоматаар
-JVM-ийн онцлогоос шалтгаалан олон янзын
хэлбэрээр хэрэгжих бололцоотой.
Кодын нууцлал
Жава програмын орчин дараахь байдлаар
хэрэгжинэ:
Жава Runtime Орчин

 Гурван
–
–
–

үндсэн үйлдлийг гүйцэтгэнэ:

Кодыг ачаална
Кодыг нягтлана
Кодыг гүйцэтгэнэ
Класс Ачаалагч
 Программыг

ажиллуулахад
хэрэгцээтэй классуудыг ачаална
 Локал файл системийн классуудыг
тусгай нэршлийн дагуу ачаална
 Хуурмаг нөхцөл байдлаас сэргийлнэ
БайтКод Хянагч
 Дараахь







нөхцлүүдийг нягтлана:

JVM-ы шаардлагад нийцэж байгаа эсэх
Системийн нэгдэлд харшлахгүй байгааг
Код нь стектэй холбоотой ямар нэгэн хэтрэлт,
дуталт үүсгээгүйг
Ажиллах кодны параметр төрлүүд зөв эсэх
Дүрмийн бус өгөгдөл хувиргалт хийгдээгүйг
Соорс Файлын Хэлбэр
“Дээд түвшний” гурван элементийг
агуулна:






Багцийн тодорхойлолт (заавал биш)
Тодорхой тооны импорт мэдэгдлүүд
Класс болон интерфэйсийн зарлалтууд
Класс болон Багцууд - Танилцуулга
 Классууд


болон багцууд:

Жава класс сангийн чухал багцууд:
java.lang
java.awt
java.applet
java.net
java.io
java.util
Анхаарал тавьсанд баярлалаа.

Асуулт байвал асуултаа
одоо асууна уу

More Related Content

What's hot (13)

PL Lecture2
PL Lecture2PL Lecture2
PL Lecture2
 
CS203 Лекц01 Prefeace
CS203 Лекц01  PrefeaceCS203 Лекц01  Prefeace
CS203 Лекц01 Prefeace
 
Sedev 1
Sedev 1Sedev 1
Sedev 1
 
2014 is101 lec7
2014 is101 lec72014 is101 lec7
2014 is101 lec7
 
Лекц 1
Лекц 1Лекц 1
Лекц 1
 
Lecture vcp413
Lecture vcp413Lecture vcp413
Lecture vcp413
 
Lec1
Lec1Lec1
Lec1
 
Java лекц1
Java лекц1Java лекц1
Java лекц1
 
Lecture1
Lecture1Lecture1
Lecture1
 
Dotnet lekts
Dotnet lektsDotnet lekts
Dotnet lekts
 
Pl lecture5
Pl lecture5Pl lecture5
Pl lecture5
 
Ood lesson1
Ood lesson1Ood lesson1
Ood lesson1
 
Sw203 Lecture3 Advanced Java Program
Sw203 Lecture3 Advanced Java ProgramSw203 Lecture3 Advanced Java Program
Sw203 Lecture3 Advanced Java Program
 

Viewers also liked

Lecture file and folder working
Lecture file and folder workingLecture file and folder working
Lecture file and folder workingganzorigb
 
Lecture data base programming part1
Lecture data base programming part1Lecture data base programming part1
Lecture data base programming part1ganzorigb
 
программын хэл гэж юу вэ
программын хэл гэж юу вэпрограммын хэл гэж юу вэ
программын хэл гэж юу вэcer147740
 
файл, файлын оролт гаралт
файл, файлын оролт гаралтфайл, файлын оролт гаралт
файл, файлын оролт гаралтKhishighuu Myanganbuu
 

Viewers also liked (6)

Lec03
Lec03Lec03
Lec03
 
Lecture file and folder working
Lecture file and folder workingLecture file and folder working
Lecture file and folder working
 
Lec04
Lec04Lec04
Lec04
 
Lecture data base programming part1
Lecture data base programming part1Lecture data base programming part1
Lecture data base programming part1
 
программын хэл гэж юу вэ
программын хэл гэж юу вэпрограммын хэл гэж юу вэ
программын хэл гэж юу вэ
 
файл, файлын оролт гаралт
файл, файлын оролт гаралтфайл, файлын оролт гаралт
файл, файлын оролт гаралт
 

Similar to Lecture2

Similar to Lecture2 (20)

Java lecture2
Java lecture2Java lecture2
Java lecture2
 
It glossary
It glossaryIt glossary
It glossary
 
1
11
1
 
си хэлний ойлголт
си хэлний ойлголтси хэлний ойлголт
си хэлний ойлголт
 
Lecture network programming
Lecture network programmingLecture network programming
Lecture network programming
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Microsoft power point dasgal nano 2011 08
Microsoft power point dasgal nano 2011 08Microsoft power point dasgal nano 2011 08
Microsoft power point dasgal nano 2011 08
 
Lecture 7, 8
Lecture 7, 8Lecture 7, 8
Lecture 7, 8
 
Lecture data base programming part2
Lecture data base programming part2Lecture data base programming part2
Lecture data base programming part2
 
10 мэд зүй компьютер
10 мэд зүй компьютер10 мэд зүй компьютер
10 мэд зүй компьютер
 
Router гэж юу вэ ?
Router гэж юу вэ ?Router гэж юу вэ ?
Router гэж юу вэ ?
 
DW test
DW testDW test
DW test
 
Лекц №5
Лекц №5Лекц №5
Лекц №5
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
жаваскрипт сангууд
жаваскрипт сангууджаваскрипт сангууд
жаваскрипт сангууд
 
Sw206 lec
Sw206 lecSw206 lec
Sw206 lec
 
лекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалтлекц 1 компьютерийн бүтэц зохион байгуулалт
лекц 1 компьютерийн бүтэц зохион байгуулалт
 
Компьютерийн бүтэц, зохион байгуулалт №1-2
Компьютерийн  бүтэц, зохион байгуулалт №1-2Компьютерийн  бүтэц, зохион байгуулалт №1-2
Компьютерийн бүтэц, зохион байгуулалт №1-2
 
Лекц №2
Лекц №2Лекц №2
Лекц №2
 
C++
C++C++
C++
 

More from ganzorigb

Lecture graphic programming
Lecture graphic programmingLecture graphic programming
Lecture graphic programmingganzorigb
 
Lecture tread
Lecture treadLecture tread
Lecture treadganzorigb
 
Lecture file man prog
Lecture file man progLecture file man prog
Lecture file man progganzorigb
 
Lecture data base programming part3
Lecture data base programming part3Lecture data base programming part3
Lecture data base programming part3ganzorigb
 
Lecture hibernate
Lecture hibernateLecture hibernate
Lecture hibernateganzorigb
 
Lekts presentation10
Lekts presentation10Lekts presentation10
Lekts presentation10ganzorigb
 
Lekts presentation12
Lekts presentation12Lekts presentation12
Lekts presentation12ganzorigb
 
Lekts presentation9
Lekts presentation9Lekts presentation9
Lekts presentation9ganzorigb
 
Lekts presentation8
Lekts presentation8Lekts presentation8
Lekts presentation8ganzorigb
 

More from ganzorigb (18)

Lecture 1 2
Lecture 1 2Lecture 1 2
Lecture 1 2
 
Pl lecture2
Pl lecture2Pl lecture2
Pl lecture2
 
Pl lecture3
Pl lecture3Pl lecture3
Pl lecture3
 
Pl lecture4
Pl lecture4Pl lecture4
Pl lecture4
 
Pl lecture6
Pl lecture6Pl lecture6
Pl lecture6
 
Pl lecture7
Pl lecture7Pl lecture7
Pl lecture7
 
Pl lecture8
Pl lecture8Pl lecture8
Pl lecture8
 
Pl lecture8
Pl lecture8Pl lecture8
Pl lecture8
 
Lecture graphic programming
Lecture graphic programmingLecture graphic programming
Lecture graphic programming
 
Lecture tread
Lecture treadLecture tread
Lecture tread
 
Lecture file man prog
Lecture file man progLecture file man prog
Lecture file man prog
 
Lecture data base programming part3
Lecture data base programming part3Lecture data base programming part3
Lecture data base programming part3
 
Lecture hibernate
Lecture hibernateLecture hibernate
Lecture hibernate
 
PL Lecture4
PL Lecture4PL Lecture4
PL Lecture4
 
Lekts presentation10
Lekts presentation10Lekts presentation10
Lekts presentation10
 
Lekts presentation12
Lekts presentation12Lekts presentation12
Lekts presentation12
 
Lekts presentation9
Lekts presentation9Lekts presentation9
Lekts presentation9
 
Lekts presentation8
Lekts presentation8Lekts presentation8
Lekts presentation8
 

Lecture2

  • 2. Жава Програмчлалын Хэлний Vндсэн Зорилт  Ерөнхий           зориулалтын програм хангамж Console-based хэрэглээний програм Ширээний компьютерийн Сервэр програм хангамж Вэб програм (Үйлчлэгч талын- Үйлчлүүлэгч талын) Тархалттай / 2-tier, 3-tier, N-tier програмууд Сүлжээний програм Гэр ахуйн цахилгаан төхөөрөмж / Суулгагдсан системүүд Зөөврийн төхөөрөмжийн програм Чипийн, Картын програм Үйлдлийн систем (JavaOS)
  • 3. Жава Програмчлалын Хэлний Vндсэн Зорилт         Бүрэн ОХ Хэрэглээний энгийн байдалтай Тархалттай сүлжээний технологитой Нууцлалт, хамгаалалт Зөөврийн, архитектурын хамааралгүй (ямар ч төхөөрөмжийн хувьд) Өндөр боломжтой Олон бодлогын горимыг дэмждэг Уян хатан
  • 4. Java хэлний чадвар      C++ хэлний дутагдалтай талуудыг засан уламжилсан ОХ-ыг улам сайжруулан объект хандлагат биш боломжуудыг устгасан (жишээ нь, C++ хэлний макро ба глобаль хувьсагч). Алдаа гарах магадлалыг өндөрсгөдөг санах ойн заагчийн үйлдлүүдийг устгаж заалт болон заагч гэх мэтийн зарим зөрчлийг арилгасан. Динамик санах ойн зохион байгуулалттай. Өгөгдлийн төрлийн хувьд төрлийн аюулгүй.
  • 5. Java хэлний чадвар      Нийтлэг тохиолддог буруу төрлийн хувиргалт, массивын индекс, санах ойн заагчийн алдааны хувьд ажиллах үеийн шалгалттай. Олон бодлогын ба сүлжээний програм зохиохыг илүү дэмждэг. Онцгой тохиолдол боловсруулалтын сайн ажиллагаатай. Хөгжүүлэлтийн үр ашигтай байдал. “Элстэй савны” нууцлал.
  • 7. Java хэлний сул тал  Java кодыг ажиллуулдаг нэмэлт програм хангамж шаардлагатай. Үүнийг Java Virtual Machine (JVM) гэдэг. гэдэг  Java код нь төхөөрөмжийн ойлгодог машины код руу шууд хөрвүүлэгддэггүй.  Харин өөр нэгэн доод түвшний хэл болох байт-код руу хөрвүүлэгддэг.  Байт-код (bytecode) нь JVM-д ойлгогддог ба JVM түүнийг тухайн машины хэл рүү хөрвүүлдэг.  Үүнээс болоод Java програм эхлэхдээ удаан (JVM-г эхлүүлэх хугацаа ордог) байдаг ба ажиллахын тулд илүү нөөц шаарддаг.
  • 8. Java хэлний сул тал  Хэлний онцлог боломжууд   Санах ойтой шууд ажилладаггүй Хурд    Өмнөх хувилбарын Java програм нь үнэхээр бусад хэл дээр бичигдсэн програмаас (C++) харьцангуй удаан байсан. JVM-д ажиллах хурдыг өндөрсгөх тооцоологч нэмсэн. Шинэ хувилбарын Java хурдыг сайжруулах хэд хэдэн боломжийг агуулсан. Яг тухайн үед нь хөрвүүлэгч(Just-in-time compiler), – HotSpot кодын ажиллагааны сайжруулалт. – Динамик хог цуглуулагч. – гэх мэт –
  • 9. Java програм хэрхэн ажилладаг тухай   Эх код ажиллахын өмнө объект код руу хөрвөсөн байх ёстой тухай бид мэдсэн.  Хөрвүүлэгчийн үүсгэсэн объект код нь тодорхой компьютерт байдаг (төхөөрөмж болон үйлдлийн систем). Java нь ялгаатай аргачлал ашигладаг ба энэ нь зөөврийн хэмээх сайн талыг бий болгодог.  Java эх код хөрвүүлэгдэж үр дүнд bytecode хэмээх машины стандарт хэл дээрх програм бий болдог ба энэ нь бүх компьютерт ижилхэн байдаг.  Тиймээс хөрвүүлэгдсэн Java програм дахин хөрвүүлэх шаардлагагүйгээр бүх компьютерт ажилладаг.  Энэ авсаар байдал нь олон төрлийн компьютерүүд холбогдсон World Wide Web-д чухал ач холбогдолтой.
  • 10. Java програм хэрхэн ажилладаг тухай  Гэвч ямар ч компьютер байт кодыг машины хэл шиг шууд ашигладаггүй.  “Машин” үүрэг гүйцэтгэх тусгай програм хангамж ажиллан байт код програмыг ажиллуулдаг.   Java Virtual Machine (JVM) нь хөрвүүлэгдсэн Java програмыг интерпретатор маягаар ажиллуулдаг. JVM нь байт код програмын заавруудыг нэг нэгээр унших ба нэг заавраа машины хэлний заавар руу хөрвүүлэнгүүт тухайн компьютер түүнийг ажиллуулдаг. Энэ ажиллагааг Interpretation буюу интерпретаци гэдэг. гэдэг
  • 12. Програмыг ажиллуулах болон интерпретаци хийхийн ялгаа Интерпретаци нь програм ажиллах явцад нэг нэг заавруудад хийгддэг.  Энэ нь хөрвүүлэхээс ялгаатай. Хөрвүүлэх үед програм ажиллахаас өмнө түүний бүх зааврыг хөрвүүлдэг.  Компьютер машины хэл рүү хөрвөсөн програмыг шууд ажиллуулж чаддаг  Компьютер bytecode-г шууд ажиллуулж чадахгүй. Хөрвөсөн Java байт кодыг ажиллуулахын тулд JVM байт кодын эхний зааврын машины хэлний зааврыг олж үйлдлийг гүйцэтгэх командыг машинд өгдөг. Үүний дараа дараагийн байт код зааврыг машины заавар руу гэх мэтчилэн бүгдийг нэг нэгээр хөрвүүлэн ажиллуулна. 
  • 13. Програмыг ажиллуулах болон интерпретаци хийхийн ялгаа    JVM нь яг хөрвүүлэгч шиг машины кодыг үүсгэдэггүй боловч байт кодын зааврын яг ижил үйлдэл хийх машины заавруудыг нь компьютерт өгдөг. Java байт код програм нь арай удаан байдаг нь компьютер түүнийг машины хэл дээрх програм шиг шууд ажиллуулахгүйгээс болдог. Авсаар байх нь удаан ажиллагаа бүхий сул талтай байх нээ. Сүүлийн үеийн Java нь Just-in-Time (JIT) хөрвүүлэлттэй болсон. Энэ нь байт код програм болсон тухайн компьютер дээр эхний удаа ажилангуут машины кодыг нь үүсгээд дараагийн ажиллуулалтан дээр үүсгэсэн машины кодоо ажиллуулдаг аргачлал юм
  • 14. Програмыг ажиллуулах болон интерпретаци хийхийн ялгаа  Шууд ажиллуулах Компьютер тодорхойлогдсон үйлдлүүдийг биелүүлэх  Интерпретаци хийх Програм ажиллах явцад машины биш хэлнээс (bytecode шиг) ажиллах үйлдэл рүү хөрвүүлэх
  • 15. Хөрвүүлэлт нь интепретаци болон биелүүлэлттэй ямар хамаатай вэ?  Хөрвүүлэлт биелүүлэлт нь ялгаатай 2 процесс.  Хөрвүүлэлтийн үед компьютер хөрвүүлэгч програмыг ажиллуулан эх кодыг машины код руу хөрвүүлдэг.  Энэ машины код дахин дахин ажиллах болно.  Биелүүлэлтийн үед машины код(объект код) компьютерийн санах ой руу ачаалагдан шууд биелэгддэг.
  • 16. Хөрвүүлэлт нь интепретаци болон биелүүлэлттэй ямар хамаатай вэ?    JVM нь C++ бичигдэн машины хэл рүү хөрвүүлэгдсэн програм юм.  Энэ машины код санах ой руу ачаалагдаж JVM ажиллана.  Үүний оролт нь хөрвүүлэгдсэн Java програм(bytecode).  Үүний үр дүн нь орсон програмын үйлдлүүдийн харгалзаадэс дараалсан машины үйлдлүүдийн ажилласан үр дүн юм. JVM болон Java програм хөрвүүлэгдсэний дараа тэднийг дахин хөрвүүлэхгүйгээр ашигласаар байх болно. Нэг компьютерийг өөр компьютер шиг болгон хиймэл компьютерийн үүрэг гүйцэтгэдэг програмыг virtual machine буюу бараг л машин гэдэг. гэдэг  Хэрэв компьютер “Java програмыг ажиллуулж байвал” энэ нь үнэндээ “Компьютер Java програмыг ажиллуулж байгаа JVM –г ажиллуулж байна” гэсэн үг юм.
  • 17. Хөрвүүлэлт нь интепретаци болон биелүүлэлттэй ямар хамаатай вэ?
  • 18. JVM-ийн хөрвүүлэлт болон ажиллагаа ба Java програмын хөрвүүлэлт болон ажиллагаа
  • 20. Жава Програмчлалын Хэлний Vндсэн Зорилт  Дараахь онцлогууд дээр дурьдсан бүх зүйлсийг хангах юм:    Жава Виртуаль Машин (JVM) Garbage Collection Кодын нууцлал
  • 21. Жава Виртуаль Машин (JVM) Хатуумжийн платформ тодорхойлолтуудыг хангана  Платформоос үл хамаарах хөрвөсөн байт кодуудыг уншина  Уямж эсхүл хатуумж байдлаар хэрэглэгдэнэ  Жава хөгжүүлэлтийн багаж эсхүл веб браузер байдлаар хэрэглэгдэнэ 
  • 22. Жава Виртуаль Машин (JVM) JVM нь дараахь тодорхойлолтуудыг барина:  Instrcution set (CPU)  Register set  Class file format  Stack  Garbage collected-heap  Memory area
  • 23. Жава Виртуаль Машин (JVM)  Байткод нь кодоос бий болсон хамгийн эвтэйхэн хэлбэр  Кодыг хөрвүүлэх явцад ихэнхи төрөл шалгалтууд явагддаг  SUN-аас хүлээн зөвшөөрөгдсөн JVM-ууд бүх класс файлыг ажиллах чадвартай
  • 24. Garbage Collection     Байршсан санамж хэрэгцээгүй болсон бол цэвэрлэгдэж байх хэрэгтэй Зарим хэлнүүдэд цэвэрлэх үйлдэл нь програмчын хийх ёстой үйлдэл байдаг Жава хэлэнд санах ойг цэвэрлэх системийн трийдүүд(зүтгүүр) байдаг Garbage Collection: - Хэрэгцээгүй санамж байгаа эсэхийг шалгаж, тийм бол цэвэрлэдэг -Автоматаар -JVM-ийн онцлогоос шалтгаалан олон янзын хэлбэрээр хэрэгжих бололцоотой.
  • 25. Кодын нууцлал Жава програмын орчин дараахь байдлаар хэрэгжинэ:
  • 26. Жава Runtime Орчин  Гурван – – – үндсэн үйлдлийг гүйцэтгэнэ: Кодыг ачаална Кодыг нягтлана Кодыг гүйцэтгэнэ
  • 27. Класс Ачаалагч  Программыг ажиллуулахад хэрэгцээтэй классуудыг ачаална  Локал файл системийн классуудыг тусгай нэршлийн дагуу ачаална  Хуурмаг нөхцөл байдлаас сэргийлнэ
  • 28. БайтКод Хянагч  Дараахь      нөхцлүүдийг нягтлана: JVM-ы шаардлагад нийцэж байгаа эсэх Системийн нэгдэлд харшлахгүй байгааг Код нь стектэй холбоотой ямар нэгэн хэтрэлт, дуталт үүсгээгүйг Ажиллах кодны параметр төрлүүд зөв эсэх Дүрмийн бус өгөгдөл хувиргалт хийгдээгүйг
  • 29. Соорс Файлын Хэлбэр “Дээд түвшний” гурван элементийг агуулна:     Багцийн тодорхойлолт (заавал биш) Тодорхой тооны импорт мэдэгдлүүд Класс болон интерфэйсийн зарлалтууд
  • 30. Класс болон Багцууд - Танилцуулга  Классууд  болон багцууд: Жава класс сангийн чухал багцууд: java.lang java.awt java.applet java.net java.io java.util
  • 31. Анхаарал тавьсанд баярлалаа. Асуулт байвал асуултаа одоо асууна уу