Table of Contents
1. Truyền giá trị (pass by value) trong Java
Nếu chúng ta gọi một phương thức và truyền một giá trị cho phương thức đó được gọi là truyền giá trị. Việc thay đổi giá trị chỉ có hiệu lực trong phương thức được gọi, không có hiệu lực bên ngoài phương thức.
Ví dụ giá trị data không bị thay đổi sau khi gọi phương thức change():
class Operation {
int data = 50;
void change(int data) {
data = data + 100; // changes will be in the local variable only
}
public static void main(String args[]) {
Operation op = new Operation();
System.out.println("before change " + op.data);
op.change(500); // passing value
System.out.println("after change " + op.data);
}
}
Kết quả:
before change 50 after change 50
2. Truyền tham chiếu (pass by reference) trong Java
Khi chúng ta gọi một phương thức và truyền một tham chiếu cho phương thức đó được gọi là truyền tham chiếu. Việc thay đổi giá trị của biến tham chiếu bên trong phương thức làm thay đổi giá trị gốc của nó.
Ví dụ giá trị của biến data của đối tượng op bị thay đổi sau khi gọi phương thức change():
class Operation {
int data = 50;
void change(Operation op) {
op.data = op.data + 100;// changes will be in the instance variable
}
public static void main(String args[]) {
Operation op = new Operation();
System.out.println("before change " + op.data);
op.change(op); // passing object
System.out.println("after change " + op.data);
}
}
Kết quả:
before change: 50 after change: 150
Related posts:
Java Program to Find the Median of two Sorted Arrays using Binary Search Approach
Batch Processing with Spring Cloud Data Flow
Pagination and Sorting using Spring Data JPA
Java Program to Implement Stack using Two Queues
An Introduction to Java.util.Hashtable Class
Hướng dẫn Java Design Pattern – DAO
How to Set TLS Version in Apache HttpClient
JPA/Hibernate Persistence Context
Serve Static Resources with Spring
Java Program to Implement Stack
Introduction to the Java ArrayDeque
Sending Emails with Java
Spring Boot: Customize Whitelabel Error Page
Reversing a Linked List in Java
Java Program to Implement ConcurrentLinkedQueue API
Spring Boot - Logging
Guide to CountDownLatch in Java
Error Handling for REST with Spring
Java Program to Implement Splay Tree
Guide to Java Instrumentation
Spring Boot - Securing Web Applications
Redirect to Different Pages after Login with Spring Security
@Order in Spring
Java Program to Implement Wagner and Fisher Algorithm for online String Matching
Hướng dẫn sử dụng lớp Console trong java
Apache Camel with Spring Boot
The XOR Operator in Java
A Guide to Java 9 Modularity
Spring Boot - Twilio
REST Web service: Basic Authentication trong Jersey 2.x
Transaction Propagation and Isolation in Spring @Transactional
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder