logo

מבוא ל-Java

Java היא שפת תכנות מונחה עצמים, מבוססת כיתה. השפה נועדה לכלול כמה שפחות יישומי תלות. הכוונה בשימוש בשפה זו היא לתת הקלה למפתחים מכתיבת קודים לכל פלטפורמה. המונח WORA, לכתוב פעם אחת ולרוץ בכל מקום מזוהה לעתים קרובות עם השפה הזו. זה אומר שבכל פעם שאנחנו קומפילים קוד ג'אווה, אנחנו מקבלים את קוד הבתים (קובץ .class), וזה יכול להתבצע (מבלי להדר אותו שוב) בפלטפורמות שונות בתנאי שהן תומכות ב-Java. בשנת 1995 פותחה שפת Java. הוא משמש בעיקר לפיתוח אינטרנט, שולחן עבודה ומכשירים ניידים. שפת Java ידועה בתכונות החוסן, האבטחה והפשטות שלה. זה נועד לקבל כמה שפחות תלות ביישום.

הִיסטוֹרִיָה

לשפת Java יש היסטוריה מאוד מעניינת. פטריק נאוטון, מייק שרידן וג'יימי גוסלינג, הידוע כצוות הירוק, התחילו בפיתוח של ג'אווה בשנת 1991. האנשים האלה היו המהנדסים ב- סאן מיקרוסיסטמס . בשנת 1996, היישום הציבורי הראשון שוחרר כ-Java 1.0. המהדר של Java 1.0 נכתב מחדש על ידי ארתור ואן הוף כדי לעמוד בקפדנות במפרט שלו. עם הצגת Java 2, לגרסאות החדשות יש מספר תצורות שונות שנבנו עבור הפלטפורמות השונות. ראוי לציין שג'יימס גוסלינג ידוע גם כאבי ג'אווה.

סאן מיקרוסיסטמס פנתה לגוף התקן ISO בשנת 1997 כדי להמציא את Java, אך התהליך הוסר במהרה. בנקודת זמן מסויימת, Sun Microsystems סיפקה את רוב ההטמעה שלה ב-Java זמין ללא כל עלות, למרות שהייתה בעלת הסטטוס של תוכנה קניינית.

המרת תאריך מחרוזת

תוכניות יישומים

היישום של תוכנית יישום ביישום Java כולל את השלבים הבאים.

  1. יצירת התוכנית (כתיבת הקוד)
  2. אוסף התוכנית.
  3. ביצוע הקוד המהודר.

כאן המקום לציין שיש להתקין את JDK (ערכת פיתוח ג'אווה) כראוי על המערכת, ויש להגדיר גם את הנתיב.

התוכנית יצירת

את תוכנית Java ניתן לכתוב באמצעות עורך טקסט (Notepad++ או NotePad או עורכים אחרים יעשו גם את העבודה.) או IDE (Eclipse, NetBeans וכו').

שם קובץ: TestClass.java

 public class TestClass { // main method public static void main(String []args) { // print statement System.out.println('Hello World is my first Java Program.'); } } 

כתוב את הקוד לעיל ושמור את הקובץ בשם TestClass. הקובץ צריך לכלול את .java סיומת.

אוסף התוכנית

פתח את שורת הפקודה והקלד javac TestClass.java . javac היא הפקודה שגורמת למהדר Java לפעול כדי להדר את תוכנית Java. לאחר הפקודה, עלינו לשים את שם הקובץ שצריך להידור. במקרה שלנו זה כן TestClass.java . לאחר ההקלדה, לחץ על כפתור ה-Enter. אם הכל ילך כשורה, ייווצר קובץ TestClass.class המכיל את קוד הבתים. אם יש שגיאה כלשהי בתוכנית, המהדר יצביע עליה, ו TestClass.class לא ייווצר.

הפעלה / הפעלה של התוכנית

לאחר יצירת קובץ ה-.class, הקלד Java TestClass כדי להפעיל את התוכנית. הפלט של התוכנית יוצג על המסוף, המוזכר להלן.

תְפוּקָה:

 Hello World is my first Java Program. 

השם Java

בתחילה, השם אלון ניתן לשפה. עם זאת, הצוות החליט שיש לתת שם חדש לשפה, והוצעו מילים כמו, DNA, מהפכני, Jolt, Dynamic, Silk וכו'. את כל השמות האלה היה כיף להגיד וקל לאיית. אבל מה שחסר היה מהות השפה בשמות המוצעים, שהצוות רצה לקבל. לפי ג'יימס גוסלינג, ג'אווה ומשי היו שתיים מהאפשרויות הפופולריות ביותר, ומכיוון שלג'אווה היה שם ייחודי, רוב האנשים העדיפו אותה.

ג'אווה הוא גם שם של אי באינדונזיה שבו הופק קפה (ששמו Java Coffee). השם ג'אווה נבחר על ידי ג'יימס גוסלינג מכיוון ששתה קפה ליד משרדו. על הקוראים לשים לב ש-Java אינו ראשי תיבות. זה רק שם.

הטרמינולוגיות בג'אווה

JVM (מכונה וירטואלית של ג'אווה): JVM הוא המפרט המאפשר את סביבת זמן הריצה בה מתרחשת ביצוע ה-Java bytecode. בכל פעם שמשתמשים בפקודה ג'אווה, נוצר מופע של ה-JVM . JVM מקל על ההגדרה של אזור הזיכרון, ערכת האוגר, פורמט קובץ הכיתה ודיווח שגיאות קטלני. שימו לב שה-JVM תלוי בפלטפורמה.

קוד בייט: כבר נדון בחלק המבוא שהמהדר של Java מקמפל את קוד ה-Java כדי ליצור את קובץ ה-.class או את קוד הבתים. יש להשתמש ב- javac פקודה להפעיל את מהדר Java.

ערכת פיתוח Java (JDK): זוהי ערכת הפיתוח המלאה של Java המקיפה הכל, כולל JRE(Java Runtime Environment), מהדר, Java docs, debuggers וכו'. JDK חייב להיות מותקן במחשב לצורך יצירה, הידור והפעלה של תוכנית Java.

סביבת זמן ריצה של Java (JRE): JRE הוא חלק מה-JDK. אם במערכת מותקנת רק JRE, המשתמש יכול להריץ את התוכנית בלבד. במילים אחרות, רק ה java הפקודה עובדת. הידור של תוכנית Java לא יהיה אפשרי (ה javac הפקודה לא תעבוד).

אוסף זבל: מתכנתים אינם מסוגלים למחוק אובייקטים ב-Java. על מנת לעשות זאת, ל-JVM יש תוכנית המכונה Garbage Collector. אספני אשפה זוכרים או מוחקים חפצים ללא הפניה. Garbage Collector מקל על חייו של מפתח/מתכנת מכיוון שהם לא צריכים לדאוג לניהול זיכרון.

נתיב כיתה: כפי שהשם מרמז, classpath הוא הנתיב שבו מהדר Java וזמן הריצה של Java מחפשים את קובץ ה-.class כדי לטעון. ספריות מובנות רבות מסופקות על ידי JDK. עם זאת, אם מישהו רוצה להשתמש בספריות החיצוניות, יש להוסיף אותו ל-classpath.

תכונות בולטות של Java

עצמאית בפלטפורמה: במקום ליצור ישירות את קובץ ה-.exe, מהדר Java ממיר את קוד ה-Java לקוד בתים, וניתן להפעיל קוד בתים זה בפלטפורמות שונות ללא כל בעיה, מה שהופך את Java לשפה עצמאית בפלטפורמה. שימו לב שכדי להפעיל את קוד הבתים, יש להתקין JVM במערכת, שהיא תלוית פלטפורמה.

שפת תכנות מונחה עצמים: הרעיון של תכנות מונחה עצמים מבוסס על הרעיון של אובייקטים ומחלקות. כמו כן, קיימות מספר איכויות בתכנות מונחה עצמים. כמה מהם מוזכרים להלן.

  • הַפשָׁטָה
  • יְרוּשָׁה
  • רב צורתיות
  • כימוס

שפת ג'אווה עושה שימוש נרחב גם במושגים של מחלקות ואובייקטים. כמו כן, כל התכונות הללו שהוזכרו לעיל קיימות ב-Java, מה שהופך את Java לשפת תכנות מונחה עצמים. שימו לב ש-Java היא שפת תכנות מונחה עצמים אך לא 100% מונחה עצמים.

שחקן זינאט אמן

פָּשׁוּט: ג'אווה נחשבת לשפה פשוטה מכיוון שאין בה את הרעיון של מצביעים, ירושות מרובות, הקצאת זיכרון מפורשת או עומס יתר של מפעילים.

חָסוֹן:

שפת Java חזקה מאוד. המשמעות של חזק היא אמינה. שפת Java מפותחת בצורה כזו שהרבה בדיקות שגיאות נעשות מוקדם ככל האפשר. מסיבה זו שפה זו יכולה לזהות את השגיאות שקשה לזהות בשפות תכנות אחרות. טיפול בחריגים, איסוף אשפה והקצאת זיכרון הם התכונות שהופכות את Java לחזקה.

לבטח: ישנן מספר שגיאות כמו הצפת מאגר או שחיתות מחסנית שלא ניתן לנצל בשפת Java. אנו יודעים שלשפת Java אין מצביעים. לכן, לא ניתן לקבל גישה למערכים מחוץ לתחום. אם מישהו מנסה לעשות זאת, ArrayIndexOutofBound Exception מועלה. כמו כן, ההפעלה של תוכניות Java מתרחשת בסביבה שאינה תלויה לחלוטין במערכת ההפעלה, מה שהופך את השפה הזו לאבטחה עוד יותר.

מופץ: ניתן ליצור אפליקציות מבוזרות בעזרת שפת Java. שעועית Java Enterprise ו-Remote Method Invocation משמשים ליצירת יישומים מבוזרים. הפצת תוכניות Java יכולה להתרחש בקלות בין מערכת אחת או יותר המחוברות זו לזו באמצעות האינטרנט.

ריבוי שרשורים: שפת Java תומכת בריבוי שרשורים. תכונת ריבוי ההליכים תומכת בביצוע של שני חלקים או יותר של התוכנית במקביל. לפיכך, ניצול ה-CPU מוגדל.

הִטַלטְלוּת: אנו יודעים ש-Java היא שפה בלתי תלויה בפלטפורמה. לפיכך, ניתן לקחת את קוד הבתים שנוצר במערכת אחת בכל פלטפורמה אחרת לביצוע, מה שהופך את Java לנייד.

ביצועים ברמה גבוהה: הארכיטקטורה של ג'אווה נוצרת בצורה כזו שהיא מקטינה את התקורה של זמן הריצה. במקומות מסוימים, Java משתמשת במהדר JIT (Just In Time) כאשר הקוד מורכב על בסיס דרישה, כאשר המהדר מבצע רק קומפילציה של השיטות המופעלות ובכך גורם לביצוע מהיר יותר של יישומים.

היגדים לוגיים

גמישות דינמית: שפת Java עוקבת אחר פרדיגמת התכנות מונחה עצמים, המעניקה לנו את החופש להוסיף שיטות ומחלקות חדשות למחלקות הקיימות. שפת Java תומכת גם בפונקציות המוזכרות בשפות C/C++ ואשר בדרך כלל מכונה השיטות המקוריות.

ביצוע SandBox: עובדה ידועה היא שתוכניות Java מבוצעות בסביבות שונות, מה שנותן למשתמשים חופש להפעיל את היישומים שלהם מבלי להשפיע על המערכת הבסיסית באמצעות מאמת ה-bytecode. מאמת Bytecode מעניק גם אבטחה נוספת מכיוון שהוא בודק את הקוד לאיתור הפרת גישה.

כתוב פעם אחת לרוץ בכל מקום: קוד ה-Java נערך על ידי המהדר כדי לקבל את קובץ ה-.class או את קוד הבתים, שאינו תלוי לחלוטין בארכיטקטורת מכונה כלשהי.

שפה מלוקטת ומפורשת: רוב השפות הן שפה מתפרשת או השפה המורכבת. עם זאת, במקרה של שפת Java, היא מורכבת כמו גם השפה המתפרשת. קוד ה-Java מורכב כדי לקבל את ה-bytecode, וה-bytecode מתפרש על ידי המתורגמן מבוסס התוכנה.

כמה תוכניות ב-Java

להלן מספר תוכניות Java בסיסיות.

תוכנית - 1

שם קובץ: DemoClass.java

 // Importing different classes import java.io.*; // Main class public class DemoClass { // main method public static void main(String argvs[]) { System.out.println('Welcome to javaTpoint.'); } } 

תְפוּקָה:

 Welcome to javaTpoint. 

תוכנית - 2

שם קובץ: AddMul.java

מחרוזת פיצול c++
 // Computing the sum and product of the two numbers public class AddMul { // main method public static void main(String argvs[]) { int a1; int a2; int add = 0; int prod = 0; a1 = 12; a2 = 14; add = a1 + a2; // addition prod = a1 * a2; // multiplication System.out.println('Sum = ' + add); System.out.println('Product = ' + prod); } } 

תְפוּקָה:

 Sum = 26 Product = 168 

תוכנית - 3

שם קובץ: ComputeAv.java

 // A Java program to allow the user to input two numbers from the user and compute its average. import java.util.*; public class ComputeAv { // main method public static void main(String argvs[]) { double a1; double b1; double sum1 = 0; double avg1 = 0; Scanner scnr = new Scanner(System.in); System.out.println('Input the First Number: '); a1 = scnr.nextDouble(); System.out.println('Input the Second Number: '); b1 = scnr.nextDouble(); sum1 = a1 + b1; // computing the sum avg1 = sum1 / 2; // computing the average System.out.println('Average = ' + avg1); } } 

תְפוּקָה:

 Input the First Number: 4 Input the Second Number: 5 Average = 4.5 

תוכנית - 4

שם קובץ: FahrenheitCelsius.java

 // A Java program that converts Celsius to Fahrenheit using formula // Fahrenheit = ((Celsius / 5) x 9 ) + 32 // import statement for taking input import java.util.Scanner; public class FahrenheitCelsius { // main method public static void main(String argvs[]) { double cel, far; Scanner scnr = new Scanner(System.in); System.out.println('Input the temperature in Celsius: '); cel = scnr.nextDouble(); far = ((cel / 5.0) * 9.0) + 32; System.out.println('Temperature in Fahrenheit is: ' + far); } } 

תְפוּקָה:

 Input the temperature in Celsius: 15 Temperature in Fahrenheit is: 59.0 

תוכנית - 5

שם קובץ: TriangleArea.java

 // A Java program for computing the triangle's area using its three sides // using heron's formula. import java.util.Scanner; public class TriangleArea { // main method public static void main(String[] argvs) { int s1, s2, s3; double halfPeri, ar; Scanner scnr = new Scanner(System.in); System.out.print('Enter the value of triangle's three sides:'); // taking user inputs s1 = scnr.nextInt(); s2 = scnr.nextInt(); s3 = scnr.nextInt(); // computing half perimeter halfPeri = (s1 + s2 + s3) / 2; // computing area of the triangle ar = Math.sqrt(halfPeri * (halfPeri - s1) * (halfPeri - s2) * (halfPeri - s3)); System.err.println('Triangles Area: ' + ar); } } 

תְפוּקָה:

 Enter the value of triangle's three sides: 15 16 17 Triangles Area: 109.98181667894016 

תיאור של מילות מפתח שונות בשימוש בתוכניות לעיל

//: הוא משמש להצבת הערות בקוד כדי להפוך אותו לקריאה יותר עבור הקוראים. המהדר מתעלם לחלוטין מההערות בזמן הידור התוכנית. להערה מרובת שורות, אנו משתמשים: /* … */

פרוטוקולי שכבת קישור נתונים

main() שיטה: השיטה החשובה ביותר של התוכנית שבה מתחיל הביצוע. לכן, כל ההיגיון חייב לשכון בשיטה הראשית. אם המתודה main() אינה מכילה את הלוגיקה, אז היא תהיה שם בשיטה אחרת, אך יש להפעיל את השיטה הזו מהשיטה main() ישירות או בעקיפין.

מעמד: מחלקת מילת המפתח משמשת להצהרת מחלקה בשפת Java.

בָּטֵל: זה אומר שהפונקציה או השיטה לא יחזירו כלום.

System.out.println(): הוא משמש להדפסת הצהרות, דפוסים וכו' על הקונסולה.

מחרוזת argvs[]: זהו ארגומנט שורת פקודה המשמש לקליטת קלט.

פּוּמְבֵּי: זוהי מילת מפתח של מפרט גישה. כאשר היא מיושמת על שיטה, שיטה זו גלויה לכל. מילות מפתח אחרות של מפרט גישה הן, פרטיות, מוגנת וברירת מחדל.

ייבוא ​​java.io.*: זה אומר שכל השיעורים נמצאים בחבילה java.io מיובא. חבילת java.io מקלה על זרמי הפלט והקלט לכתיבה וקריאה של נתונים לקבצים. * פירושו הכל. אם רוצים לייבא רק מחלקה מסוימת, אז החליפו את ה-* בשם המחלקה.

System.in: זהו זרם הקלט שמשמש לקריאת תווים מהתקן נותן קלט, שהוא בדרך כלל מקלדת במקרה שלנו.

סטטי void main(): מילת המפתח הסטטית אומרת שניתן לגשת למתודה מבלי לבצע מופע של המחלקה.

System.out: מכיוון ש-System.in משמש לקריאת התווים, System.out משמש לתת את התוצאה של התוכנית על התקן פלט כגון מסך המחשב.

כפול, int: סוגי הנתונים השונים, int עבור המספרים השלמים, כפול כפול. סוגי נתונים אחרים הם char, בוליאן, float וכו'.

println(): השיטה מציגה את הטקסטים בקונסולה. השיטה מדפיסה את הטקסט למסך ולאחר מכן עוברת לשורה הבאה. עבור השורה הבאה, נעשה שימוש ב-ln. אם איננו רוצים שהסמן יעבור לשורה הבאה, השתמשו בשיטה print().