1. பழமையான வகைகளின் பட்டியல்

ஜாவாவில் 8 அடிப்படை பழமையான வகைகள் உள்ளன. இந்த வகைகளின் மதிப்புகள் பொருள்கள் அல்ல மற்றும் மாறிகளுக்குள் நேரடியாக சேமிக்கப்படுவதால் அவை பழமையானவை என்று அழைக்கப்படுகின்றன.

இந்த வகைகளைப் பற்றிய சில சுருக்கமான தகவல்களைக் கொண்ட அட்டவணை இங்கே:

வகை
பைட்டுகளில் அளவு
மதிப்பு வரம்பு இயல்புநிலை மதிப்பு விளக்கம்
byte 1 -128 .. 127 0 சிறிய முழு எண் வகை ஒற்றை பைட் ஆகும்
short 2 -32,768 .. 32.767 0 குறுகிய முழு எண், இரண்டு பைட்டுகள்
int 4 -2*10 9 .. 2*10 9 0 முழு எண், 4 பைட்டுகள்
long 8 -9*10 18 .. 9*10 18 0L நீண்ட முழு எண், 8 பைட்டுகள்
float 4 -10 38 .. 10 38 0.0f மிதக்கும் புள்ளி எண், 4 பைட்டுகள்
double 8 -10 308 .. 10 308 0.0d இரட்டை துல்லியமான மிதக்கும் புள்ளி எண், 8 பைட்டுகள்
boolean 1 true,false false பூலியன் வகை (மட்டும் trueமற்றும் false)
char 2 0 .. 65.535 '\u0000' எழுத்துகள், 2 பைட்டுகள், அனைத்தும் 0 ஐ விட அதிகம்
இயல்புநிலை மதிப்பு

மூலம், இங்கே ஒரு முக்கியமான நுணுக்கம் உள்ளது. நீங்கள் ஒரு நிகழ்வு மாறி (புலம்) அல்லது நிலையான வகுப்பு மாறியை அறிவித்து, அதற்கு உடனடியாக எந்த மதிப்பையும் ஒதுக்கவில்லை என்றால், அது இயல்புநிலை மதிப்புடன் துவக்கப்படும் . அட்டவணை இந்த மதிப்புகளின் பட்டியலை வழங்குகிறது.

ஒரு முறையின் உள்ளூர் மாறிகளுக்கு இயல்புநிலை மதிப்பு இல்லை. அத்தகைய மாறிகளுக்கு நீங்கள் மதிப்பை ஒதுக்கவில்லை என்றால், அவை தொடங்கப்படாததாகக் கருதப்படும் மற்றும் பயன்படுத்த முடியாது.

ஆனால் பழமையான வகைகளுக்குத் திரும்பி அவற்றைக் கூர்ந்து கவனிப்போம்.



2. முழு எண் வகைகள்

ஜாவாவில் 4 முழு எண் வகைகள் உள்ளன: byte, short, intமற்றும் long. அவை அவற்றின் அளவு மற்றும் அவை சேமிக்கக்கூடிய மதிப்புகளின் வரம்பில் வேறுபடுகின்றன.

intவகை

மிகவும் பொதுவாக பயன்படுத்தப்படும் வகை int. பெயர் int eger (முழு எண்) என்ற வார்த்தையிலிருந்து வந்தது . குறியீட்டில் உள்ள அனைத்து முழு எண்களும் (முழு எண்கள்) (அவை ஒரு , , அல்லது intsஇல் முடிவடையவில்லை என்றால் ).LFD

-2,147,483,648இந்த வகையின் மாறிகள் லிருந்து மதிப்புகளை எடுக்கலாம் +2,147,483,647.

இது நிறைய மற்றும் கிட்டத்தட்ட ஒவ்வொரு சந்தர்ப்பத்திற்கும் போதுமானது. ஒரு எண்ணை வழங்கும் கிட்டத்தட்ட ஒவ்வொரு செயல்பாடும் ஒரு int.

எடுத்துக்காட்டுகள்:

குறியீடு விளக்கம்
int n = "String".length();
முறை length()ஒரு சரத்தின் நீளத்தை வழங்குகிறது
String[] array = {"Tic", "Tac", "Toe"};
int n = array.length;
புலத்தில் lengthவரிசையின் நீளம் உள்ளது.

shortவகை

வகை shortஅதன் பெயரைப் பெறுகிறது short int. இது பெரும்பாலும் குறுகிய முழு எண் என்றும் அழைக்கப்படுகிறது . வகையைப் போலன்றி int, அதன் நீளம் இரண்டு பைட்டுகள் மட்டுமே மற்றும் சாத்தியமான மதிப்புகளின் வரம்பு முதல் -32,768வரை இருக்கும் +32,767.

அதாவது ஒரு மில்லியன் எண்ணை அதில் சேமிக்க முடியாது. அல்லது 50,000 கூட. ஜாவாவில் இது மிகவும் அரிதாகவே பயன்படுத்தப்படும் முழு எண் வகையாகும். இதைப் பயன்படுத்துவதற்கான முக்கிய உந்துதல் நினைவகத்தைப் பாதுகாப்பதாகும்.

நீங்கள் 30,000 ஐ தாண்டாத மதிப்புகளுடன் பணிபுரிவீர்கள் என்பதையும், இந்த மதிப்புகள் மில்லியன் கணக்கில் இருக்கும் என்பதையும் நீங்கள் முன்கூட்டியே அறிந்திருக்கும் சூழ்நிலை உங்களுக்கு இருப்பதாக வைத்துக்கொள்வோம்.

எடுத்துக்காட்டாக, ஒவ்வொரு வண்ணத்திற்கும் பிட்களைப் பயன்படுத்தும் அதி-உயர் வரையறை படங்களைச் செயலாக்கும் ஒரு பயன்பாட்டை நீங்கள் எழுதுகிறீர்கள் என்று வைத்துக்கொள்வோம் 10. உங்கள் படத்தில் ஒரு மில்லியன் பிக்சல்கள் உள்ளன. பயன்படுத்துவதற்கான முடிவு intஅல்லது shortமுக்கியமான ஒரு சூழ்நிலை இது.

longவகை

இந்த வகை அதன் பெயரைப் பெற்றது மற்றும் நீண்ட முழு எண்long int என்றும் அழைக்கப்படுகிறது . வகையைப் போலன்றி , இது ஒரு அற்புதமான மகத்தான மதிப்புகளைக் கொண்டுள்ளது: முதல் வரை .int-9*1018+9*1018

இது ஏன் அடிப்படை முழு எண் வகை அல்ல?

ஏனெனில் ஜாவா 90களின் மத்தியில் தோன்றியது, பெரும்பாலான கணினிகள் 32-பிட்டாக இருந்தபோது. அதாவது அனைத்து செயலிகளும் 32 பிட்கள் கொண்ட எண்களுடன் வேலை செய்ய உகந்ததாக இருக்கும். செயலிகள் 64-பிட் முழு எண்களுடன் வேலை செய்ய முடியும், ஆனால் அவற்றின் செயல்பாடுகள் மெதுவாக இருந்தன.

இதன் விளைவாக, புரோகிராமர்கள் நிலையான முழு எண் வகையை உருவாக்கவும் int, உண்மையிலேயே தேவைப்படும் போது மட்டுமே வகையைப் பயன்படுத்தவும் நியாயமான முறையில் முடிவு செய்தனர் long.

byteவகை

இது ஜாவாவில் மிகச் சிறிய முழு எண் வகையாகும், ஆனால் குறைவாகப் பயன்படுத்தப்படுவதிலிருந்து வெகு தொலைவில் உள்ளது. அதன் பெயர், byte, ஜாவாவில் முகவரியிடக்கூடிய சிறிய தொகுதி நினைவகத்திற்கான வார்த்தையாகும்.

வகைக்கு பல சரியான மதிப்புகள் இல்லை byte: முதல் -128வரை +127. ஆனால் அதன் பலம் அதுவல்ல. byteநீங்கள் ஒரு பெரிய குமிழ் தரவை நினைவகத்தில் சேமிக்க வேண்டியிருக்கும் போது இந்த வகை பெரும்பாலும் பயன்படுத்தப்படுகிறது. இந்த நோக்கத்திற்காக களின் வரிசை byteசிறந்தது.

நீங்கள் எங்காவது ஒரு கோப்பை நகலெடுக்க வேண்டும் என்று வைத்துக்கொள்வோம்.

நீங்கள் கோப்பின் உள்ளடக்கங்களைச் செயலாக்கத் தேவையில்லை: நீங்கள் நினைவகத்தின் ஒரு பகுதியை (பஃபர்) உருவாக்க வேண்டும், கோப்பின் உள்ளடக்கங்களை அதில் நகலெடுக்க வேண்டும், பின்னர் அந்தத் தரவை இடையகத்திலிருந்து மற்றொரு கோப்பிற்கு எழுத வேண்டும். இதற்கு உங்களுக்கு ஒரு byteவரிசை தேவை.

ஒரு வரிசை மாறி நினைவகத்தின் ஒரு பகுதிக்கான குறிப்பை மட்டுமே சேமிக்கிறது என்பதை நினைவில் கொள்க. மாறி சில முறைக்கு அனுப்பப்படும் போது, ​​நினைவக முகவரி மட்டுமே அனுப்பப்படும். நினைவகத்தின் தொகுதியே நகலெடுக்கப்படவில்லை.

byte[] buffer = new byte[1024*1024];
FileInputStream sourceFile = new FileInputStream("c:\\data.txt");
FileOutputStream destFile = new FileOutputStream("c:\\output.txt");
while (true)
{
   int size = sourceFile.read(buffer); // Read data from a file into a buffer
   destFile.write(buffer, 0, size); // Write data from the buffer to a file

   // Stop copying if the buffer is not full
   if (size < buffer.length) break;
}
sourceFile.close();
destFile.close();


3. உண்மையான வகைகள்

பழமையான வகைகளில் உண்மையான எண்களுக்கு இரண்டு வகைகள் அடங்கும். அந்த வார்த்தையைப் பயன்படுத்துவது முற்றிலும் துல்லியமாக இல்லை என்றாலும். கணினிகள் உண்மையான எண்களைக் கையாளும் போது, ​​அவற்றை மிதக்கும் புள்ளி எண்கள் என்று அழைக்கிறோம் . எண்களைக் குறிக்கும் தரநிலையிலிருந்து இந்தப் பெயர் வந்தது, இதில் ஒரு எண்ணின் முழு எண் மற்றும் பின்னம் பகுதிகள் ஒரு காலத்தால் பிரிக்கப்படுகின்றன (ஒரு புள்ளி, கமா அல்ல).

சில பயனுள்ள தகவல்கள்:

ஒவ்வொரு நாட்டிற்கும் எண்களை எழுதுவதற்கு அதன் சொந்த தரநிலைகள் உள்ளன (ஆச்சரியம்!).

ஆயிரங்களையும், காற்புள்ளிகளையும் தசமப் பிரிப்பானாகப் பிரிக்க காலங்களைப் பயன்படுத்துவதற்குப் பலர் பழக்கப்பட்டிருக்கிறார்கள்: எடுத்துக்காட்டாக, அவர்கள் one million ones and 153 thousandthsஎன எழுதுவார்கள் 1.000.000,153. ஆனால் ஜாவாவின் படைப்பாளிகள் வாழ்ந்த அமெரிக்காவில், வேறுபட்ட தரநிலை ஏற்றுக்கொள்ளப்பட்டது:1000000.153

ஜாவா இரண்டு மிதக்கும் புள்ளி பழமையான வகைகளைக் கொண்டுள்ளது: doubleமற்றும் float.

நாம் முன்பு கூறியது போல், இந்த வகைகளுக்கு ஒரு குறிப்பிட்ட உள் ஏற்பாடு உள்ளது: உண்மையில், இந்த வகைகளின் ஒவ்வொரு மாறியின் உள்ளேயும் ஒரு எண் அல்ல, ஆனால் இரண்டு:

எடுத்துக்காட்டாக, மிதக்கும் புள்ளி எண்ணைக் 987654.321குறிப்பிடலாம் . பின்னர் நினைவகத்தில் அது இரண்டு எண்களாகக் குறிப்பிடப்படும் ( மண்டிசா , அதாவது எண்ணின் குறிப்பிடத்தக்க பகுதி) மற்றும் ( அதிவேகம் , அதாவது பத்து சக்தி)0.987654321*1069876543216

floatவகை

வகையின் பெயர் float ing-point numberfloat என்பதிலிருந்து வந்தது . இந்த வகையின் அளவு மிகவும் சிறியது - 4 பைட்டுகள் (32 பிட்கள்) மட்டுமே - ஆனால் இது வரையிலான மதிப்புகளை சேமிக்க முடியும் . மாண்டிசாவைக் குறிக்க 24 பிட்களும், அடுக்குக்கு 8 பிட்களும் ஒதுக்கப்பட்டுள்ளன. இந்த வகை 8 குறிப்பிடத்தக்க இலக்கங்களை மட்டுமே சேமிக்கும் திறன் கொண்டது.-3.4*10383.4*1038

intஇந்த அணுகுமுறை 4 பைட்டுகளைப் பயன்படுத்தும் போது, ​​ஒரு ஐ விட பெரிய எண்களை சேமிப்பதை சாத்தியமாக்குகிறது . ஆனால் அவ்வாறு செய்ய, நாம் துல்லியத்தை தியாகம் செய்கிறோம். நினைவகத்தின் ஒரு பகுதி மாண்டிசாவை சேமிப்பதால், இந்த மாறிகள் 6-7 தசம இடங்களை மட்டுமே சேமிக்கின்றன, மீதமுள்ளவை நிராகரிக்கப்படுகின்றன.

உதாரணமாக:

குறியீடு மதிப்பு
float a = (float) 123.456789;
123.45679
float a = (float) 12345.9999;
12346.0
float a = (float) -123.456789E-2;
-1.2345679

நீங்கள் பார்க்க முடியும் என, இந்த வகையின் முக்கிய குறைபாடு குறிப்பிடத்தக்க இலக்கங்களின் மிகக் குறைந்த எண்ணிக்கையாகும், மேலும் எட்டாவது இலக்கத்தின் துல்லியமான இழப்பு. அதனால்தான் இந்த floatவகை ஜாவா புரோகிராமர்களிடையே மிகவும் பிரபலமாக இல்லை.

doubleவகை

வகை doubleநிலையான மிதக்கும்-புள்ளி வகை. பெயர் இரட்டை துல்லியமான மிதக்கும் புள்ளி எண்ணிலிருந்து வந்தது . எல்லா உண்மையான எழுத்துகளும் doubleஇயல்பாகவே இருக்கும்.

இந்த வகை 8 பைட்டுகள் நினைவகத்தை (64 பிட்கள்) எடுத்துக்கொள்கிறது மற்றும் லிருந்து மதிப்புகளை சேமிக்க முடியும் . தெரிந்து கொள்ள வேண்டிய ஒரு முக்கியமான விஷயம் என்னவென்றால், 53 பிட்கள் மாண்டிசாவிற்கு ஒதுக்கப்பட்டுள்ளன, மீதமுள்ள 11 அதிவேகத்திற்காக ஒதுக்கப்பட்டுள்ளது.-1.7*103081.7*10308

இது 15-17 குறிப்பிடத்தக்க இலக்கங்களை சேமிக்க அனுமதிக்கிறது.

உதாரணமாக:

குறியீடு மதிப்பு
double a = 1234567890.1234567890;
1234567890.1234567
double a = 1234567890.1234512345;
1234567890.1234512
double a = 1234567890.1357913579;
1234567890.1357913

இந்த துல்லியமானது, குறிப்பாக வகையுடன் ஒப்பிடுகையில் float, தீர்க்கமானது: உண்மையான எண்களைக் கொண்ட அனைத்து செயல்பாடுகளிலும் 99% doubleவகையைப் பயன்படுத்தி செய்யப்படுகிறது.

11அதிவேகத்திற்கு பிட்கள் ஒதுக்கப்படுகின்றன, அதாவது பத்து முதல் வரையிலான சக்திகளை நீங்கள் சேமிக்கலாம் -323( +308அது இரண்டு முதல் வரை -1024) +1023. doubleதசமப் புள்ளிக்குப் பிறகு நூற்றுக்கணக்கான பூஜ்ஜியங்களைக் கொண்ட எண்ணை வகை எளிதாகச் சேமிக்க முடியும் :

குறியீடு மதிப்பு
double a = 2E-300 * 3E+302
600.0


4. முடிவிலி

மிதக்கும் புள்ளி எண்கள் மற்றொரு சுவாரஸ்யமான அம்சத்தைக் கொண்டுள்ளன: அவை முடிவிலியைக் குறிக்கும் ஒரு சிறப்பு மதிப்பை சேமிக்க முடியும் . மேலும் நீங்கள் நேர்மறை முடிவிலி மற்றும் எதிர்மறை முடிவிலியை பிரதிநிதித்துவப்படுத்தலாம் .

எடுத்துக்காட்டுகள்:

குறியீடு குறிப்பு
System.out.println( 100.0 / 0.0 );
Infinity
System.out.println( -100.0 / 0.0 );
-Infinity
double a = 1d / 0d;
double b = a * 10;
double c = b - 100;
a == Infinity
b == Infinity
c == Infinity

முடிவிலியை ஒரு எண்ணால் பெருக்கினால், நீங்கள் முடிவிலியைப் பெறுவீர்கள். நீங்கள் ஒரு எண்ணை முடிவிலியுடன் சேர்த்தால், நீங்கள் முடிவிலியைப் பெறுவீர்கள். அது சூப்பர் வசதியானது.

எண் அல்ல ( NaN)

முடிவிலியை உள்ளடக்கிய எந்தவொரு செயல்பாடும் முடிவிலியை அளிக்கிறது. நன்றாக, பெரும்பாலான ஆனால் அனைத்து இல்லை.

மிதக்கும் புள்ளி எண்கள் மற்றொரு சிறப்பு மதிப்பை சேமிக்கலாம்: NaN. இது N ot a N umber (எண் அல்ல) என்பதன் சுருக்கம்.

கணிதத்தில், நீங்கள் முடிவிலியை முடிவிலியால் வகுத்தால், முடிவு வரையறுக்கப்படவில்லை.

ஆனால், ஜாவாவில், நீங்கள் முடிவிலியை முடிவிலியால் வகுத்தால், விளைவு NaN.

எடுத்துக்காட்டுகள்:

குறியீடு குறிப்பு
System.out.println(0.0 / 0.0);
NaN
double infinity = 1d / 0d;
System.out.println(infinity / infinity);

NaN
double a = 0.0 / 0.0;
double b = a * 10;
double c = b - 100;
double d = a + infinity;
a == NaN
b == NaN
c == NaN
d == NaN

NaNவிளைச்சலுடன் எந்த நடவடிக்கையும் NaN.



5. charவகை

ஜாவாவின் பழமையான வகைகளில் , சில சிறப்பு கவனம் தேவை: charவகை. அதன் பெயர் சார் ஆக்டர் என்ற வார்த்தையிலிருந்து வந்தது , மேலும் அந்த வகையே எழுத்துக்களைச் சேமிக்கப் பயன்படுகிறது.

எழுத்துக்கள் என்பது சரங்களால் ஆனது அல்லவா? சரங்கள் என்பது எழுத்துக்களின் வரிசை.

ஆனால் இன்னும் சுவாரஸ்யமான விஷயம் என்னவென்றால், அந்த charவகையும் ஒரு எண் வகைதான் ! இது ஒரு இரட்டை நோக்கம் வகை, அதனால் பேச.

உண்மை என்னவென்றால், charவகை உண்மையில் எழுத்துக்கள் இல்லை. மாறாக, இது யூனிகோட் குறியாக்கத்திலிருந்து எழுத்துக் குறியீடுகளைச் சேமிக்கிறது . ஒவ்வொரு எழுத்தும் ஒரு எண்ணுக்கு ஒத்திருக்கும்: எழுத்துக்குறியின் எண் குறியீடு.

ஒவ்வொரு charமாறியும் இரண்டு பைட்டுகளை நினைவகத்தில் ஆக்கிரமித்துள்ளது (அதே வகை short). ஆனால் shortவகையைப் போலல்லாமல், charமுழு எண் வகை கையொப்பமிடப்படாதது மற்றும் 0லிருந்து மதிப்புகளை சேமிக்க முடியும் 65,535.

வகை charஒரு கலப்பின வகை. அதன் மதிப்புகளை எண்களாகவும் (எ.கா. அவற்றை கூட்டலாம் மற்றும் பெருக்கலாம்) மற்றும் எழுத்துகளாகவும் விளக்கலாம். எழுத்துகள் காட்சிப் பிரதிபலிப்புகள் என்றாலும், கணினியில் அவை எல்லாவற்றிற்கும் மேலாக வெறும் எண்களாக இருப்பதால் இது செய்யப்பட்டது. அவர்களுடன் எண்களாக வேலை செய்வது மிகவும் வசதியானது.

யூனிகோட்

யுனிகோட் என்பது உலகில் உள்ள அனைத்து எழுத்துக்களையும் கொண்ட ஒரு சிறப்பு அட்டவணை (குறியீடு). மேலும் ஒவ்வொரு எழுத்துக்கும் அதன் சொந்த எண் உள்ளது. தோராயமாக இது போல் தெரிகிறது:

ஜாவாவில் பழமையான வகைகள்

ஒரு மாறிக்கு மதிப்பை ஒதுக்க பல்வேறு வழிகள் உள்ளன char.

குறியீடு விளக்கம்
char a = 'A';
மாறியில் aலத்தீன் எழுத்து இருக்கும் A.
char a = 65;
மாறியில் aலத்தீன் எழுத்து இருக்கும் A. அதன் குறியீடு 65.
char a = 0x41;
மாறியில் aலத்தீன் எழுத்து இருக்கும் A.
அதன் குறியீடு , இது ஹெக்ஸாடெசிமல் அமைப்பில் 65சமம் .41
char a = 0x0041;
மாறியில் aலத்தீன் எழுத்து இருக்கும் A.
அதன் குறியீடு , இது ஹெக்ஸாடெசிமல் அமைப்பில் 65சமம் . இரண்டு கூடுதல் பூஜ்ஜியங்கள் எதையும் மாற்றாது. 41
char a = '\u0041';
மாறியில் aலத்தீன் எழுத்து இருக்கும் A.
ஒரு எழுத்தை அதன் குறியீட்டின் மூலம் வரையறுக்க மற்றொரு வழி.

பெரும்பாலும், மக்கள் மேற்கோள் குறிகளில் (அட்டவணையின் முதல் வரிசையில் உள்ளதைப் போல) எழுத்தைக் குறிப்பிடுகிறார்கள். பிந்தைய முறையும் பிரபலமானது என்று கூறினார். அதன் நன்மை என்னவென்றால், இது சரங்களில் பயன்படுத்தப்படலாம்.

நாங்கள் கூறியது போல், charவகையும் ஒரு முழு எண் வகையாகும், எனவே நீங்கள் இதைப் போன்ற ஒன்றை எழுதலாம்:

குறியீடு கன்சோல் வெளியீடு
char a = 'A';
a++;
System.out.println(a);
லத்தீன் எழுத்து Bதிரையில் காட்டப்படும்.
ஏனெனில்:
A65
B66
C67

charகளுடன் பணிபுரிகிறார்

ஒவ்வொன்றும் charமுதலில் ஒரு எண் (எழுத்து குறியீடு), பின்னர் ஒரு எழுத்து. எழுத்துக் குறியீடு உங்களுக்குத் தெரிந்தால், உங்கள் நிரலில் உள்ள எழுத்தை எப்போதும் பெறலாம். உதாரணமாக:

குறியீடு கன்சோல் வெளியீடு
char c = (char) 1128;
System.out.println(c);

Ѩ

நிலையான குறியீடுகள்

மிகவும் பிரபலமான எழுத்து குறியீடுகள் இங்கே:

பாத்திரங்கள் குறியீடுகள்
0,,, ... 1_29 48,,, ... 49_5057
a,,, ... b_cz 97,,, ... 98_99122
A,,, ... B_CZ 65,,, ... 66_6790


6. booleanவகை

மற்றும் கடைசி பழமையான வகை boolean.

உங்களுக்கு ஏற்கனவே தெரியும், இது இரண்டு மதிப்புகளை மட்டுமே எடுக்க முடியும்: trueமற்றும் false.

அதனுடன், இந்த வகையைப் பற்றி தெரிந்து கொள்ள வேண்டிய அனைத்தையும் நீங்கள் ஏற்கனவே அறிவீர்கள்.