JavaRush /وبلاگ جاوا /Random-FA /Literals در جاوا

Literals در جاوا

در گروه منتشر شد
در مرحله ایجاد یک برنامه، توسعه دهنده، به عنوان یک قاعده، فقط ساختار آن را می داند و فرض نمی کند که چه داده هایی را پردازش می کند. با این حال، در برخی شرایط، باید به صراحت برخی از داده ها را در کد برنامه مشخص کنید (مثلاً تعداد تکرارها یا پیامی که باید خروجی شود). در این مورد، لفظی به نجات می آیند. محتوا:

حروف تحت اللفظی چیست؟

Literals مقادیر مشخص شده در کد برنامه هستند - ثابت هایی از نوع خاصی که در زمان راه اندازی در کد هستند.
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
در این کلاس "سلام دنیا!" - تحت اللفظی لفظ ها انواع مختلفی دارند که بر اساس هدف و نحوه نگارش آنها تعیین می شود.

انواع لفظ و کاربرد آنها

همه لفظ ها مقادیر ابتدایی هستند (رشته ها، اعداد، کاراکترها، بولی ها). شما نمی توانید یک شی تحت اللفظی ایجاد کنید. تنها کلمه مرتبط با یک شیء است null. بر اساس بدوی، لفظ ها نیز به بخش هایی تقسیم می شوند:
  1. عددی:
    • اعداد صحیح؛
    • نقطه شناور؛
  2. رشته؛
  3. شخصیت؛
  4. بازی فکری.

حروف عددی

حروف اعداد صحیح

این نوع تحت اللفظی ساده ترین است. اعداد به شکل استاندارد خود بدون نشان دادن کاراکتر یا چیز دیگری نوشته می شوند. هر عدد صحیح به طور پیش فرض یک عدد صحیح واقعی است. به این معنا که می توانید به صراحت مقدار یک متغیر یا تعداد تکرارها را در یک حلقه تنظیم کنید. جاوا از 4 سیستم شماره پشتیبانی می کند:
  • دودویی
  • هشتی
  • اعشاری
  • هگزادسیمال
JDK 7 قابلیت نوشتن مقادیر باینری را معرفی کرد . این کار با استفاده از پیشوند 0b یا 0B انجام می شود . بعد نوشتن با استفاده از 0 و 1 می آید. اعداد به صورت اکتال با استفاده از 0 ابتدایی نوشته می شوند. ارقام معتبر 0 تا 7 هستند. نوشتن 09 یا 08 باعث خطای کامپایل می شود. هیچ مشکلی در سیستم اعداد اعشاری وجود ندارد : اعداد به شکلی که ما با آن آشنا هستیم نشان داده می شوند. تنها محدودیت این است که عدد نمی تواند با 0 شروع شود، زیرا کامپایلر آن را به عنوان اکتال در نظر می گیرد. اعداد در هگزادسیمال با استفاده از پیشوندهای 0x و 0X نوشته می شوند. اعداد معتبر از 0 تا 15 هستند که اعداد 10-15 به ترتیب با نمادهای AF نشان داده می شوند.
public static void main(String[] args) {
       int a = 0b1101010110;
       int b = 012314;
       int c = 456;
       int d = 0x141D12;
       System.out.println("Число a в двоичной системе: " + a);
       System.out.println("Число b в восьмеричной системе: " + b);
       System.out.println("Число c в десятичной системе: " + c);
       System.out.println("Число d в шестнадцатеричной системе: " + d);
}
خروجی: عدد a در سیستم دودویی: 854 عدد b در سیستم هشت عددی: 5324 عدد c در سیستم اعشاری: 456 عدد d در سیستم هگزادسیمال: 1318162 با وجود اینکه اعداد در سیستم‌های عددی مختلف مشخص می‌شوند، در برنامه به صورت اعشاری پردازش می‌شوند. شماره. تجاوز از مقادیر باعث خطای کامپایل می شود:
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
هنگام اجرا در مرحله کامپایل، نتیجه زیر را دریافت می کنیم:

Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
در مورد تایپ چطور؟ هر عدد صحیح واقعی دارای یک نوع پیش فرض است int. اگر مقدار آن خارج از محدوده متغیر اختصاص داده شده باشد، یک خطای کامپایل رخ می دهد. هنگام استفاده از یک نوع، longباید علامتی در انتهای آن قرار دهید Lکه این نوع را نشان می دهد:
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
تلاش برای کامپایل با خطای زیر مواجه می شود:

Error(11, 26) java: integer number too large: 1101010110

حروف ممیز شناور

اعداد ممیز شناور یا اعداد کسری را می توان به دو صورت نوشت. اولی به عنوان کسر اعشاری کلاسیک است: 3.14159 یا 2.718281282459045. دومی به صورت علمی است، یعنی یک کسر اعشاری معمولی به اضافه یک پسوند به شکل نماد e یا E و توان 10 که باید کسر مشخص شده در آن ضرب شود. به عنوان مثال، 4.05E-13، این به معنای 4.05 * 10 -13 است .
double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
خروجی: نوع دوبل کلاسیک: 2.718281828459045 نوع دوگانه علمی: 4.05E-13 برخلاف اعداد صحیح و سیستم های اعداد، نماد علمی در یک متغیر ذخیره می شود و به همان روش نمادگذاری کلاسیک پردازش می شود. در مورد تایپ کردن چطور؟ هر عدد ممیز شناور یک نوع ایجاد می کند double. اگر باید از نوع استفاده کنید float، باید یک fیا در انتها اضافه کنید F. در این صورت doubleبه تایپ کاهش می یابد float. این به طور خودکار اتفاق نمی افتد:
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
هنگام شروع در مرحله کامپایل، خطای زیر را مشاهده می کنیم:

Error:(11, 27) java: incompatible types: possible lossy conversion from double to float

حروف رشته ای

لفظ رشته ای مجموعه ای از کاراکترها هستند که در گیومه های دوتایی محصور شده اند. این نوع اغلب به اندازه لفظ عددی استفاده می شود. این خط همچنین ممکن است شامل کاراکترهای سرویس باشد که باید از آنها فرار کرد (به اصطلاح دنباله های فرار). مثال:
String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, How и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
خروجی: این یک رشته معمولی است. به همان اندازه استاندارد و غیرقابل توجه مانند بقیه ما. و این یک "خط" غیر معمول است. اگر فقط به این دلیل که برخی از "کلمات" در آن در "نقل قول" هستند.

حروف نویسه

حروف واقعی کاراکترها در جاوا با مجموعه کاراکترهای یونیکد نشان داده می شوند، یعنی هر کاراکتر یک مقدار 16 بیتی است. برای نشان دادن یک نماد در کد، آن را با یک نقل قول جدا می کنند. بر اساس تجربه، دو نوع نماد وجود دارد:
  1. آنهایی که می توان از صفحه کلید وارد کرد، کاراکترهای معمولی هستند.
  2. نمادهایی که نمی توان به سادگی از صفحه کلید وارد کرد (نمادهای زبان های مختلف، اشکال و غیره).
کاراکترهای معمولی را می توان به صراحت مشخص کرد: " ," یا " @". اگر یک کاراکتر یک کاراکتر خدماتی است (مثلاً یک خط شکسته یا تب)، چنین کاراکتری باید با یک اسلش برگشت داده شود. کاراکترهایی که نمی توانند به سادگی از کنسول وارد شوند را می توان به شکل 16 بیتی آنها مشخص کرد. برای انجام این کار، باید کد کاراکتر را با پیشوند مشخص کنید \u، برای مثال " \u00F7". شما همچنین می توانید کاراکترها را به سبک هشتی (عدد سه رقمی) با اضافه کردن یک اسلش در ابتدا، به عنوان مثال " \122" مشخص کنید. به نظر من استفاده از آن بسیار راحت تر است \u. مثال استفاده:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
خروجی: نماد آمپرسند - & تقسیم - ÷

حروف بولی

ساده ترین حرف منطقی است. فقط 2 مقدار وجود دارد: falseو trueکه به صراحت و بدون علامت های مختلف مشخص شده اند. چنین لفظی را می توان به متغیرهایی از نوع boolean نسبت داد یا در مکانی مشخص کرد که نوع boolean مورد انتظار است (به عنوان مثال، در یک بلوک if، اگرچه این عمل، به بیان ملایم، رفتار بدی تلقی می شود).
boolean flag = false;

if(true) {
    // Действия будут выполняться всегда.
}

تکنیک جدی با لفظ

به لطف نمادها در جاوا، می توانید کارهای جالب زیادی از جمله مدیریت ایموجی ها انجام دهید. به عنوان مثال، بیایید یک چهره خندان را نشان دهیم:
int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
نتیجه گیری: چهره خندان: 😀 اگرچه نمایش ایموجی می تواند ترسناک باشد (بسته به نحوه اجرا)، اما این راه حل به خوبی کار را انجام می دهد. با این حال، جستجو برای ایموجی مورد نظر در جدول رمزگذاری استاندارد دشوار است؛ بخش شکلک در وب سایت رسمی پراکنده است. استفاده از کتابخانه های اضافی بسیار ساده تر است.

Literals در دوره JavaRush

در دوره JavaRush، literals در سطح 10 در سخنرانی 8 دوره Java Syntax مورد مطالعه قرار می گیرند ، که در آن مثال ها توضیح می دهند که literal ها چیست و چرا به آنها نیاز است. JavaRush یک دوره آنلاین برنامه نویسی جاوا با تأکید بر تمرین است: بیش از 1200 کار با تأیید فوری، پروژه های کوچک، بازی ها.

نتیجه

Literals در جاوا یک چیز راحت در هر برنامه ای است، اما آنها باید در مکان هایی که مناسب است استفاده شوند. شما نباید پارامترهای اتصال پایگاه داده یا مقادیری را که ممکن است در طول چرخه عمر برنامه تغییر کند در کد منبع هاردکد کنید.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION