1.1. רקע
שפת Java היא שפת תכנות חדשה יחסית,
מ-1995. שפה זו הינה שפת תכנות מונחית עצמים שירשה אלמנטים רבים מ-C++.
התחביר של Java מבוסס C++ אם כי ישנם מספר הבדלים
משמעותיים.
נפרט חלק מהיתרונות של Java על C++:
- פשטות – Java ויתרה על כמה מהמנגנונים
המסובכים של C++, כגון unions ומצביעים.
- תכנות מונחה עצמים – ב-Java
כל דבר הוא אובייקט.
- רובסטית – לא ניתן להשתמש במשתנים שלא
אותחלו או להצביע אל אוביקט שלא אותחל.
אין אפשרות לחרוג מגבולותיו של מערך. ניסיון לחרוג מגבולותיו של מערך ב-Java
יגרום לשגיאה (Exception).
- בטוחה – סביבת הריצה של Java
מכילה מנגנון code verifier הבודק שהקוד של המשתמש חוקי ומתנהג לפי
ההרשאות שניתנו לו. בנוסף, בשפת Java לא קיימים מצביעים, וזאת
הן על מנת למנוע באגים בתוכניות המשתמש, והן כדי להגביר את האבטחה של השפה.
הורדת המצביעים גורמת לכך שמתכנתים מתוחכמים לא יוכלו לעקוף את מנגנון האבטחה
של השפה.
- Garbage Collector - Java מאפשרת למשתמש להקצות
זיכרון דינאמי, אולם שחרור הזיכרון איננו באחריותו של המשתמש. Java
משתמשת ב-Garbage Collector, הפועל כל העת ברקע שהוא אחראי לאתר את
הזיכרון שאיננו בשימוש עוד ולשחרר אותו.
- ב-Java ניתן לבצע הורשה מאב
יחיד בלבד. האפשרות לבצע הורשה מרובה ב-C++ גרמה לעתים לתקלות קשות.
תכנון נכון של המחלקות מתממש תמיד בהורשה יחידה בלבד.
- מכילה מספר רב של מחלקות סטנדרטיות
הכוללות תמיכה בקלט/פלט, עבודה מול מסדי נתונים, מבני נתונים שונים, תמיכה
בריבוי תהליכים ועוד.
xss hack
אני רוצה שתעזור לי ב xss אשמח לתשובה