შეიძლება თუ არა ორ კლასს ჰქონდეს იგივე სერიული VersionUID?
შეიძლება თუ არა ორ კლასს ჰქონდეს იგივე სერიული VersionUID?

ვიდეო: შეიძლება თუ არა ორ კლასს ჰქონდეს იგივე სერიული VersionUID?

ვიდეო: შეიძლება თუ არა ორ კლასს ჰქონდეს იგივე სერიული VersionUID?
ვიდეო: Core Java Interview Questions - Serial Version UID 2024, აპრილი
Anonim

დიახ, ეს შესაძლებელია ორი განსხვავებული კლასები შეიძლება ჰქონდეს The იგივე სერიული VersionUID ღირებულება. მაგრამ ამჯობინეთ თითოეულისთვის უნიკალური გამოყენება კლასი . ასევე გამოიყენეთ 8-დან 10 ციფრით უფრო გრძელი და არა მხოლოდ 1, როგორც მნიშვნელობა.

შესაბამისად, რა არის serialVersionUID?

მარტივად რომ ვთქვათ, serialVersionUID არის უნიკალური იდენტიფიკატორი Serializable კლასებისთვის. ეს გამოიყენება ობიექტის დესერიალიზაციის დროს, იმის უზრუნველსაყოფად, რომ დატვირთული კლასი თავსებადია სერიულ ობიექტთან.

ანალოგიურად, რას იყენებს serialVersionUID 1l? The serialVersionUID არის უნივერსალური ვერსიის იდენტიფიკატორი Serializable კლასისთვის. დესერიალიზაცია იყენებს ეს რიცხვი იმის უზრუნველსაყოფად, რომ დატვირთული კლასი ზუსტად შეესაბამება სერიულ ობიექტს. თუ შესატყვისი ვერ მოიძებნა, მაშინ იყრება InvalidClassException.

ანალოგიურად, ისმის კითხვა, საჭიროა თუ არა serialVersionUID?

ნაგულისხმევი serialVersionUID გამოთვლა ძალიან მგრძნობიარეა კლასის დეტალების მიმართ, რომლებიც შეიძლება განსხვავდებოდეს შემდგენელის დანერგვის მიხედვით და შეუძლია ამგვარად, იწვევს მოულოდნელ InvalidClassException-ებს დესერიალიზაციის დროს. ამიტომ, თქვენ უნდა განაცხადოთ serialVersionUID რადგან ეს გვაძლევს მეტ კონტროლს.

რა როლი აქვს serialVersionUID-ს სერიალიზაციის პროცესში?

დროს სერიალიზაცია java Runtime თითოეულს ვერსიის ნომერს უკავშირებს სერიული კლასი. ამ ნომერზე დარეკეს serialVersionUID , რომელიც გამოიყენება დესერიალიზაციის დროს იმის დასადასტურებლად, რომ ა-ს გამგზავნი და მიმღები სერიული ობიექტს აქვს დატვირთული კლასები ამ ობიექტისთვის, რომლებიც თავსებადია სერიალიზაცია.

გირჩევთ: