1. 程式人生 > >java 引數final型別

java 引數final型別

今天看到別人寫的介面中引數又很多都是final型別,final就是不可改變的意思,那麼介面引數的型別為

什麼要設定為final呢,首先涉及到java的引數是值傳遞還是地址傳遞,基本型別例如int都是值傳遞,這個不用多說。

那麼引數在傳遞的時候是值傳遞還是地址傳遞,寫了個介面測試一下。

   Person person = new Person();
   person.setAge(11);
   person.setName("tan");
    System.out.println(person.toString());
   change(person);
    System.out.println
(person.toString()); } public static Person change(Person p){ p.setName("tttt"); return p; }

列印結果:

[email protected]

[email protected]

記憶體地址是一樣的,所以引數傳遞的是地址,就意味著你是可以隨便修改引數的值的,很危險,所以為了保證安全,有些引數的值是不需要修改的,設定為final就可以了。

相關推薦

java 引數final型別

今天看到別人寫的介面中引數又很多都是final型別,final就是不可改變的意思,那麼介面引數的型別為什麼要設定為final呢,首先涉及到java的引數是值傳遞還是地址傳遞,基本型別例如int都是值傳遞

Java非靜態內部類外部this物件和final型別詳解

1. 非靜態內部類是如何引用外部類this物件的 Java內部類分為靜態內部類和非靜態內部類。它們有一個比較大的區別在於,非靜態內部類擁有外部類的this物件的引用,從而使得非靜態內部類可以訪問外部類的成員函式,成員變數。這個結論我們大家都比較清楚,那麼原理大家都懂嗎?這篇文章我講通

javafinal修飾方法傳入引數的含義

final型別修飾的引數分為兩種型別 基本型別 與引用型別  引數加final 1、斯坦福教授說的好,方法可以比喻成一臺機器(麵包機),沒錯,在我的機器(方法)裡面,我要的引數加了final(要原料),你給我傳過來的引數,機器裡面就無法改了,也就是說在機器裡的這個引數,一直指向的都

Java 泛型(引數型別

Java 泛型 Java 泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時型別安全檢測機制,該機制允許程式設計師在編譯時檢測到非法的型別。  泛型的本質是引數化型別,也就是說所操作的資料型別被指定為一個引數。 一. 泛型概念的提出(為什麼需要泛型)? 首先,我們

java引數傳遞?基本型別:引用型別

                              java引數傳遞?基本型別:引用型別 java通過引數傳遞不能改變對應基本型別的值,通

JAVA基本資料型別、引用資料型別-引數傳遞詳解

1:基本型別的引數傳值 對於基本資料型別,修改這個值並不會影響作為引數傳進來的那個變數,因為你修改的是方法的區域性變數,是一個副本。實參的精度級別應等於或低於形參的精度級別,否則報錯。 class JB{ void f(int x, int y){ x=x+1;

關於為什麼jdk 8以前匿名內部類引數必須為final型別的問題

我們先來看一段程式碼   public class Hello {     public static void main(String[] args) {         String str=

Java基礎-----引數型別和返回值型別

引數型別 (1)基本型別。 (2)引用型別 1、類名:需要的是該類的物件。 2、抽象類:需要的是該抽象的類子類物件。 3、介面:需要的是該介面的實現類物件。 返回值型別 (1)基本型別。 (2)引用型別: 1、類:返回的是該類的物件。 2、抽象類

java的String型別作為引數傳遞

轉載:http://blog.csdn.net/pony_maggie/article/details/44120045 看一段程式碼: publicclass ArrayTest    {       //都是引用傳遞,輸出的結果是"goodbbb"    

Java傳遞基本型別:值傳遞,物件作為引數:引用傳遞

值傳遞:方法呼叫時,實際引數把它的值傳遞給對應的形式引數,方法執行中形式引數值的改變不影響實際參 數的值。 引用傳遞:也稱為傳地址。方法呼叫時,實際引數的引用(地址,而不是引數的值)被傳遞給方法中相對應的形式引數,在方法執行中,對形式引數的操作實際上就是對實際引數的操作,方

java中String型別引數傳遞問題

先看程式碼: public class Test1 { public static void main(String[] args) { String str = new String("s

Java中String型別引數傳遞問題的解析

一、引入示例 Java程式碼   <span style="font-size: small;">public class StringAsParamOfMethodDemo {       public static void main(Strin

為什麼匿名內部類引數必須為final型別

1)  從程式設計語言的理論上:區域性內部類(即:定義在方法中的內部類),由於本身就是在方法內部(可出現在形式引數定義處或者方法體處),因而訪問方法中的區域性變數(形式引數或區域性變數)是天經地義的.是很自然的 2)  為什麼JAVA中要加上一條限制:只能訪問final型的區域性變數? 3)  JAV

Java父類取得子類傳遞的泛型引數Class型別

import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import org.junit.Test

Java 判斷命令列引數型別

/** * This class print a triangle with '*'. * @author Li Jialin * @version 1.0 */ import java.util.regex.Pattern; public class Triangle

java wsdl 中不顯示引數屬性型別的問題解決方案

CXF3.0.1解決方案: 配合spring方式 <jaxws:endpoint id="receiveUMSMessag

Java 關鍵字final

初始 href ava soft java 關鍵字 sta mil span style   變量名前加final   該變量的值初始化後不能再改變。   方法名前加final   該方法不能被重寫。註意:final、static和private修飾的方法均不能被重寫。

JAVA 基礎--final 關鍵字的用法

hang change nal class end strong rdquo gin java 基礎 在java中,final的含義在不同的場景下有細微的差別,in a word,它指的是“不可變的” 1.修飾數據。這裏的可以看到被final修飾的

Head First Java & final

final first http nsa png pos head java fin Head First Java & final

javafinal的作用

end 聯調 之前 ++ 遇到 編譯器 final類 執行 nbsp 1.修飾基礎數據成員的final: 這是final的主要用途,其含義相當於C/C++的const,即該成員被修飾為常量,意味著不可修改。如java.lang.Math類中的PI和E是final成員,其值為