CodeGym/Java Blog/சீரற்ற/ஜாவா தொடர் வடிவங்கள்
John Squirrels
நிலை 41
San Francisco

ஜாவா தொடர் வடிவங்கள்

சீரற்ற குழுவில் வெளியிடப்பட்டது
members
வணக்கம்! சீரியலைப் பற்றி பேசலாம். வரிசையாக்கம் பற்றிய பாடங்களை நாங்கள் ஏற்கனவே பெற்றுள்ளோம் என்பது உங்களுக்கு நினைவிருக்கலாம். அதனால் நாங்கள் செய்தோம் :) இங்கே முதல் மற்றும் இங்கே இரண்டாவது. சீரியலைசேஷன் எப்படி வேலை செய்கிறது, ஏன் சீரியலைசேஷன் தேவைப்படுகிறது, ஜாவாவில் சீரியலைசேஷன் செய்ய என்ன கருவிகள் உள்ளன என்பது உங்களுக்கு நன்றாக நினைவில் இல்லை என்றால், இந்தப் பாடங்களை நீங்கள் படிக்கலாம். இன்றைய பாடம் கோட்பாடு பற்றியதாக இருக்கும். வரிசைப்படுத்தல் வடிவங்களை நாங்கள் நெருக்கமாகப் பார்க்கப் போகிறோம். முதலில், சீரியல் என்றால் என்ன என்பதை நினைவில் கொள்வோம். வரிசையாக்கம் என்பது ஒரு பொருளின் நிலையை பைட்டுகளின் வரிசையில் சேமிக்கும் செயல்முறையாகும். இந்த பைட்டுகளில் இருந்து ஒரு பொருளை மீட்டெடுக்கும் செயல்முறையே Deserialization ஆகும். ஒரு ஜாவா பொருளை வரிசைப்படுத்தலாம் மற்றும் ஒரு நெட்வொர்க்கில் அனுப்பலாம் (உதாரணமாக, மற்றொரு கணினிக்கு). பைட்டுகளின் வரிசையை வெவ்வேறு வடிவங்களில் குறிப்பிடலாம். சாதாரண கணினி பயன்பாட்டிலிருந்து இந்த கருத்தை நீங்கள் நன்கு அறிந்திருக்கிறீர்கள். எடுத்துக்காட்டாக, ஒரு மின்னணு புத்தகம் (அல்லது ஒரு எளிய உரை ஆவணம்) பல்வேறு வடிவங்களில் எழுதப்படலாம்:
  • docx (மைக்ரோசாப்ட் வேர்ட் வடிவம்);
  • pdf (Adobe வடிவம்);
  • mobi (பொதுவாக Amazon Kindle சாதனங்களில் பயன்படுத்தப்படுகிறது);
  • மற்றும் பல (ePub, djvu, fb2, முதலியன).
ஒவ்வொரு சந்தர்ப்பத்திலும், நோக்கம் ஒரே மாதிரியாகத் தெரிகிறது: மனிதனால் படிக்கக்கூடிய வடிவத்தில் உரையை வழங்கவும். இருப்பினும், மக்கள் பல்வேறு வடிவங்களை கண்டுபிடித்துள்ளனர். அவர்களின் பணியின் விவரங்களுக்குச் செல்லாமல், அவர்களுக்கு நல்ல காரணங்கள் இருந்தன என்று நாம் கருதலாம். மற்றவற்றுடன் ஒப்பிடும்போது ஒவ்வொரு வடிவத்திற்கும் அதன் சொந்த நன்மைகள் மற்றும் தீமைகள் உள்ளன. இதே கொள்கைகளைப் பின்பற்றி பல்வேறு தொடர் வடிவங்கள் உருவாக்கப்பட்டனவா? அருமையான யூகம், மாணவரே! :) அது சரிதான். உண்மை என்னவென்றால், கம்பி வழியாக (அல்லது வயர்லெஸ் முறையில்) தரவை அனுப்புவது தந்திரமான வணிகமாகும், மேலும் இது பல காரணிகளை உள்ளடக்கியது. தரவுகளை அனுப்புவது யார்? எங்கே? என்ன தொகுதி? பெறுபவர் மனிதரா அல்லது கணினியாக இருப்பாரா (அதாவது மனிதனால் படிக்கக்கூடிய தரவு இருக்க வேண்டும்)? எந்த சாதனம் தரவைப் படிக்கும்? வெளிப்படையாக, இந்த சூழ்நிலைகள் வேறுபட்டவை. 500 KB படத்தை ஒரு ஸ்மார்ட்போனிலிருந்து மற்றொரு ஸ்மார்ட்போனிற்கு அனுப்புவது வேறு விஷயம். நாம் 500 டெராபைட் வணிகத் தரவைப் பற்றி பேசுகிறோம் என்றால் அது முற்றிலும் வேறுபட்ட விஷயம், அது உகந்ததாக சுருக்கப்பட்டு முடிந்தவரை விரைவாக அனுப்பப்பட வேண்டும். முக்கிய வரிசைப்படுத்தல் வடிவங்களைப் பற்றி அறிந்து கொள்வோம், மேலும் அவை ஒவ்வொன்றின் நன்மைகள் மற்றும் தீமைகள் ஆகியவற்றைக் கருத்தில் கொள்வோம்!

JSON

ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் நோட்டேஷன். இந்த வடிவத்தைப் பற்றி உங்களுக்கு ஏற்கனவே கொஞ்சம் தெரியும்! இந்தப் பாடத்தில் அதைப் பற்றிப் பேசினோம் , மேலும் இங்கேயே JSON இல் வரிசைப்படுத்தலைப் பற்றிப் பேசினோம் . ஒரு காரணத்திற்காக அதன் பெயர் வந்தது. JSON ஆக மாற்றப்பட்ட ஜாவா பொருள்கள் உண்மையில் ஜாவாஸ்கிரிப்டில் உள்ள பொருட்களைப் போலவே இருக்கும். எங்கள் பொருளைப் புரிந்து கொள்ள நீங்கள் ஜாவாஸ்கிரிப்ட் தெரிந்திருக்க வேண்டியதில்லை:
{
   "title": "War and Peace",
   "author": "Lev Tolstoy",
   "year": 1869
}
நாங்கள் ஒரு பொருளை அனுப்புவது மட்டும் அல்ல. JSON வடிவம் பொருள்களின் வரிசையையும் குறிக்கலாம்:
[
 {
   "title": "War and Peace",
   "author": "Lev Tolstoy",
   "year": 1869
 },

 {
   "title": "Demons",
   "author": "Fyodor Dostoyevsky",
   "year": 1872
 },

 {
   "title": "The Seagull",
   "author": "Anton Chekhov",
   "year": 1896
 }
]
JSON ஜாவாஸ்கிரிப்ட் பொருட்களைப் பிரதிநிதித்துவப்படுத்துவதால், இது பின்வரும் ஜாவாஸ்கிரிப்ட் தரவு வடிவங்களை ஆதரிக்கிறது:
  • சரங்கள்;
  • எண்கள்;
  • பொருள்கள்;
  • வரிசைகள்;
  • பூலியன்ஸ் (உண்மை மற்றும் பொய்);
  • ஏதுமில்லை.
JSON இன் நன்மைகள் என்ன?
  1. மனிதர்கள் படிக்கக்கூடிய வடிவம். உங்கள் இறுதிப் பயனர் மனிதராக இருந்தால் இது ஒரு வெளிப்படையான நன்மை. எடுத்துக்காட்டாக, உங்கள் சேவையகம் விமானங்களின் அட்டவணையுடன் தரவுத்தளத்தைக் கொண்டுள்ளது என்று வைத்துக்கொள்வோம். ஒரு மனித வாடிக்கையாளர், வீட்டில் தனது கணினியில் அமர்ந்து, இணைய பயன்பாட்டைப் பயன்படுத்தி இந்தத் தரவுத்தளத்திலிருந்து தரவைக் கோருகிறார். அவர் புரிந்துகொள்ளக்கூடிய வடிவமைப்பில் நீங்கள் தரவை வழங்க வேண்டும் என்பதால், JSON ஒரு சிறந்த தீர்வாகும்.

  2. எளிமை. இது மிகவும் எளிமையானது :) மேலே, இரண்டு JSON கோப்புகளின் உதாரணத்தைக் கொடுத்தோம். ஜாவாஸ்கிரிப்ட் (ஜாவாஸ்கிரிப்ட் பொருள்கள் ஒருபுறம் இருக்கட்டும்) பற்றி நீங்கள் கேள்விப்பட்டிருக்காவிட்டாலும், அங்கு விவரிக்கப்பட்டுள்ள பொருள்களின் வகையை நீங்கள் எளிதாகப் புரிந்து கொள்ளலாம்.
    JSON ஆவணங்கள் முழுவதும் இரண்டு படங்களுடன் ஒரு வலைப்பக்கத்தைக் கொண்டுள்ளது.

  3. பரவலான பயன்பாடு. ஜாவாஸ்கிரிப்ட் ஆதிக்கம் செலுத்தும் முன்-இறுதி மொழியாகும், மேலும் அதற்கு அதன் சொந்த தேவைகள் உள்ளன. JSON ஐப் பயன்படுத்துவது அவசியம். எனவே, அதிக எண்ணிக்கையிலான இணைய சேவைகள் JSON ஐ தரவு பரிமாற்ற வடிவமாக பயன்படுத்துகின்றன. ஒவ்வொரு நவீன IDEயும் JSON வடிவமைப்பை ஆதரிக்கிறது (IntelliJ IDEA உட்பட). JSON உடன் பணிபுரிய அனைத்து வகையான நிரலாக்க மொழிகளுக்கும் ஒரு சில நூலகங்கள் எழுதப்பட்டுள்ளன.

எடுத்துக்காட்டாக, ஜாவா பொருட்களை JSON இல் வரிசைப்படுத்த நாங்கள் கற்றுக்கொண்ட பாடத்தில் நீங்கள் ஏற்கனவே ஜாக்சன் நூலகத்துடன் பணிபுரிந்திருக்கிறீர்கள். ஆனால் ஜாக்சனைத் தவிர, எங்களிடம் உள்ளது, எடுத்துக்காட்டாக, GSON , இது Google வழங்கும் மிகவும் வசதியான நூலகமாகும்.

YAML

ஆரம்பத்தில், YAML ஆனது "இன்னொரு மார்க்அப் மொழி" என்பதைக் குறிக்கிறது. இது தொடங்கிய போது, ​​அது XML க்கு போட்டியாளராக நிலைநிறுத்தப்பட்டது. இப்போது, ​​காலப்போக்கில், YAML ஆனது "YAML ஐன் மார்க்அப் லாங்குவேஜ்" என்று பொருள்படும். அது சரியாக என்ன? கம்ப்யூட்டர் கேமில் உள்ள கதாபாத்திரங்களை பிரதிநிதித்துவப்படுத்த 3 வகுப்புகளை உருவாக்க வேண்டும் என்று கற்பனை செய்து கொள்வோம்: வாரியர், மேஜ் மற்றும் திருடன். அவர்கள் பின்வரும் குணாதிசயங்களைக் கொண்டிருப்பார்கள்: வலிமை, சுறுசுறுப்பு, சகிப்புத்தன்மை, ஆயுதங்களின் தொகுப்பு. எங்கள் வகுப்புகளை விவரிக்கும் YAML கோப்பு எப்படி இருக்கும் என்பது இங்கே:
classes:
 class-1:
   title: Warrior
   power: 8
   agility: 4
   stamina: 7
   weapons:
     - sword
     - spear

 class-2:
   title: Mage
   power: 5
   agility: 7
   stamina: 5
   weapons:
     - magic staff

 class-3:
   title: Thief
   power: 6
   agility: 6
   stamina: 5
   weapons:
     - dagger
     - poison
YAML கோப்பில் ஒரு மர அமைப்பு உள்ளது: சில கூறுகள் மற்றவற்றில் உள்ளமைக்கப்பட்டுள்ளன. ஒரு குறிப்பிட்ட எண்ணிக்கையிலான இடைவெளிகளைப் பயன்படுத்தி நாம் கூடு கட்டுவதைக் கட்டுப்படுத்தலாம், ஒவ்வொரு நிலையையும் குறிக்கப் பயன்படுத்துகிறோம். YAML வடிவமைப்பின் நன்மைகள் என்ன?
  1. மனிதனால் படிக்கக்கூடியது. மீண்டும், விளக்கம் இல்லாமல் YAML கோப்பைப் பார்த்தாலும், அது விவரிக்கும் பொருட்களை நீங்கள் எளிதாகப் புரிந்து கொள்ளலாம். YAML என்பது மனிதர்களால் படிக்கக்கூடியது, yaml.org என்ற இணையதளம் ஒரு சாதாரண YAML கோப்பு :)

  2. சுருக்கம். கோப்பு அமைப்பு இடைவெளிகளைப் பயன்படுத்தி உருவாக்கப்படுகிறது: அடைப்புக்குறிகள் அல்லது மேற்கோள் குறிகளைப் பயன்படுத்த வேண்டிய அவசியமில்லை.

  3. நிரலாக்க மொழிகளுக்கான சொந்த தரவு கட்டமைப்புகளுக்கான ஆதரவு. JSON மற்றும் பல வடிவங்களை விட YAML இன் மிகப்பெரிய நன்மை என்னவென்றால், இது பல்வேறு தரவு கட்டமைப்புகளை ஆதரிக்கிறது. அவை அடங்கும்:

    • !!வரைபடம்
      நகல்களைக் கொண்டிருக்க முடியாத விசை மதிப்பு ஜோடிகளின் வரிசைப்படுத்தப்படாத தொகுப்பு;

    • !!omap
      நகல்களைக் கொண்டிருக்க முடியாத விசை மதிப்பு ஜோடிகளின் வரிசைப்படுத்தப்பட்ட வரிசை;

    • !!ஜோடிகள்:
      நகல்களைக் கொண்டிருக்கும் முக்கிய மதிப்பு ஜோடிகளின் வரிசைப்படுத்தப்பட்ட வரிசை;

    • !!செட்
      ஒன்றுக்கொன்று சமமாக இல்லாத மதிப்புகளின் வரிசைப்படுத்தப்படாத வரிசை;

    • !!seq
      தன்னிச்சையான மதிப்புகளின் வரிசை;

    ஜாவாவிலிருந்து இந்த கட்டமைப்புகளில் சிலவற்றை நீங்கள் அடையாளம் காண்பீர்கள்! :) இதன் பொருள் நிரலாக்க மொழிகளில் இருந்து பல்வேறு தரவு கட்டமைப்புகளை YAML இல் வரிசைப்படுத்தலாம்.

  4. நங்கூரம் மற்றும் மாற்றுப் பெயரைப் பயன்படுத்தும் திறன்

    இந்த குறிப்பான்கள் YAML கோப்பில் உள்ள சில உறுப்புகளை அடையாளம் காண உங்களை அனுமதிக்கின்றன, பின்னர் அது மீண்டும் மீண்டும் நடந்தால் மீதமுள்ள கோப்பில் அதைப் பார்க்கவும். & குறியீட்டைப் பயன்படுத்தி ஒரு நங்கூரம் உருவாக்கப்படுகிறது , மேலும் * ஐப் பயன்படுத்தி மாற்றுப்பெயர் உருவாக்கப்படுகிறது .

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

    books:
     book-1:
       title: War and Peace
       author: &leo Leo Tolstoy
       year: 1869
    
     book-2:
       title: Anna Karenina
       author: *leo
       year: 1873
    
     book-3:
       title: Family Happiness
       author: *leo
       year: 1859

    இந்தக் கோப்பைப் பாகுபடுத்தும் போது, ​​"லியோ டால்ஸ்டாய்" மதிப்பு, நமது மாற்றுப்பெயர்களைக் கொண்டிருக்கும் சரியான இடங்களில் மாற்றப்படும்.

  5. YAML ஆனது பிற வடிவங்களில் தரவை உட்பொதிக்க முடியும். உதாரணமாக, JSON:

    books: [
            {
              "title": "War and Peace",
              "author": "Leo Tolstoy",
              "year": 1869
            },
    
            {
              "title": "Anna Karenina",
              "author": "Leo Tolstoy",
              "year": 1873
            },
    
            {
              "title": "Family Happiness",
              "author": "Leo Tolstoy",
              "year": 1859
            }
          ]

பிற தொடர் வடிவங்கள்

எக்ஸ்எம்எல்

இந்த வடிவம் டேக் ட்ரீயை அடிப்படையாகக் கொண்டது.
<book>
   <title>Harry Potter and the Philosopher’s Stone</title>
   <author>J. K. Rowling</author>
   <year>1997</year>
</book>
ஒவ்வொரு உறுப்பும் ஒரு திறப்பு மற்றும் மூடும் குறிச்சொல்லைக் கொண்டுள்ளது (<> மற்றும் </>). ஒவ்வொரு உறுப்புக்கும் உள்ளமை உறுப்புகள் இருக்கலாம். XML என்பது JSON மற்றும் YAML போன்ற ஒரு பொதுவான வடிவமாகும் (நாம் உண்மையான திட்டங்களைப் பற்றி பேசினால்). எக்ஸ்எம்எல் பற்றி எங்களிடம் தனி பாடம் உள்ளது .

BSON (பைனரி JSON)

அதன் பெயர் குறிப்பிடுவது போல, BSON JSON ஐப் போலவே உள்ளது, ஆனால் இது மனிதர்களால் படிக்க முடியாது மற்றும் பைனரி தரவைப் பயன்படுத்துகிறது. இதன் விளைவாக, படங்கள் மற்றும் பிற இணைப்புகளை சேமிப்பதற்கும் மாற்றுவதற்கும் இது மிகவும் நல்லது. கூடுதலாக, JSON இல் கிடைக்காத சில தரவு வகைகளை BSON ஆதரிக்கிறது. எடுத்துக்காட்டாக, ஒரு BSON கோப்பில் ஒரு தேதி (மில்லிசெகண்ட் வடிவத்தில்) அல்லது ஜாவாஸ்கிரிப்ட் குறியீட்டின் ஒரு பகுதியும் இருக்கலாம். பிரபலமான MongoDB NoSQL தரவுத்தளமானது BSON வடிவத்தில் தகவல்களைச் சேமிக்கிறது.

நிலை அடிப்படையிலான நெறிமுறை

சில சூழ்நிலைகளில், அனுப்பப்பட்ட தரவின் அளவைக் கடுமையாகக் குறைக்க வேண்டும் (உதாரணமாக, எங்களிடம் நிறைய தரவு இருந்தால் மற்றும் சுமையைக் குறைக்க வேண்டும்). இந்த சூழ்நிலையில், நாம் நிலை அடிப்படையிலான நெறிமுறையைப் பயன்படுத்தலாம், அதாவது அளவுருக்களின் பெயர்கள் இல்லாமல் அளவுரு மதிப்புகளை அனுப்பலாம்.
"Leo Tolstoy" | "Anna Karenina" | 1873
இந்த வடிவமைப்பில் உள்ள தரவு முழு JSON கோப்பை விட பல மடங்கு குறைவான இடத்தை எடுக்கும். நிச்சயமாக, பிற வரிசைப்படுத்தல் வடிவங்கள் உள்ளன, ஆனால் அவை அனைத்தையும் நீங்கள் இப்போது தெரிந்து கொள்ள வேண்டியதில்லை :) பயன்பாடுகளை உருவாக்கும் போது தற்போதைய தொழில்துறை நிலையான வடிவங்களை நீங்கள் நன்கு அறிந்திருந்தால் நல்லது, மேலும் அவற்றின் நன்மைகள் மற்றும் அவை எவ்வாறு வேறுபடுகின்றன என்பதை நினைவில் கொள்ளுங்கள். மற்றொன்று. இத்துடன், எங்கள் பாடம் முடிவுக்கு வருகிறது :) இன்று இரண்டு பணிகளை தீர்க்க மறக்காதீர்கள்! அடுத்த முறை வரை! :)
கருத்துக்கள்
  • பிரபலமானவை
  • புதியவை
  • பழையவை
ஒரு கருத்தைத் தெரிவிக்க நீங்கள் உள்நுழைந்திருக்க வேண்டும்
இந்தப் பக்கத்தில் இதுவரை எந்தக் கருத்தும் வழங்கப்படவில்லை