Table of Contents
Basic concepts
Example study
1. Basic types are passed as parameters
2. Objects are passed as parameters
Home Java javaTutorial 14.Java Basics - Parameter Passing

14.Java Basics - Parameter Passing

Feb 27, 2017 am 10:55 AM

Basic concepts

In Java, there are two parameter passing mechanisms: passing by value and passing by address.

  • When a basic type is passed as a parameter, it is a copy of the passed value. No matter how you change this copy, the original value will not change; it is a pass-by-value.

  • Passing an object as a parameter copies a copy of the object's address in memory and passes it to the parameter; it is a pass-by-address.


Example study

1. Basic types are passed as parameters

public static void main(String[] args) {    int n =3; // ①

    System.out.println(n); // 3

    chageData(n); // ②

    System.out.println(n); // 3}public static void chageData(int num){
        num = 10; // ③}
Copy after login

Observation Output the results and find that the value of n has not changed.

Because n and num are basic types, the values ​​are directly stored in variables.

The flow chart is as follows (corresponding to ①②③ in the code):

14.Java Basics - Parameter Passing


2. Objects are passed as parameters

First look at the String example:

public static void main(String[] args) {
    String str = "hello"; // ①
    System.out.println(str); // hello

    chageData(str); //②

    System.out.println(str); // hello}public static void chageData(String s){
    s ="world"; // ③}
Copy after login

Observe the results and find that str has not changed. Here is an analysis based on the flow chart:

  • After ① is executed, an object reference str will be generated in the heap, which contains the address index, which points to the memory. The real String object

  • generates the object reference s in ②. Through the pass-by reference, it also gets the address index of "hello".

  • In ③ reassign the object reference s. It stands to reason that the value of the object should be from "hello" -> "world". But it creates a new object because of the immutability of String, because a new object is created once String changes.

14.Java Basics - Parameter Passing


Let’s look at the StringBuffer example again:

public static void main(String[] args) {
    StringBuffer stb = new StringBuffer("hello"); // ①
    System.out.println(stb); // hello

    chageData(stb); // ②

    System.out.println(stb); // hello world}public static void chageData(StringBuffer s){
    s.append("world"); // ③}
}
Copy after login

Observe the results and find that stb has changed because the StringBuffer object is Variable, changing its content will not create a new object

14.Java Basics - Parameter Passing

The above is the content of 14.Java Basics - Parameter Passing, for more related content, please pay attention to PHP Chinese Net (www.php.cn)!


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Square Root in Java Square Root in Java Aug 30, 2024 pm 04:26 PM

Square Root in Java

Perfect Number in Java Perfect Number in Java Aug 30, 2024 pm 04:28 PM

Perfect Number in Java

Random Number Generator in Java Random Number Generator in Java Aug 30, 2024 pm 04:27 PM

Random Number Generator in Java

Armstrong Number in Java Armstrong Number in Java Aug 30, 2024 pm 04:26 PM

Armstrong Number in Java

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Weka in Java

Smith Number in Java Smith Number in Java Aug 30, 2024 pm 04:28 PM

Smith Number in Java

Java Spring Interview Questions Java Spring Interview Questions Aug 30, 2024 pm 04:29 PM

Java Spring Interview Questions

Break or return from Java 8 stream forEach? Break or return from Java 8 stream forEach? Feb 07, 2025 pm 12:09 PM

Break or return from Java 8 stream forEach?

See all articles