סוג הנתונים נקבע על ידי שלושה מרכיבים:
שפת התכנות מכילה כמה סוגים מובנים מוגדרים מראש ומאפשרת למתכנתים להגדיר את אלה המותאמים אישית שלהם.
ב- Java, סוגי הנתונים מחולקים לפרימיטיביות ולהתייחסות.
"פרימיטיבי" פירושו עוד יותרחלוקה בלתי אפשרית. כדי להרחיב או לשנות את שפת התכנות שלה אינו מאפשר. סוג נתונים זה מתואר על ידי סוגים מותאמים אישית פרימיטיביים ואחרים.
משתנה מסוג פרימיטיבי מכיל ערך ומשתנה התייחסות מכיל את הכתובת של אובייקט בזיכרון.
נתונים מרוכבים מחולק לשיעורים, ממשקים ומערכים. חברי סוג הממשק הם שיטות מופשטות וקבועים. ב- Java, סוגי נתוני התאריך והשעה נקבעים על-ידי הבנאי תאריך ():
דוגמה לקישור היא גם מחרוזת.
מחרוזת היא כיתה המוגדרת בספריית Java, וניתן להשתמש בה לעבודה עם טקסט (רצף של תווים).
ההכרזה על משתנה מחרוזת התייחסות היא כדלקמן: מחרוזת מחרוזת.
לפני שתקצה הפניה לאובייקט למשתנה כזה, עליך ליצור אותו באמצעות המפעיל החדש. לדוגמה, אתה יכול ליצור אובייקט מחרוזת המחלקה עם הטקסט "שלום":
מה קורה כאשר קוד זה מופעל?ראשית, מוקצה זיכרון, ושם str משויך לתא זיכרון זה. זה לא שונה מהצהרת משתנה פרימיטיבי. קטע הקוד השני יוצר אובייקט מחרוזת בזיכרון עם הטקסט "שלום" ושומר קישור אליו (או כתובת הזיכרון) ב- str.
סוגי נתונים שהופנו לג'אווה מאפשרים גםלהקצות הפניה לאובייקט המאוחסן במשתנה אחד למשנהו. שניהם מתייחסים לאותו אובייקט בזיכרון. ניתן להשיג זאת באופן הבא:
יש הפניה קבועה אפסית שניתן להקצות לכל משתנה הפניה. זה לא מתייחס לאף אובייקט.
אובייקט מחרוזת נוצר באמצעות האופרטור החדש.אך מכיוון שמשתמשים הרבה בחוטים, יש דרך קלה יותר ליצור אותו. כל מילוליות המחרוזת, כלומר רצף של תווים הכלואים במרכאות כפולות, מתייחסים לאובייקטים של מחרוזת. לכן, במקום האופרטור החדש, אתה יכול להשתמש במילולי מחרוזות:
סוגי נתונים פרימיטיביים של Java - בתים, קצרים, אינט,ארוך, שרוף, צף, כפול ובוליאני. הם מתחלקים לשתי קטגוריות: לוגיות ומספריות. זה האחרון ניתן לפצל למספרים שלמים ומספרי נקודה צפה.
סוגי נתונים שלמים של Java הם סוגים מספריים שערכיהם הם מספרים שלמים. ישנם חמישה מהם: בתים, קצרים, אינטיים, ארוכים וחרוכים.
Int הוא סוג נתונים פרימיטיבי חתום על 32 סיביות. המשתנה לוקח 32 סיביות של זיכרון. הטווח התקף הוא -2147483648 עד 2147483647 (-231 עלה ל 231 - אחד). כל המספרים השלמים בתחום זה הם מספרים שלמים או קבועים. לדוגמה, 10, -200, 0, 30, 19 הם מילוליים אינטל. ניתן להקצות אותם למשתנה int:
מילוליות שלמות יכולות לבוא לידי ביטוי כמספרים בינאריים, אוקטאליים, עשרוניים והקסדצימאליים.
כאשר מילולית מתחילה באפס ויש לה שתי ספרות לפחות, היא נחשבת לפורמט אוקטלי. 0 ו- 00 מייצגים את אותו ערך - אפס.
כל מילוליות int בפורמט הקסדצימלי מתחילות ב- 0x או 0x וחייבות להכיל ספרה הקסדצימאלית אחת לפחות:
מילוליות אינטנס בפורמט בינארי מתחילות ב- 0b או 0B:
זהו סוג פרימיטיבי חתום על 64 סיביות. משמש כאשר תוצאת החישוב עשויה לחרוג מתחום ה- int. טווח ארוך - מ -263 עלה ל 263- 1. כל המספרים השלמים בתחום זה הם מילוליות ארוכות.
כדי להבחין בין סוגי נתונים int ו- long ב- Java, המילולי מהסוג האחרון תמיד מסתיים ב- L או l.
ליטרלים שלמים מסוגים ארוכים יכולים לבוא לידי ביטוי גם בתבניות אוקטליות, הקסדצימליות ובינאריות.
כאשר מילולית ארוכה מוקצה למשתנה ארוך,מהדר Java בודק את הערך שהוקצה ומוודא שהוא נמצא בטווח מקובל; אחרת, תתרחש שגיאת אוסף.
מכיוון שטווח האינטנס קטן מזה של ארוך,הערך של משתנה int תמיד יכול להיות מוקצה למשתנה מסוג ארוך. אך ההקצאה ההפוכה אינה אפשרית אפילו בטווח של int. לשם כך משתמשים באינדיקציה מפורשת:
בייט הוא סוג פרימיטיבי שלם של 8 סיביות. הטווח שלה הוא -128 עד 127 (-27 עלה ל 27 - אחד). זהו סוג המספר השלם הקטן ביותר הקיים ב- Java.ככלל, משתמשים במשתני בתים כאשר התוכנית כוללת ערכים רבים בטווח שבין -128 ל- 127, או כאשר עובדים עם נתונים בינאריים. שלא כמו מילוליות אינטנסיביות וארוכות, אין מילולי בתים. עם זאת, ניתן להקצות כל מילולית אינטלי למשתנה בתים, מכיוון שהוא חופף לטווח הבתים.
אם הערך של המשתנה נמצא מחוץ לטווח, ג'אווה תזרוק שגיאת מהדר.
בנוסף, באפשרותך להקצות רק מילולית אינט, אך לא את הערך המאוחסן במשתנה int, מכיוון שהדבר עלול לגרום לאובדן דיוק. זה ידרוש צוות שחקנים מפורש.
מייצג סוג נתונים פרימיטיבי שלם של 16 סיביות. הטווח שלו הוא -32768 עד 32767 (או -215 עלה ל 215 - 1).
בדרך כלל הצורך במשתנים קצריםמתרחשת כאשר תוכנית משתמשת במספר רב של ערכים שאינם חורגים מהטווח שצוין. אין מילולית קצרה, אך ניתן להקצות כל אינטראלי בטווח הקצר. תמיד ניתן להקצות ערך של משתנה בתים. שאר הכללים להקצאת אינט או ארוך לקצר זהים לבייט.
Char אינו בעל 16 סיביותסוג נתונים פרימיטיבי המייצג תו של Unicode. היעדר סימן פירושו שהמשתנה אינו יכול להיות בעל ערך שלילי. הטווח הוא 0 עד 65535, שתואם את הקידוד של ערכת התווים Unicode. מילולית מייצגת ערך פחם ויכולה לבוא לידי ביטוי בצורות הבאות:
ניתן לבטא סמל על ידי סגירתו פנימהציטוטים בודדים: char C1 = "A". מרכאות כפולות מציינות מילולית מחרוזת שלא ניתן להקצות למשתנה char, גם אם המחרוזת מכילה תו אחד בלבד. זה לא מותר מכיוון שלא מוקצה הפניה למשתנה פרימיטיבי. כל מילולי המיתרים הם אובייקטים מחרוזתיים ולכן הפניות, ואילו מילולי תווים הם מהסוג הפרימיטיבי.
רצף מילוט מילולי כתוב כמתלה אחורי ואחריו דמות במרכאות בודדות. ישנם 8 מהם בסך הכל: 'n', 'r', 'f', 'b', 't', '\', '"', '' '.
רצף הבריחה של יוניקוד הוא"uxxxx", שם u (קו נטוי אחורי ואחריו אות u) מציין את תחילתו ו- xxxx מייצג בדיוק ארבע ספרות הקסדצימליות של קוד התו של Unicode. לדוגמה, "A" הוא 65 עשרוני ו- 41 הקסדצימלי. לפיכך, ניתן לייצג דמות זו כ- "u0041".
רצף הבריחה האוקטאלי כתוב כ- nnn, כאשר n הוא ספרה אוקטלית (0-7). הערכים נעים בין "00" ל"377 ", שם 3778 תואם 25510... לכן משתמשים בו לייצוגתווים עם קוד בין 0 ל -255, הנדרשים לצורך תאימות עם שפות תכנות אחרות. בניגוד לרצפי unicode, הדורשים את כל ארבע הספרות ההקסדצימליות, תוכלו להשתמש כאן בספרות 1, 2 או 3 אוקטליות: "n", "nn" או "nnn".
לבוליאנית יש רק שני ערכים תקפים:נכון ולא נכון. הם נקראים מילוליות בוליאניות. לא ניתן להטיל משתנה בוליאני לסוג אחר ולהיפך. Java אינה מציינת את גודל הבוליאן - זה תלוי ביישום הספציפי של ה- JVM.
מספר המכיל חלק חלקי בזיכרוןניתן לאחסן את המחשב בייצוג עם מספר ספרות קבוע לפני ואחרי הנקודה או המציין את מיקומו. מכיוון שמספר הספרות יכול להשתנות, נאמר שהנקודה "צפה".
בשפת Java, סוגי נתונים של נקודות צפות משתמשים ב -32 ביט. על פי תקן IEEE 754, זה תואם דיוק יחיד, המאפשר לך לייצג, למשל, מספרים 1.4 x 10-45 ו -3.4 x 1038, חיובי ושלילי כאחד.
כל המספרים האמיתיים שמסתיימים ב- f או F נקראים ליטרלים צפים. ניתן לייצג אותם בתבנית עשרונית ובסימון מדעי. לדוגמה:
הסוג מגדיר שני אפסים: + 0.0F (או 0.0F) ו- -0.0F.עם זאת, לצורך השוואה, שני האפסים נחשבים שווים. בנוסף הגדיר שני סוגים של אינסוף: חיובי ושלילי. התוצאות של פעולות מסוימות (לדוגמא חלוקת 0.0F על 0.0F) אינן מוגדרות ומיוצגות על ידי הערך המיוחד NaN.
כפול משתמש ב -64 ביט כדי לאחסן מספרי נקודות צפות. מספרים מדויקים כפולים יכולים לייצג ערכים חיוביים ושליליים של 4.9 x 10-324 ו- 1.7 x 10308.
כל המספרים האמיתיים הם כברירת מחדלמילוליות כפולות. באופן אופציונלי, ניתן לציין אותם במפורש עם הסיומת d או D, למשל, 19.27d. המילולי הכפול יכול לבוא לידי ביטוי בצורה עשרונית ובסימון מדעי.