ПредишенСледващото

Преходна ключова дума в Java се използва за обозначаване, че полето не трябва да се серийни номера.

Променливите могат да бъдат маркирани преходно да покаже, че те не са част от постоянната състоянието на обекта.

Например, вие може да има поле, получени от други области, и трябва да се прави само по програмен път, а не спестяване състояние след сериализация.

Тук GalleryImage клас, който съдържа изображение и изображение миниатюра получена от:

В този пример thumbnailImage представлява умалено изображение, който се генерира чрез обаждане метод generateThumbnail.

Невярно thumbnailImage маркирана като преходно. така че само на оригиналното изображение е поредица, а не се съхранява като оригиналното изображение и умалено изображение. Това означава, че, за да се спаси поредица обект ще изисква по-малко памет. (Разбира се, това може или не може да е желателно, в зависимост от изискванията на системата - това е само един пример.)

По време на метод deserialization readObject е призван да изпълнява всички операции, необходими за възстановяване на състоянието на обекта обратно в състоянието, в което е имало сериализация. Тук трябва да се създаде една скица, така метод readObject не е отменено, така че скицата ще бъде генериран като се обадите на метод generateThumbnail.

За повече информация вижте "Запознаване с тайните на статия API Java сериализирането» (който първоначално е бил на разположение в мрежата за разработчици Sun) има секция, която се обсъжда използването и представянето на сценарии, в които преходна ключова дума се използва за предотвратяване на сериализация на определени области.

Преди разбирането на преходния процес на ключови думи. което трябва да се разбере концепцията на сериализация. Ако читателят е наясно с сериализация, пропуснете първата точка.

Какво е сериализация?

Сериализирането - процес на непрекъснато постоянство обект. Това означава, че състоянието на обекта, се превръща в поток байт и записва в файл. По същия начин, можем да използваме deserialization за възстановяване на състоянието на обекта от байт. Това е един от най-важните понятия Java програмиране, както сериализация се използва главно в мрежата програмиране. Обектите, които се предават по мрежата, трябва да се преобразува в байта. За тази цел всеки клас или интерфейс трябва да приложи Serializable интерфейс. Това е маркер интерфейс без никакви методи.

Сега, това, което е преходно ключовата дума и нейната цел?

По подразбиране, всички променливи на обекта, се превръща в постоянно състояние. В някои случаи, може да искате да се избегне съхраняване на някои от променливите, тъй като не е нужно да спаси тези променливи. По този начин, можете да декларират тези променливи преходно. Ако променливата е декларирана като преходно. тя няма да бъде спасен. Това е основната цел на преходния процес на ключови думи.

Искам да обясня на следните две точки в следния пример:

И продукцията ще бъде, както следва:

Презиме е обявен преходно. така че няма да се съхраняват в постоянното хранилище.

Така че можете да определите променливи, които не искат да издавам.

Обектът, който може да има информация, която не искате да издавам / персистира (вероятно препратка към родителя възрази културата Factory), или може би това няма смисъл да издавам. Поставянето им като "преходно", механизмът за сериализация ще игнорира тези области.

Моят малък принос:

Какво е променлива преход в Java?
В един прост изречение, всяка променлива, която се променя с помощта на ключови думи, преходно, става променлива процес на преход в Java.

Защо имаме нужда от една променлива преход в Java?
Ключова дума Преходна ви дава контрол върху процеса на сериализация и ви дава възможност за изключване на определени свойства на обекти от процеса на сериализация. За известно време, че има смисъл да не издавам някои атрибути на обекта, ще видим какво променливи не трябва да бъде поредица и трябва да бъде преходно в следващия раздел.

Променливата преход - променлива, която не може да бъде поредица.

Един пример за това кога може да е полезно, това, което идва на ум, са променливите, които имат смисъл само в контекста на конкретен случай на даден обект, и които вече не са валидни след сериализация и deserialization на обекта. В този случай е полезно да се превърнат тези променливи нула, така че можете да ги върне в начално с полезни данни, както е необходимо.

преходно се използва да покаже, че не е необходимо да бъде поредица поле клас. Може би най-добрият пример е поле Тема. Обикновено няма причина Сериализирането Тема. защото състоянието му е много "специфичен поток".

Тъй като не всички променливи са Serializable природата

В допълнение, този модификатор може да се използва Сериализирането система, различна от родната Java. Например, Hibernate няма да спаси полетата, маркирани с @Transient, било временно модификатор. Теракота и уважава този модификатор.

Аз вярвам, че модификатора на фигуративен смисъл е, че "това поле е предназначен за употреба само в паметта. Не го оставяйте и се излиза от това специално виртуална машина по никакъв начин. Т.е. вие не можете да разчитате на стойността в друга памет VM. Подобно на летлив, не може да разчита на специфични семантика памет и семантика.

Сериализирането - е процес на запазване на състоянието на обекта в постоянно формат (например, файлови потоци или база данни) и последващото им възстановяване от потока (де-Сериализирането). В Java клас обект е поредица, ако класът реализира java.io.Serializable интерфейс. Това е маркер интерфейс, който казва на JVM, класа има право на сериализация.

В този клас модели, има три важни точки: тя трябва да изпълни Serializable интерфейс. В противен случай ние се java.io.NotSerializableException когато се опитате да сериализира обект на клас. Постоянно име serialVersionUID дълго обявен и задава стойност:

Моля, имайте предвид, че полето за парола е маркиран като преход:

Тъй като ние не искаме да паролата, когато сериализиране обект. Правилото е, че когато една променлива се маркира като преходно, неговата цел няма да бъде поредица по време на сериализация.

Променливата преход - променлива, която не може да бъде поредица. Вие използвате преходно ключова дума, за да определите виртуална машина Java, че тази променлива не е част от постоянната състоянието на обекта.

модификатори за достъп, да се използва Java, са статични, окончателен, абстрактен, синхронизирани, роден, нестабилни, временни и ограничителни.

Таблицата по-долу изброява спецификатори и модификатори на Java за достъп, които могат да бъдат приложени за променливи, методи и класове.

Преди да се отговори на този въпрос, трябва да ви обясня сериализирането. защото ако знаете какво е поредица в научната компютър, можете лесно да се разбере, че ключовата дума.

Сериализирането Когато даден обект се предава чрез мрежата / съхранява на физическия носител (файла.), Обектът трябва да бъде "поредица". Сериализирането преобразува редиците обекти байта на състоянието. Тези байтове се изпращат към мрежата / съхраняват и обектът е преустроен от тези байтове.
пример

Сега, ако не искате да RESET / SBEREZHAT поле на обекта. SO. можете да използвате преходно ключова дума

Това е полезно, когато не искате да споделите чувствителни данни, които идват с сериализация.

Под заглавието Google временната стойност, която трае само за кратък период от време; непостоянен.

Сега, ако искате да направите нещо преходно в Java, като се използват преходното ключова дума.

Въпрос: къде да се използва за процеса на преход?

A: Обикновено в Java ние може да съхранява данни във файлове, да ги забъркват променливи и тези променливи пишат на файлове, този процес се нарича сериализация. Сега, ако искаме променливите данни, написани на файл, щяхме да направи този преход променлива.

Преходна Int резултат = 10;

Забележка: Променливите на прехода не могат да бъдат местни.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!