Download presentation
Presentation is loading. Please wait.
Published byFelix Hardy Modified over 6 years ago
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 כתבו קוד ותשחקו איתו קצת, ותריצו.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.