<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="he">
	<id>https://www.yisraelpedia.com/index.php?action=history&amp;feed=atom&amp;title=%D7%92%27%D7%90%D7%95%D7%95%D7%94_%28%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA%29</id>
	<title>ג&#039;אווה (שפת תכנות) - היסטוריית גרסאות</title>
	<link rel="self" type="application/atom+xml" href="https://www.yisraelpedia.com/index.php?action=history&amp;feed=atom&amp;title=%D7%92%27%D7%90%D7%95%D7%95%D7%94_%28%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA%29"/>
	<link rel="alternate" type="text/html" href="https://www.yisraelpedia.com/index.php?title=%D7%92%27%D7%90%D7%95%D7%95%D7%94_(%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA)&amp;action=history"/>
	<updated>2026-09-15T06:45:54Z</updated>
	<subtitle>היסטוריית הגרסאות של הדף הזה בוויקי</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://www.yisraelpedia.com/index.php?title=%D7%92%27%D7%90%D7%95%D7%95%D7%94_(%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA)&amp;diff=697&amp;oldid=prev</id>
		<title>imported&gt;לוכסן: מסד נתונים במקום &quot;בסיס נתונים&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.yisraelpedia.com/index.php?title=%D7%92%27%D7%90%D7%95%D7%95%D7%94_(%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA)&amp;diff=697&amp;oldid=prev"/>
		<updated>2026-05-29T13:13:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php/%D7%9E%D7%A1%D7%93_%D7%A0%D7%AA%D7%95%D7%A0%D7%99%D7%9D&quot; title=&quot;מסד נתונים&quot;&gt;מסד נתונים&lt;/a&gt; במקום &amp;quot;בסיס נתונים&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;דף חדש&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{מפנה|Java|ג&amp;#039;אווה (פירושונים)}}&lt;br /&gt;
{{שפת תכנות&lt;br /&gt;
| שם = ג&amp;#039;אווה&lt;br /&gt;
| שם בשפת המקור = Java&lt;br /&gt;
| סמל = [[קובץ:Java-Logo.png|100px]]&lt;br /&gt;
| כיתוב סמל = הלוגו של שפת התכנות ג&amp;#039;אווה&lt;br /&gt;
| פרדיגמות = [[תכנות מונחה-עצמים|תכנות מונחה־עצמים]], [[תכנות מובנה]], [[תכנות אימפרטיבי]]&lt;br /&gt;
| תאריך השקה = 1995&lt;br /&gt;
| מתכנן = [[ג&amp;#039;יימס גוסלינג]]&lt;br /&gt;
| מפתח = [[סאן מיקרוסיסטמס]] (ב-[[2010]] נרכשה על ידי [[אורקל (חברה)|אורקל]])&lt;br /&gt;
| טיפוסיות = סטטית, חזקה, בטוחה, מפורשת&lt;br /&gt;
| ניבים = Generic Java, Pizza&lt;br /&gt;
| רישיון =&lt;br /&gt;
| סיומת = java, .class.&lt;br /&gt;
| אתר אינטרנט = https://www.java.com/en/&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ג&amp;#039;אווה&amp;#039;&amp;#039;&amp;#039; (באנגלית: &amp;#039;&amp;#039;&amp;#039;Java&amp;#039;&amp;#039;&amp;#039;) היא [[שפת תכנות]] [[תכנות מונחה עצמים|מונחית עצמים]] אשר פותחה בחברת [[סאן מיקרוסיסטמס]] (כיום [[חברה בת|חברת־בת]] של [[אורקל (חברה)|אורקל]]) על ידי צוות בראשות [[ג&amp;#039;יימס גוסלינג]] בשנת [[1991]], והיא אחת משפות התכנות הנפוצות ביותר הנמצאות בשימוש כיום.{{הערה|[http://www.tiobe.com/index.php/tiobe_index אינדקס &amp;quot;TIOBE&amp;quot;]}} השפה הוצגה לראשונה בשנת [[1995]], והיא מהווה את אחד מרכיבי הליבה של [[Java (פלטפורמת תוכנה)|פלטפורמת התוכנה ג&amp;#039;אווה]].&lt;br /&gt;
&lt;br /&gt;
התחביר של השפה מבוסס במידה רבה על התחביר של [[C++|++C]], אך כולל הרחבות רבות במטרה לאפשר תמיכה מובנית ב[[תהליכון|תהליכונים]], בינלאומיות, אבטחה ועבודה בסביבת ה[[אינטרנט]] ותכונות נוספות.&lt;br /&gt;
לרוב עוברות תוכניות ג&amp;#039;אווה [[הידור]] ל־Java [[bytecode]], שפת ביניים דמוית [[שפת מכונה]], שאותה מריצה [[מכונה וירטואלית]] ([[Java Virtual Machine]] ;JVM). הודות לכך התוכנית יכולה לרוץ על כל מחשב ועל כל [[מערכת הפעלה]] המריצים JVM, החל מ[[טלפון סלולרי|טלפונים סלולריים]] ועד ל[[מחשב-על|מחשבי-על]].&lt;br /&gt;
&lt;br /&gt;
בשנת [[1996]] הוקם לראשונה הכנס &amp;quot;[[JavaOne]]&amp;quot;, כנס שנתי המאגד אלפי משתמשי ומפתחי השפה הדנים בפיתוחה ובעדכונים הטכנולוגיים בה.&lt;br /&gt;
&lt;br /&gt;
נכון ליולי 2022, ג&amp;#039;אווה נחשבת לשפת התכנות השנייה ברמת הפופולריות בעולם, גם בקרב מהנדסי תוכנה מקצועיים וגם על פי מדידת [[Google Trends]].{{הערה|{{קישור כללי|כתובת=http://pypl.github.io/PYPL.html|כותרת=PYPL PopularitY of Programming Language index|אתר=pypl.github.io|תאריך_וידוא=2016-06-25}}}}{{הערה|{{קישור כללי|כתובת=http://www.tiobe.com/index.php/tiobe_index|כותרת=TIOBE Index {{!}} Tiobe - The Software Quality Company|אתר=www.tiobe.com|תאריך_וידוא=2016-06-21}}}}&lt;br /&gt;
&lt;br /&gt;
== היסטוריה ==&lt;br /&gt;
השפה פותחה לראשונה כ[[מיזם]] פנים בתוך חברת [[סאן מיקרוסיסטמס]], על ידי [[ג&amp;#039;יימס גוסלינג]], ארכיטקט הפרויקט, שהחל בדצמבר [[1990]] בשם &amp;quot;פרויקט החמקן&amp;quot; (Stealth Project), ושמו הוחלף לאחר זמן מה ל&amp;quot;פרויקט הירוק&amp;quot; (Green Project). מטרתו המקורית של הפרויקט הייתה [[מערכת משובצת מחשב|מערכות משובצות מחשב]] (embedded systems) עבור מכשירים חכמים (smart appliances) שונים, כגון [[מחשב כף יד]] (PDA) ואפילו [[תנור]] או [[מקרר]] חכם, תחום שסאן צפתה כי יתפתח מאוד מבחינה עסקית.&lt;br /&gt;
&lt;br /&gt;
צוות הפרויקט פיתח שפה חדשה משום ששפות קיימות כגון [[C++|++C]] שנשקלה בתחילה, היו מורכבות מדי וצרכו משאבים גדולים מדי עבור מערכות פשוטות משובצות מחשב. אמנם, אחד מהנסיונות הראשונים של הצוות היה כתיבת גרסה שונה של ++C שתיקרא &amp;quot;--++++C&amp;quot;{{מקור|נושא=מדעי הרוח|נושא2=מחשוב}}, אך במהרה החליט הצוות לכתוב שפה חדשה המתבססת על מספר עקרונות ותחביר דומה ל־++C. השם שהוצע בתחילה לשפה היה Oak ([[אלון]]), על שמו של עץ שגדל מחוץ לחלון של גוסלינג.&lt;br /&gt;
&lt;br /&gt;
מבחינת תשתית השפה, הרעיון הבסיסי היה ליצור &amp;quot;[[מפרש (תוכנה)|מְפָרֵשׁ]]&amp;quot; (Interpreter) שקורא את קוד השפה ומבצע אותה. משמע, כי לכל סביבה יהיה מפרש משלה וכך ניתן לכתוב [[קוד מקור]] אחיד עבור סביבות שונות. בסוף [[1992]] סאן הקימה [[חברת בת]] בשם FirstPerson שייעודה לפתח ולמצוא שימושיים עסקיים לשפה החדשה.&lt;br /&gt;
&lt;br /&gt;
הכיוון אותו בחרה FirstPerson היה [[ממיר כבלים|ממירים]] (Set-Top Boxes) לחברות [[טלוויזיה בכבלים|כבלים]], שיוכלו להריץ יישומים עבור [[טלוויזיה]] אינטראקטיבית. לאחר שני כישלונות במכרזים גדולים (חברות הכבלים חששו ממתן חופש גדול מדי בידי [[משתמש קצה|משתמש הקצה]]) נסגרה החברה והצוות חזר לסאן.{{הערה|המעגל נסגר לאחר שממירים דיגיטליים רבים לכבלים ו[[לוויין]] תומכים בג&amp;#039;אווה, החל מתחילת שנות ה־2000}}&lt;br /&gt;
&lt;br /&gt;
ביולי [[1994]], לאחר שמספר חברים נוספים הצטרפו לצוות, וביניהם [[אריק שמידט]], החליט הצוות על כיוון עסקי שלישי, חדש, והוא ה־[[World Wide Web|Web]]. הם צפו שהמדיום החדש יהיה זקוק לשפה שבעזרתה יוכל להריץ בתחנות הקצה יישומים אינטראקטיביים ללא תלות ב[[מערכת הפעלה|מערכת ההפעלה]] או ה[[מעבד]], ועל מחשבים חלשים יחסית.&lt;br /&gt;
&lt;br /&gt;
באותה שנה, בפגישה ב[[בית קפה]] בהשתתפות מספר חברי צוות, הוחלט על שינוי השם מאחר ש־Oak היה רשום כ[[סימן רשום]] על ידי יצרן אחר. מקור השם ג&amp;#039;אווה אינו ברור.{{הערה|ראו http://www.javaworld.com/javaworld/jw-10-1996/jw-10-javaname.html}} יש טוענים שאלו [[ראשי תיבות]] של חברי הצוות שנכחו בפגישה:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ames Gosling, &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;rthur &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;an Hoff, and &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;ndy Bechtolsheim&lt;br /&gt;
גרסה אחרת טוענת כי השם ניתן על שם ה[[קפה]] שהוגש באותה פגישה (קפה שמקורו ב[[ג&amp;#039;אווה]] שב[[אינדונזיה]]). חיזוק לגרסה האחרונה ניתן למצוא בכך שארבעת ה[[בית (מחשב)|בתים]] הראשונים (ראה [[מספר קסם (תכנות)|מספר קסם]]) של כל [[מחלקה (תכנות)|מחלקה]] בג&amp;#039;אווה הם, ב[[בסיס הקסדצימלי|הקסדצימל]]: 0xCAFEBABE... ([[שפה#שפות טבעיות|ז&amp;#039;רגון]] כתיבת מילים באמצעות התווים המותרים בפורמט הקסדצימלי מוכר בשם Hexspeak {{אנ|Hexspeak}}). בהלצה נטען כי אלו ראשי תיבות של &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ust &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;nother &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;ague &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;cronym (&amp;quot;עוד ראשי תיבות עמומים&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
בשנת [[1995]] הטכנולוגיה הודגמה בכנס על [[דפדפן]] [[נטסקייפ]] על ידי סיבוב גוף תלת־ממדי בעזרת תוכנת קצה בדפדפן המריצה ג&amp;#039;אווה וידועה בימינו כ[[Applet|יישומון]] (Applet – יישום קטן אשר רץ בתוך הדפדפן). הטכנולוגיה התקבלה בהתלהבות. היישומונים התפתחו זמן מה עד שה־[[אדובי פלאש|Flash]] התחיל להחליף את מקומם בזכות יכולת ה[[הנפשה]] שלו.&lt;br /&gt;
&lt;br /&gt;
גרסה 5.0, שהושקה בספטמבר [[2004]] הייתה ממוספרת גם 1.5, כשלב מעבר ממספור גרסאות בקפיצות של עשירית (למשל, מ־1.3 ל־1.4) למספור בקפיצות של מספרים שלמים. השינוי בשיטת המספור ציין את קפיצת המדרגה בגרסה זו שכללה שינויים רבים (ובפרט Generics). כמו כן השינוי בשיטת ה[[מספור]] נובע, ככל הנראה, גם מן התחרות עם שפת #C, שהמיספור שלה קופץ במספרים שלמים.&lt;br /&gt;
&lt;br /&gt;
בנובמבר [[2006]], הכריזה חברת סאן כי ג&amp;#039;אווה תוצע גם תחת רישוי [[GPL|GPL v2]]. ההכרזה כוללת את השפה והמהדר, הספריות, סביבת הריצה ([[JVM]]) והכלים הנלווים. בכך הפכה ג&amp;#039;אווה לשפה וסביבה פתוחה וחופשית.{{הערה|{{TheMarker||סאן מיקרוסיסטמס הופכת את ג&amp;#039;אווה לפלטפורמת קוד פתוח חינמית|0000017f-db6d-d856-a37f-ffedf20f0000|13 בנובמבר 2006}}}} במאי [[2007]], הודיעה סאן כי סיימה את תהליך העברת ג&amp;#039;אווה לקוד פתוח.{{הערה|{{TheMarker|IDG|סאן משחררת את ג&amp;#039;אווה כתוכנת קוד פתוח|0000017f-ef4c-ddba-a37f-ef6e30a70000|9 במאי 2007}}}}&lt;br /&gt;
&lt;br /&gt;
== עקרונות ==&lt;br /&gt;
[[קובץ:JavaHelloWorld.png|שמאל|ממוזער|340px|[[תוכנית Hello world]] ב[[שפת תכנות|שפת]] ג&amp;#039;אווה שנכתבה ובוצעה&amp;lt;br&amp;gt;ב[[סביבת פיתוח משולבת|סביבת הפיתוח המשולבת]] [[Eclipse]]]]&lt;br /&gt;
ג&amp;#039;אווה היא שפה בעלת [[טיפוסיות]] &amp;#039;&amp;#039;&amp;#039;סטטית חזקה&amp;#039;&amp;#039;&amp;#039;, כלומר לכל ביטוי בשפה מתאים טיפוס יחיד, תקינות ביטויים נבדקת בזמן ההידור, במידת האפשר. כאשר אין זה אפשרי, תתבצע בדיקה בזמן ריצה.&lt;br /&gt;
&lt;br /&gt;
ג&amp;#039;אווה תומכת בתכנות מונחה עצמים. עם זאת ג&amp;#039;אווה עדיין כוללת, מטעמי יעילות, גם &amp;quot;טיפוסים פרימיטיביים&amp;quot;, שאינם אובייקטים. משום כך (ומסיבות נוספות) אינה נחשבת שפה מונחית עצמים &amp;quot;טהורה&amp;quot; כמו [[Smalltalk]] או [[Ruby]]. עם זאת, לכל טיפוס פרימיטיבי בג&amp;#039;אווה יש מחלקה עוטפת, אליה וממנה מתבצעת המרה אוטומטית (Boxing). למשל, לטיפוס הפרימיטיבי int קיימת מחלקה עוטפת Integer.&lt;br /&gt;
&lt;br /&gt;
שפת ג&amp;#039;אווה כוללת גם [[ניהול זיכרון אוטומטי]]. המתכנת פטור מן ההכרח לשחרר זיכרון המוקצה לאובייקט ברגע שאין עוד משתנים המצביעים עליו. במקום זאת, סביבת זמן הריצה כוללת מנגנון &amp;quot;[[איסוף זבל (מדעי המחשב)|איסוף זבל]]&amp;quot;, המבצע זאת אוטומטית.&lt;br /&gt;
&lt;br /&gt;
ג&amp;#039;אווה מאפשרת [[ירושה (תכנות)|ירושה]] יחידה בלבד, וזאת על מנת למנוע בעיות דו־משמעות הנוצרות מירושת יהלום. כדי לאפשר גמישות דומה לזו של ירושה מרובה, קיים בג&amp;#039;אווה מנגנון &amp;#039;&amp;#039;&amp;#039;ממשק&amp;#039;&amp;#039;&amp;#039; (interface) המגדיר רשימה של מתודות, המהווה [[חוזה (תכנות)|חוזה]] עם המתכנת. כך כל מחלקה יכולה &amp;#039;&amp;#039;&amp;#039;להרחיב&amp;#039;&amp;#039;&amp;#039; (extends) לכל היותר מחלקה אחת, ו&amp;#039;&amp;#039;&amp;#039;לממש&amp;#039;&amp;#039;&amp;#039; (implements) מספר בלתי מוגבל של ממשקים. על המחלקה לממש במפורש כל מתודה בכל ממשק כזה, וכך לא קיימת בעיה של כפל משמעות.&lt;br /&gt;
&lt;br /&gt;
בגרסה 5.0 נוספו מספר הרחבות חשובות לשפה, ביניהן [[תכנות גנרי]] (Generics), מספר משתנה של פרמטרים לפונקציה וטיפוסי מניה (Enums).&lt;br /&gt;
&lt;br /&gt;
בגרסה 7 של השפה נוספה תמיכה בהקצאת משאבים תחומה־לקסיקלית – בלוקים של try-with-resources.{{הערה|http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html}}&lt;br /&gt;
&lt;br /&gt;
בגרסה 8 של השפה נוספה תמיכה נרחבת וישירה בטכניקות של [[תכנות פונקציונלי]]; בין היתר נוסף [[תחביר]] עבור פונקציות למבדא, נוסף תחביר להעברה של מתודות כפרמטר, נוספו ממשקים עבור פונקציות, נוסף [[טיפוס נתונים]] מובנה Stream התומך בפונקציות מסדר גבוה ובפעולות כגון map או collect ונוספה מתודה forEach לטיפוס הנתונים Iterator.&lt;br /&gt;
&lt;br /&gt;
בגרסה 9 של השפה נוספה האפשרות למימוש ברירת-מחדל עבור מתודות בממשקים, נוספו מתודות ייצור סטטיות עבור אוספים כגון List, ונוספו מתודות שונות ל-Option ול Stream.&lt;br /&gt;
&lt;br /&gt;
== ג&amp;#039;אווה כשפה מוּנְחֵית עצמים חלקית ==&lt;br /&gt;
אחד מעקרונותיה החשובים של שפת java, הוא תמיכה בפרדיגמת [[תכנות מונחה-עצמים|תכנות מונחה העצמים]] שלה.&lt;br /&gt;
&lt;br /&gt;
השפה לא מונחית עצמים &amp;quot;טהורה&amp;quot; כיוון שניתן להשתמש בה בטיפוסי נתונים פרימטיביים (כמו int,float,char וכו&amp;#039;..).&lt;br /&gt;
&lt;br /&gt;
====== חמישה עקרונות חשובים של תכנות מונחה עצמים בjava הם ======&lt;br /&gt;
1. [[ירושה (תכנות)|ירושה]]&lt;br /&gt;
&lt;br /&gt;
דוגמת קוד:                                                                                                                                                                      &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Parent class&lt;br /&gt;
class Animal {&lt;br /&gt;
  public void voice() {&lt;br /&gt;
    System.out.println(&amp;quot;I am animal&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
    public void scream() {&lt;br /&gt;
    System.out.println(&amp;quot;boo!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
// class child, inherit from Animal&lt;br /&gt;
class Dog extends Animal {&lt;br /&gt;
  // same method like Animal&lt;br /&gt;
  public void voice() {&lt;br /&gt;
    System.out.println(&amp;quot; I am Dog!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    // create an object of the parent class that will point the child class!&lt;br /&gt;
    Animal labrador = new Dog();&lt;br /&gt;
    labrador.voice();&lt;br /&gt;
    labrador.scream(); // also has the method of his parent class&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
// output: I am Dog! boo!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. [[כימוס]]&lt;br /&gt;
&lt;br /&gt;
דוגמת קוד:                                                                                                                                                        &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
// Java program to demonstrate encapsulation&lt;br /&gt;
class EncapsulatedCar {&lt;br /&gt;
    // private variables declared these can only be accessed by public methods of class&lt;br /&gt;
    private String companyName;&lt;br /&gt;
    private int year;&lt;br /&gt;
    private int price;&lt;br /&gt;
&lt;br /&gt;
    // getters methods to access private variables&lt;br /&gt;
    public int getYear() { return year; }&lt;br /&gt;
    public String getCompanyName() { return companyName; }&lt;br /&gt;
    public int getPrice() { return price; }&lt;br /&gt;
&lt;br /&gt;
    // setters methods to access and change private variables&lt;br /&gt;
    public void setYear(int newYear) { year = newYear; }&lt;br /&gt;
    public void setCompanyName(String newCompanyName) {&lt;br /&gt;
        companyName = newCompanyName;  }&lt;br /&gt;
    public void setNewPrice(int newPrice) { price = newPrice; }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Car {&lt;br /&gt;
    public static void main(String[] args)&lt;br /&gt;
    {&lt;br /&gt;
        EncapsulatedCar car = new EncapsulatedCar();&lt;br /&gt;
&lt;br /&gt;
        // setting values for the variables&lt;br /&gt;
        car.setCompanyName(&amp;quot;Tesla&amp;quot;);&lt;br /&gt;
        car.setNewPrice(200000);&lt;br /&gt;
        car.setYear(2022);&lt;br /&gt;
&lt;br /&gt;
        // Displaying values of the variables&lt;br /&gt;
        System.out.println(&amp;quot;car company: &amp;quot; + car.getCompanyName());&lt;br /&gt;
        System.out.println(&amp;quot;year &amp;quot; + car.getYear());&lt;br /&gt;
        System.out.println(&amp;quot;price of the car: &amp;quot; + car.getPrice() +&amp;quot;₪&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        // Direct access to the variables is not possible due to encapsulation&lt;br /&gt;
        // output: car company: Tesla&lt;br /&gt;
        //         year 2022&lt;br /&gt;
        //         price of the car: 200000₪&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;3. [[פולימורפיזם (מדעי המחשב)|פולימורפיזם]]&lt;br /&gt;
&lt;br /&gt;
דוגמת קוד:                                                                                                                                                   &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class Animal {&lt;br /&gt;
  public void animalVoice() {&lt;br /&gt;
    System.out.println(&amp;quot;Animals make various of voices..&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Cat extends Animal {&lt;br /&gt;
  public void animalVoice() {&lt;br /&gt;
    System.out.println(&amp;quot;The cat howl: Meow Meow!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Dog extends Animal {&lt;br /&gt;
  public void animalVoice() {&lt;br /&gt;
    System.out.println(&amp;quot;The dog bark: Woof Woof!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Animal myAnimal = new Animal();  // Create a Animal object&lt;br /&gt;
    Animal mitzi = new Cat();  // Create a Cat object&lt;br /&gt;
    Animal puppy = new Dog();  // Create a Dog object&lt;br /&gt;
    // We have now *two* different objects derived from the same super class!&lt;br /&gt;
    myAnimal.animalVoice();&lt;br /&gt;
    mitzi.animalVoice();&lt;br /&gt;
    puppy.animalVoice();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
// output: Animals make various of voices..&lt;br /&gt;
//         The cat howl: Meow Meow!&lt;br /&gt;
//         The dog bark: Woof Woof!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;4. [[אבסטרקציה (מדעי המחשב)|אבסטרקציה]]&lt;br /&gt;
&lt;br /&gt;
5. [[ממשק (תכנות)|ממשק]]&lt;br /&gt;
&lt;br /&gt;
====== יתרונותיה של java כשפה מונחית עצמים ======&lt;br /&gt;
# הופך אותה למהירה ואינטואיטיבית יותר, כיוון שתכנות זה מדמה את העולם האמיתי.&lt;br /&gt;
# מאפשר מבנה נקי, פשוט וברור לתוכניות.&lt;br /&gt;
# מפחית שימוש חוזר בקוד, הקוד קל יותר לתחזוקה, לשינוי ול[[ניפוי שגיאות]].&lt;br /&gt;
&lt;br /&gt;
== ביצועים ==&lt;br /&gt;
בראשית דרכה סבלה ג&amp;#039;אווה מביצועים גרועים, היות שמנועי זמן הריצה בוססו על [[מפרש (תוכנה)|מפרש]] בלבד. אולם, עם התפתחות השפה, הוחל שימוש בטכניקה הקרויה [[מתקמפלת בדיוק בזמן|JIT]]{{כ}} – Just In Time, אשר בבסיסה עמד העיקרון של [[הידור]] דינמי של קוד המכונה הווירטואלי לקוד המכונה הספציפי בזמן הריצה. על ידי כך מתקבלים ביצועים טובים יותר, ותאורטית אף גבוהים יותר משפת [[++C]] במצבים מסוימים (היות שההידור מתבצע תוך כדי ריצת התוכנה, יש למהדר ידע מדויק יותר על ריצת התוכנה, מה שמסייע לביצוע אופטימיזציות טובות יותר לקוד).&lt;br /&gt;
&lt;br /&gt;
גישה אחרת לנושא הביצועים מפרידה את עיקרון [[מכונה וירטואלית|המכונה הווירטואלית]] מהשפה, ומהדרת את קוד המקור ישירות לקוד מכונה ספציפי, שרץ ככל תוכנה אחרת במערכת. עם זאת, גם בהידור כזה ישנו חיסרון לעומת שפות כמו ++C שעוצבו במיוחד לאפשר ריצה מהירה. לדוגמה, כל קריאה לשיטה בג&amp;#039;אווה כוללת חיפוש בזמן ריצה של השיטה המתאימה, בניגוד לשפת ++C בה קריאה לשיטה שאינה מוגדרת כווירטואלית שקולה לקריאה לפונקציה רגילה. בנוסף לכך ג&amp;#039;אווה נודעת בצריכת זיכרון גבוהה בהשוואה לקוד דומה שנכתב בשפה כגון שפת [[C Plus Plus|++C]], זאת עקב טעינה של ספריות ניהול של המכונה הווירטואלית. צריכת זיכרון גבוהה זו באה לידי ביטוי בעיקר במערכות הפעלה מסוג [[UNIX]].&lt;br /&gt;
&lt;br /&gt;
== דוגמה לתוכנית בשפת ג&amp;#039;אווה ==&lt;br /&gt;
&lt;br /&gt;
התוכנית המופיעה להלן כתובה בשפת ג&amp;#039;אווה, והיא בודקת האם מספר שהועבר אליה הוא [[מספר ראשוני]]. הסימן &amp;quot;&amp;lt;tt&amp;gt;//&amp;lt;/tt&amp;gt;&amp;quot; מציין שהטקסט שמימינו אינו חלק מקוד התוכנית, אלא הוא הערה שמטרתה להסביר את התוכנית למתכנת הקורא אותה. התוכנית מחולקת לשתי פונקציות, האחת בודקת האם מספר נתון הוא ראשוני, והשנייה מטפלת בדיאלוג עם המשתמש: קבלת המספר לבדיקה ([[קלט]]) והצגת תוצאות הבדיקה (פלט).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Scanner;&lt;br /&gt;
&lt;br /&gt;
public class JavaProgram&lt;br /&gt;
{&lt;br /&gt;
 public static int getFactor (int num)&lt;br /&gt;
 {&lt;br /&gt;
  double sqrt = Math.sqrt(num);&lt;br /&gt;
  // try to find a factor that is not 1.&lt;br /&gt;
  for (int i = 2; i &amp;lt;= sqrt; i++) {&lt;br /&gt;
                        if (num % i == 0) // is num divisible by i?&lt;br /&gt;
                                return i;&lt;br /&gt;
  }&lt;br /&gt;
  return 1; // num is a prime.&lt;br /&gt;
 } // End of getFactor function.&lt;br /&gt;
&lt;br /&gt;
 public static String communicate (int num)&lt;br /&gt;
 { // communicate with the user.&lt;br /&gt;
  if (num &amp;lt;= 0)// is it a valid input?&lt;br /&gt;
              return &amp;quot;The checked number should be positive&amp;quot;;&lt;br /&gt;
  int factor = getFactor(num);&lt;br /&gt;
  if (factor == 1)&lt;br /&gt;
   return num + &amp;quot; is a prime&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
   return num + &amp;quot; is not a prime, &amp;quot; + num + &amp;quot; = &amp;quot; + num/factor + &amp;quot; × &amp;quot; + factor;&lt;br /&gt;
 } // End of communication function&lt;br /&gt;
&lt;br /&gt;
 public static void main (String [] args)&lt;br /&gt;
 {&lt;br /&gt;
  Scanner in = new Scanner(System.in);&lt;br /&gt;
  System.out.println(communicate(in.nextInt()));&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== גרסאות ==&lt;br /&gt;
סאן הגדירה מספר גרסאות לג&amp;#039;אווה המיועדות לסביבות שונות:&lt;br /&gt;
*Java Card&lt;br /&gt;
*Java Platform, Standard Edition {{כ}}(Java SE): סביבת הפיתוח של ג&amp;#039;אווה הכוללת [[JVM]], [[מהדר]] וכלי עזר&lt;br /&gt;
*Java Platform, Enterprise Edition {{כ}}(J2EE)&lt;br /&gt;
*Java Platform, Micro Edition {{כ}}(J2ME): גרסה למכשירים קטנים וסלולריים&lt;br /&gt;
&lt;br /&gt;
=== J2EE ===&lt;br /&gt;
{{הפניה לערך מורחב|Java Enterprise Edition}}&lt;br /&gt;
עם התרבות השימוש באינטרנט, התברר שיש צורך ביצירת תשתית של תוכנת שרת על ידי שרת התומך בג&amp;#039;אווה בשיתוף של משאבים כמו [[מסד נתונים|מסדי נתונים]] ומבני נתונים, בתמיכה בשרתי [[HTTP]] וב[[דף אינטרנט דינמי|דפים דינמיים]]. כך פותחה [[JSP]], [[טכנולוגיה]] של ג&amp;#039;אווה לבניית [[אתר אינטרנט|אתרי Web]] דינמיים. כך נוצר אוסף הכלים של ה־Enterprise Edition הנקרא בקיצור [[J2EE]]. לאחר מכן שונה השם ל-[[J2E]].&lt;br /&gt;
&lt;br /&gt;
[[שרת יישומים]] זה הצליח עד כדי כך ש[[מיקרוסופט]] מנסה ב־[[NET.]] לתת פתרון דומה. יישומים כבדים באמת כמו [[SAP (חברה)|SAP]] עזבו את העולם הסגור של Windows ובחרו לעבוד עם [[J2EE]]. ולמעשה רוב הקוד והפיתוח בג&amp;#039;אווה בימינו מבוסס על תשתיות אלו. חברות כמו BEA פיתחו שרת לתשתיות אלו ובמקביל קבוצת JBoss פיתחה שרת המבוסס על [[קוד פתוח]].&lt;br /&gt;
&lt;br /&gt;
=== J2ME ===&lt;br /&gt;
{{הפניה לערך מורחב|ערך=[[Java ME]]}}&lt;br /&gt;
&lt;br /&gt;
תכונה זו של ניתוק ממערכת ההפעלה על ידי כתיבת JVM החוצצת בין התוכנה למערכת ההפעלה אומץ לתחום אחר והוא הטלפונים החכמים כחלק מקבוצה של [[מערכת משובצת מחשב|התקנים משובצי מחשב]] (Embedded Devices). גם בתחום זה ריבוי המכשירים, מערכות ההפעלה, וסוגי המעבדים השונים נתנו יתרון לפיתוח מבוסס JVM. בתחום זה מספקת Sun את [[J2ME]]{{כ}} (Java 2 Mobile Edition), שהיא גרסה קלת־משקל וקומפקטית למכשירי טלפון סלולרי ומחשבי כף יד.&lt;br /&gt;
&lt;br /&gt;
== ראו גם ==&lt;br /&gt;
* [[Java (פלטפורמת תוכנה)]]&lt;br /&gt;
* [[מונחים בתוכנה]]&lt;br /&gt;
* [[JavaFX]]&lt;br /&gt;
* [[Java Web Start]]&lt;br /&gt;
&lt;br /&gt;
== קישורים חיצוניים ==&lt;br /&gt;
{{מיזמים|ויקיספר=Java{{כ}}}}&lt;br /&gt;
* {{אתר רשמי}}&lt;br /&gt;
* {{דף שער בספרייה הלאומית|987007561288105171|שפת תכנות מחשבים, Java}}&lt;br /&gt;
{{רשתות חברתיות}}&lt;br /&gt;
* {{בריטניקה}}&lt;br /&gt;
* [http://docs.oracle.com/javase/tutorial/ The Java Tutorials] - מדריכים לשפת ג&amp;#039;אווה באתר הרשמי של סאן/אורקל {{אנגלית}}&lt;br /&gt;
* {{ynet|גל מור|ג&amp;#039;אווה בת 10|3103993|26 ביוני 2005}}&lt;br /&gt;
* [http://java.sun.com java.sun.com] - הורדות ופיתוח {{אנגלית}}&lt;br /&gt;
* [http://www.java.com java.com] - {{אנגלית}}&lt;br /&gt;
* [http://jcp.org java.org] - {{אנגלית}}&lt;br /&gt;
* ניר אדר, מדריך ג&amp;#039;אווה בעברית [http://www.underwar.co.il/download.asp?ID=161 חלק א&amp;#039;], [http://www.underwar.co.il/download.asp?ID=162 חלק ב&amp;#039;] {{PDF}}&lt;br /&gt;
* מדריך נוסף בעברית - מכללת HIT שבחולון [https://web.archive.org/web/20110211011928/http://javabook.co.il/wp/?page_id=10 המדריך הישראלי ל־Java]&lt;br /&gt;
* {{TheMarker||סאן משדרגת טכנולוגיות ג&amp;#039;אווה – ושומרת על דיסקרטיות בסוגיית אורקל|1.1762520|21 בדצמבר 2009}}&lt;br /&gt;
&lt;br /&gt;
== הערות שוליים ==&lt;br /&gt;
{{הערות שוליים}}&lt;br /&gt;
&lt;br /&gt;
{{Java}}&lt;br /&gt;
&lt;br /&gt;
{{בקרת זהויות}}&lt;br /&gt;
&lt;br /&gt;
[[קטגוריה:Java|*]]&lt;br /&gt;
[[קטגוריה:שפות תכנות מונחות עצמים]]&lt;/div&gt;</summary>
		<author><name>imported&gt;לוכסן</name></author>
	</entry>
</feed>