Как да внедрявам маркерния интерфейс в Java?



Тази статия ще ви запознае с интересен аспект на интерфейсите, наречен като интерфейс на маркер в Java, и ще го последва с изпълнението.

Тази статия ще ви запознае с интересен аспект на интерфейсите, наречен Marker Interface In и го проследете с изпълнението. Следните указания ще бъдат обхванати в тази статия,

Нека започнем тогава,





Интерфейсът на маркера е интерфейс, който е празен, т.е.не съдържа никакви методи или полета. Той е известен също като интерфейс за маркиране и се използва за посочване или информиране на JVM, че клас, който изпълнява този интерфейс, ще има някакво специално поведение. Ефективен начин за класифициране на кода може да бъде постигнат с помощта на маркерния интерфейс. Примери за такъв интерфейс са: Serializable, Cloneable и Remote Interface.

Преместване с тази статия за Marker Interface в Java



Сериализуем интерфейс

Сериализацията в java може да се определи като процес на преобразуване на състоянието на обект в байтов поток. Това може да се постигне чрез използване на сериализуем интерфейс, който присъства в java.io.package. Трябва да се отбележи, че всички подтипове на сериализуем клас сами по себе си са сериализуеми.

какво е сокет в java

Пример:

import java.io. * class Main реализира сериализуем {int j String s // Конструктор на клас public main (int j, String s) {this.j = j this.s = s}} Тест за публичен клас {public static void main (String [] args) хвърля IOException, ClassNotFoundException {Main obj = new Main (25, 'HelloWorld') // Сериализиране на 'obj' FileOutputStream fos = new FileOutputStream ('pqr.txt') ObjectOutputStream oos = new ObjectOutputStream (new ObjectOutputStream) .writeObject (obj) // Десериализиране на 'obj' FileInputStream fis = new FileInputStream ('pqr.txt') ObjectInputStream ois = new ObjectInputStream (fis) Main b = (Main) ois.readObject () // down-casting object System.out.println (b.j + '' + bs) // затваряне на потоци oos.close () ois.close ()}}

Изход:
25 HelloWorld



Преместване с тази статия за Marker Interface в Java

Cloneable интерфейс:

Този интерфейс може да бъде намерен в пакета java.lang. Клонирането е механизмът за генериране на реплика или точно копие на обект с различно име.
Интерфейсът Cloneable се изпълнява от клас, за да посочи на метода object.clone (), че е законно методът да прави копие на поле за поле на копия на този клас.
Изхвърля се CloneNotSupportedException за клас, който извиква метода на клониране, без да прилага клонируем интерфейс.

Пример:

импортиране на java.lang.Cloneable клас javaClone реализира Cloneable {int j String s // Дефиниране на публичен конструктор на клас javaClone (int j, String s) {this.j = j this.s = s} // Заменяне на метод clone () @ Замяна на защитения обект clone () хвърля CloneNotSupportedException {return super.clone ()}} публичен клас Main {public static void main (String [] args) хвърля CloneNotSupportedException {javaClone c = new javaClone (18, 'HelloWorld') // cloning ' c 'и задържане // нова клонирана препратка към обект в b // прехвърляне надолу javaClone b = (javaClone) c.clone () System.out.println (bj) System.out.println (bs)}}

Изход:
18.
Здравей свят

Преместване с тази статия за Marker Interface в Java

Отдалечен интерфейс:

Отдалечен обект може да бъде дефиниран като обект, чиито методи могат да бъдат извикани от различен JVM, потенциално на друг хост. Този интерфейс се намира в пакета java.rmi. Отдалечен обект трябва да приложи този метод директно или индиректно.

RMI:

Remote Method Convocation е API, който позволява на обект да извиква методи за обект, изпълняван в различен JVM. Той осигурява дистанционна комуникация между двете приложения, като се използват следните обекти: мъниче и скелет.

Stub:

Стъблото може да бъде дефинирано като обект, който присъства на клиентската страна и представлява отдалечения обект. Той създава информационен блок, който се състои от:
α Идентификатор на отдалечения обект
α Име на метода, който трябва да бъде извикан
α Параметри към отдалечената JVM

Скелет:

Основната работа на скелетния обект е да предава заявките от заглушителя към отдалечения обект. Освен това той изпълнява задачите, дадени по-долу:
α Извиква желания метод за оригиналния отдалечен обект
α Чете параметъра, посочен за отдалечения обект

Преместване с тази статия за Marker Interface в Java

Стъпки за внедряване на отдалечен интерфейс:

Определете отдалечен интерфейс:

импортиране на java.rmi. * публичен интерфейс AddAll разширява Remote {public int add (int r, int s) хвърля RemoteException}

Тук дистанционният интерфейс се разширява и RemoteException се декларира с всички методи на отдалечения интерфейс.

Преместване с тази статия за Marker Interface в Java

Внедрете отдалечения интерфейс:

Има два начина за осигуряване на изпълнение на отдалечения интерфейс:
α Разширете класа UnicastRemoteObject
α Използвайте метода exportObject () от класа UnicastRemoteObject

import java.rmi. * import java.rmi.server. * публичен клас AddAllRemote разширява UnicastRemoteObject реализира Adder {AddAllRemote () хвърля RemoteException {super ()} public int add (int r, int s) {return r + s}}

Използвайки rmic (компилатор rmi), създайте обектите на скелета и скелета.

Обектите на мъниче и скелет могат да бъдат създадени с помощта на компилатора rmi. Инструментът rmi извиква компилатора RMI за създаване на обекти.
rmic AddAllRemote

Използвайки инструмента rmiregistry, стартирайте услугата за регистрация.

Услугата на системния регистър може да бъде стартирана с помощта на инструмента rmregistry. Използва се номер на порт по подразбиране, ако не е посочен от потребителя.
rmiregistry 5000

Преместване с тази статия за Marker Interface в Java

Създайте и стартирайте отдалеченото приложение.

import java.rmi. * import java.rmi.registry. * public class Server {public static void main (String args []) {try {AddAll stub = new AddAllRemote () Naming.rebind ('rmi: // localhost: 5000 / sak ', stub)} catch (Изключение e) {System.out.println (e)}}}

Отдалеченият обект е обвързан с името sak в горния пример.

Преместване с тази статия за Marker Interface в Java

Създайте и стартирайте клиентското приложение.

В дадения пример сървърните и клиентските приложения се изпълняват на една и съща машина. По този начин се използва използването на localhost.

импортиране на java.rmi. * клиент на публичен клас {публична статична невалидна основна (String args []) {опитайте {AddAll stub = (AddAll) Naming.lookup ('rmi: // localhost: 5000 / sak') System.out.println (stub.add (29,18))} улов (Изключение д) {}}}

За достъп до отдалечения обект от различна машина, името на локалния хост трябва да бъде променено на IP адрес или име на хост, където се намира отдалеченият обект.

Ефективен начин за класифициране на кода може да бъде постигнат с помощта на маркерния интерфейс.

Така стигнахме до края на тази статия. Ако искате да научите повече, разгледайте от Edureka, доверена компания за онлайн обучение. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен да ви обучи както за основните, така и за разширените Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог и ние ще се свържем с вас възможно най-скоро.