JVM – Java Virtual Machine отговорна за изпълнението ред по ред на програмите на Java
Това са нужни неща за създаване и изпълняване на програми на езика Java
Като използвате фиг.1, обяснете как една Java програма стига от изходен код до изпълнение и каква е ролята на всеки от софтуерните компоненти по пътя.
Фиг.1
Source code минава в JDK и се превръща в Java Byte Code а той минава в JVM и след това програмата може да се изпълни от JRE
Обяснете понятията wrappers, autoboxing, и unboxing (опаковъчни класове, автоматично опаковане, разопаковане). Подчертайте в кода на фиг. 2 и обяснете как се използват тези понятия.
Фиг. 2
import java.util.*;
public class Main {
public static void main(String[] args) {
ArrayList mySchoolMarks = new ArrayList<>(5);
mySchoolMarks.add(0,4);
mySchoolMarks.add(1,5);
mySchoolMarks.add(2,5);
mySchoolMarks.add(3,6);
mySchoolMarks.add(4,5);
int myHistoryMark;
myHistoryMark = mySchoolMarks.get (3);
System.out.println(myHistoryMark);
}
}
Wrapper клас чиито обекти описват примитивните типове данни
Autoboxing автоматичното преминаване което компилатора прави между примитивните типове данни и съответстващите wrapper класове
Unboxing автоматичното превръщане на обект от wrapper клас до съответстващите примитивни типове данни
Обяснете с коментари действието на програмата на фиг. 3. Променете програмата така, че параметърът на modifyArr() да не е масив, а да е списък от 3 int променливи. Ще се промени ли резултатът от изпълнението на програмата и как?
Фиг. 3 package com.pgtk;
import java.util.*;
public class example1 {
public static void modifyArr(List arrParam) {//създаваме функция
arrParam[1] = 6;//създава се масив
System.out.print("In modifyArr() the param is: ");
System.out.println(Arrays.toString(arrParam));
}
public static void main(String[] args) {
int[] arrArg = new int[] { 1, 2, 3 };//създава се масив
System.out.print("Before modifyArr() the argument is: ");