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:
Spring MVC Setup with Kotlin
Custom HTTP Header with the HttpClient
Hướng dẫn Java Design Pattern – DAO
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Query Entities by Dates and Times with Spring Data JPA
Entity To DTO Conversion for a Spring REST API
Java Program to Implement Quick Hull Algorithm to Find Convex Hull
Java Program to Check for balanced parenthesis by using Stacks
Add Multiple Items to an Java ArrayList
Java Collections Interview Questions
How to Round a Number to N Decimal Places in Java
Spring Boot - Flyway Database
Xử lý ngoại lệ trong Java (Exception Handling)
Java Program to Implement Affine Cipher
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
So sánh ArrayList và Vector trong Java
New Features in Java 14
Spring NoSuchBeanDefinitionException
Quick Guide to Spring MVC with Velocity
Multi Dimensional ArrayList in Java
Java Program to Find Transpose of a Graph Matrix
Daemon Threads in Java
Hướng dẫn sử dụng Java Annotation
Java Program to Implement Binary Heap
String Joiner trong Java 8
Phân biệt JVM, JRE, JDK
XML Serialization and Deserialization with Jackson
Java Program to Implement Hash Tables with Linear Probing
Logging in Spring Boot
Spring WebClient vs. RestTemplate
Spring Boot Annotations
Spring MVC + Thymeleaf 3.0: New Features