Jaka jest różnica między Mutable i Immutable In Java?



Ten artykuł na temat zmiennych i niezmiennych w Javie jest obszernym przewodnikiem po różnicach między nimi, a także omawia, dlaczego ciągi znaków Java są niezmienne.

Java jest jedną z najpopularniejszych zawiera różne koncepcje tworzenia aplikacji, a jedną z takich koncepcji jest Mutable and Immutable in Java. Cóż, ta koncepcja polega na wprowadzaniu zmian w polach po utworzeniu obiektu, a tym samym ułatwia programowanie . Tak więc w tym artykule na temat zmienności i niezmienności w Javie omówię następujące tematy:

Co to jest obiekt zmienny?





to string w java

Obiekty, w których można zmieniać pola i stany po utworzeniu obiektu, nazywane są obiektami modyfikowalnymi. Przykład : java.util.Date, StringBuilder itp.

Co to jest niezmienny obiekt?



Plik obiekty w których nie można niczego zmienić po utworzeniu obiektu, nazywane są obiektami niezmiennymi. Przykład : Prymitywne obiekty w pudełku, takie jak liczba całkowita, długość itp.

Więc teraz, gdy już wiesz, co jest zmienne i niezmienne w Javie, przejdźmy do przodu i zobaczmy różnice między nimi.

Różnica między obiektami zmiennymi i niezmiennymi



W poniższej tabeli można znaleźć różnice między obiektami zmiennymi i niezmiennymi w języku Java.

Zmienny Niezmienny
Pola można zmieniać po utworzeniu obiektuPól nie można zmieniać po utworzeniu obiektu
Zwykle udostępnia metodę modyfikowania wartości polaNie ma żadnej metody modyfikowania wartości pola
Posiada metody Getter i SetterMa tylko metodę Getter
Przykład: StringBuilder, java.util.DatePrzykład: ciąg, obiekty prymitywne w pudełku, takie jak liczba całkowita, długość itp

Teraz, gdy znasz już różnice między obiektami zmiennymi i niezmiennymi, przyjrzyjmy się, jak je utworzyć zajęcia.

Jak stworzyć Mutable Class?

Aby utworzyć zmienną klasę w Javie, musisz upewnić się, że spełnione są następujące wymagania:

  1. Podaj metodę aby zmodyfikować wartości pól
  2. Metoda Getter and Setter

Rozważ następujący kod:

przykład klasy publicznej pakietu edureka {private String coursename example (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} public static void main (String [] args) {example obj = new example ('Machine Learning') System.out.println (obj.getName ()) // zaktualizuj nazwę, ten obiekt jest zmienny obj.setName ('Machine Learning Masters') System. out.println (obj.getName ())}}

Zobaczysz następujące dane wyjściowe:

Mutable Object Output - Mutable and Immutable w Javie - Edureka

Teraz, gdy już wiesz, jak utworzyć zmienną klasę, w następnej części tego artykułu przyjrzyjmy się, jak utworzyć niezmienną klasę.

java do potęgi

Jak stworzyć niezmienną klasę?

Aby utworzyć niezmienną klasę w Javie, musisz upewnić się, że spełnione są następujące wymagania:

  1. Klasę należy zadeklarować jako finał więc nie można go przedłużyć.
  2. Wszystkie pola powinny być ustawione jako prywatne, aby nie był możliwy bezpośredni dostęp
  3. Brak metod ustawiających
  4. Spraw, aby wszystkie zmienne pola były ostateczne, aby można je było przypisać tylko raz.
pakiet publiczna klasa edureka exampleimmutable {private final String coursename exampleimmutable (final String coursename) {this.coursename = coursename} public final String getName () {return coursename} public static void main (String [] args) {example obj = new example ( 'Machine Learning') System.out.println (obj.getName ())}}

Zobaczysz poniższe dane wyjściowe:

W porządku, więc teraz, gdy już wiesz o obiektach zmiennych i niezmiennych, powiem ci, że ciągi znaków są niezmienne w Javie. Teraz jestem pewien, że mogło to wywołać pytanie, dlaczego ciągi znaków są niezmienne w Javie. Spójrzmy więc w następnym artykule na to samo.

Dlaczego ciągi znaków są niezmienne w Javie?

Java wykorzystuje koncepcje . Jeśli więc weźmiesz pod uwagę przykład, w którym masz wiele zmiennych referencyjnych odnoszących się do pojedynczego obiektu, to nawet jeśli jedna zmienna referencyjna zmienia wartość zmiennej obiekt , automatycznie wpłynie to na wszystkie inne zmienne odniesienia. Również według Efektywna Java ,rozdział 4, strona 73, wydanie 2, następujące powody do stosowania klas niezmiennych:

  • Niezmienne obiekty są proste
  • Te obiekty nie wymagają synchronizacji i są z natury bezpieczne dla wątków
  • Niezmienne obiekty są dobrymi cegiełkami dla innych obiektów

Jeśli mam ci wyjaśnić na przykładzie, to

Powiedzmy, że masz zmienną samplestring , który przechowuje ciąg „ Nauczanie maszynowe „. Teraz, jeśli połączysz ten ciąg z innym ciągiem ' Mistrzowie ', następnie obiekt utworzony dla „ Nauczanie maszynowe ' nie zmieni się. Zamiast tego zostanie utworzony nowy obiekt dla „ Mistrzowie uczenia maszynowego „. Zobacz poniższy obraz:

Administrator Hadoop vs programista Hadoop

Jak widać na powyższym obrazku, plik samplestring zmienna referencyjna odnosi się do „uczenia maszynowego”, ale nie do drugiego ciągu, nawet po utworzeniu dwóch obiektów. Na tym kończymy ten artykuł o modyfikowalnych i niezmiennych w Javie. Mam nadzieję, że macie jasność co do każdego aspektu, który omówiłem powyżej.

Teraz, gdy znasz już podstawy języka Java, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego bloga „Zmienne i niezmienne w Javie”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.