Presentation is loading. Please wait.

Presentation is loading. Please wait.

היכרות עם Java אליהו חלסצ'י תכנות מתקדם תרגול מספר 1

Similar presentations


Presentation on theme: "היכרות עם Java אליהו חלסצ'י תכנות מתקדם תרגול מספר 1"— Presentation transcript:

1 היכרות עם Java אליהו חלסצ'י תכנות מתקדם 89-210 תרגול מספר 1
תשע"א היכרות עם Java אליהו חלסצ'י

2 הרקע ל java השפה פותחה כפרויקט פנימי בתוך sun
מטרתו היתה מערכות משובצות מחשב הרעיון הכללי היה ליצור אפשרות לקוד מקור אחיד עבור סביבות שונות השפה (כמעט) מונחת עצמים טהורה תחביר דומה ל C++ שפת world wide web

3 התקנה גולשים ל http://java.sun.com/
בתפריט Downloads יש לבחור java for developers נגשים לטבלה של Java Platform, Standard Edition מורידים את ה JDK, ואת ה JRE אם חסר לכם JDK – Java Development Kit JRE – Java Runtime Environment ולהמשיך ע"פ ההוראות

4 התוכנית הראשונה שלי תוכנית java יכולה לרוץ כ application כלומר כתוכנה עצמאית, או כ applet למשל בתוך דף אינטרנט כמה קונבנציות: הקוד נשמר בקובץ טקסט רגיל עם הסיומת .java שם הקובץ תואם את שם המחלקה היחידה שבתוכו התוכנית רגישה לאותיות גדולות או קטנות מחלקה תתחיל באות גדולה, משתנה \ אובייקט באות קטנה כעת נראה דוגמא ל application

5 ניצור את הקובץ HelloWorldApp.java ובתוכו נכתוב:
כעת, "נקמפל" את התוכנית ע"י הפקודה: javac HelloWorldApp.java קיבלנו קובץ class בשם “HelloWorldApp.class” ונריץ ע"י הפקודה: java HelloWorldApp המחשב יחפש את קובץ ה class ואת המחלקה שבתוכו, ויריץ את פונקצית ה main מתוכה public class HelloWorldApp { public static void main(String[] args) { System.out.println("hello world!"); } code יש להסביר על מבנה התוכנית : להדגיש ששם הקובץ תואם את שם המחלקה מדוע צריך static לפונקציית ה main (אפשר להפנות את השאלה לסטודנטים) הפרמטרים של התוכנית ומדוע הדפסה למסך דורשת פנייה למחלקת System

6 כיצד זה עובד? כמובן - עבד לאט! שאלה מכשילה:
JVM – java virtual machine הרעיון: בכל מערכת הפעלה יותקן JVM שהוא למעשה מפרש את קוד המקור (מריץ שורה שורה) וכך אותו הקוד יכול לרוץ במערכות שונות Compiler javac: ByteCode Interpreter Java: כמובן - עבד לאט! לכן יצרו את המעבר ל ByteCode כעת פעולת ה interpreter מהירה יותר להריץ כי יש אנימציה שאלה מכשילה – לתת לסטודנטים לדון קצת - מה יותר מהר להסביר מדוע זו שאלה מכשילה בשקף הבא על מנגנון JIT שאלה מכשילה: מה רץ מהר יותר, קובץ class של Java, או קובץ out של C++ ?

7 מנגנון JIT JIT : Just In Time
זוהי אופטימיזציה המבצעת הידור בזמן ריצה – הופכת את ה ByteCode ל native code של המכונה עצמה. חוזק המנגנון הוא בכך שבזמן ריצה יש מידע מדויק יותר על ריצת התוכנה, וניתן לנצל זאת לביצוע אופטימיזציות טובות יותר לקוד. בפעם הראשונה ה ByteCode מתורגם ל native code שמורץ ונשמר לצורך השימוש הבא. VM מתוחכמות יותר אף מבצעות dynamic recompilation – ה VM מנתחת את התנהגות התוכנית הרצה, ועל פי כך מקמפלת מחדש עם אופטימזציות טובות יותר חלקים מהתוכנית. להוסיף שהמידע יותר קונקרטי - למשל לולאה מ 1 ועד משתנה שנקלט ע"י המשתמש קודם החלפנו פעולת מפרש בהידור בזמן ריצה שקורה מידי פעם לציין שתמיד ישנה האפשרות לקימפול ה bytecode לobject code בשפת המכונה לפני הריצה...

8 היכרות עם eclipse סביבת עבודה חופשית הניתנת להורדה מ www.eclipse.org
נעבור על הצעדים הבסיסיים כדי שתוכלו להתחיל לעבוד בצורה חלקה: יצירת פרויקט חדש יצירת מחלקה חדשה נתוני הרצה (כולל arguments) פלט לפני שעוברים ל eclipse חזור על הנושאים שעברנו עד כה ברשימה שמצד שמאל למעלה פתח את ה eclipse ותראה להם איך פותחים פרויקט חדש ומריצים תוכנית עם אורגומנטים

9 הטמעה לשם מה נועד ה ByteCode ? כיצד יבוא לידי ביטוי מנגנון ה JIT?
חישבו על תוכנית שתרוץ מהר יותר ב java מאשר ב C++ התקינו בביתכם Java ו eclipse כתבו קוד ותשחקו איתו קצת, ותריצו.


Download ppt "היכרות עם Java אליהו חלסצ'י תכנות מתקדם תרגול מספר 1"

Similar presentations


Ads by Google