Chuyển theo giá trị và chuyển theo tham chiếu trong Java



Blog này giúp bạn hiểu Pass by Value và Pass by Reference trong Java. Nó cũng giải thích lý do tại sao Java được gọi là Pass by Value.

Java là một trong những ngôn ngữ lập trình cơ bản nhất mà bất kỳ ai cũng có thể học. Đồng thời, nó rất đơn giản, khả năng bạn có thể phát triển những gì bằng Java là vô hạn!Đây là điều làm cho Java trở thành ngôn ngữ được sử dụng rộng rãi nhất trong ngành công nghiệp ngày nay.Blog này sẽ giúp bạn hiểu về giá trị chuyển qua và tham chiếu chuyển qua trong Java theo trình tự sau:

Chuyển theo giá trị và chuyển theo tham chiếu trong Java

Truyền theo giá trị và Truyền theo tham chiếu là hai cách mà chúng ta có thể chuyển một giá trị cho biến trong một hàm.





  • Vượt qua giá trị: Nó là một quá trình trong đó các giá trị tham số hàm được sao chép sang một biến khác và thay vào đó đối tượng được sao chép này sẽ được chuyển. Điều này được gọi là cuộc gọi theo Giá trị.

    câu lệnh if trong truy vấn sql
  • Chuyển qua tài liệu tham khảo: Nó là một quá trình trong đó bản sao thực sự của tham chiếu được chuyển đến hàm. Điều này được gọi bằng Tham chiếu.



Nói về Java, chúng ta có thể nói rằng Java là truyền qua giá trị chứ không phải chuyển qua tham chiếu.

Chúng tôi sẽ minh họa câu lệnh trích dẫn lên bằng cách lập trình.

Minh họa với chương trình

Giả sử chúng ta có một lớp học Xe hơi như bên dưới.



public class Car {private String color public Car () {} public Car (String a) {this.color = a} public String getColor () {return color public void setColor (String color) {this.color = color}

Tiếp theo, chúng ta có một chương trình hoán đổi hai đối tượng.

public class Disp {public static void main (String [] args) {Car red = new Car ('Red') Balloon yellow = new Balloon ('Yellow') swap (đỏ, vàng) System.out.println ('red color = '+ red.getColor ()) System.out.println (' yellow color = '+ yellow.getColor ()) desc (màu vàng) System.out.println (' yellow color = '+ yellow.getColor ())} private static void desc (Car car) {// car = 100 bubble.setColor ('Red') // car = 100 car = new car ('Green') // car = 200 car.setColor ('Yellow') / / car = 200} // phương thức hoán đổi public static void swap (Object o1, Object o2) {Object temp = o1 o1 = o2 o2 = temp}}

Đầu ra

Màu đỏ = Đỏ

Màu vàng = Màu vàng

câu hỏi phỏng vấn đám mây dịch vụ salesforce

Màu vàng = Đỏ

Giải trình:

Vì vậy, như tôi đã nói trước đó rằng JAVA được truyền bởi Giá trị, do đó, chúng ta có thể thấy rằng hai dòng đầu tiên trong đầu ra phương thức swap () không hoạt động. Hãy giải thích kỹ lưỡng về mã.

Chuyển theo giá trị và chuyển theo tham chiếu trong Java

Đầu tiên, chúng tôi tạo một phiên bản của một lớp bằng cách sử dụng Mới nhà điều hành. Nó được tạo và giá trị được lưu trữ tại vị trí bộ nhớ. Do đó, trường hợp này chỉ vị trí bộ nhớ của các đối tượng có màu 'đỏ' và 'vàng'. Bây giờ khi chúng ta đang gọi các giá trị với các đối tượng mới o1 và o2 thì nó sẽ trỏ đến vị trí bộ nhớ của hai đối tượng là “đỏ” và “vàng”. Vì vậy, khi phương thức hoán đổi được gọi lúc đầu, nó trỏ đến vị trí bộ nhớ của “Red”. Trong dòng tiếp theo, Tham chiếu ô tô được thay đổi thành địa chỉ tiếp theo và nó được trỏ đến vị trí bộ nhớ 'màu vàng'. Do đó, chúng được hoán đổi ở bước thứ hai, không phải ở bước đầu tiên. Đây là lý do tại sao JAVA được gọi là Pass by Value chứ không phải tham chiếu.

Bây giờ bạn đã hiểu Chuyển theo giá trị và Chuyển theo tham chiếu trong Java, hãy xem của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa học Chứng chỉ và Đào tạo Java J2EE và SOA của Edureka được thiết kế cho sinh viên và các chuyên gia muốn trở thành Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

không gian tên trong c ++

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của bài viết “Chuyển theo giá trị và chuyển bằng tham chiếu trong Java” và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.