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; }
列印結果:
記憶體地址是一樣的,所以引數傳遞的是地址,就意味著你是可以隨便修改引數的值的,很危險,所以為了保證安全,有些引數的值是不需要修改的,設定為final就可以了。
相關推薦
java 引數final型別
今天看到別人寫的介面中引數又很多都是final型別,final就是不可改變的意思,那麼介面引數的型別為什麼要設定為final呢,首先涉及到java的引數是值傳遞還是地址傳遞,基本型別例如int都是值傳遞
Java非靜態內部類外部this物件和final型別詳解
1. 非靜態內部類是如何引用外部類this物件的 Java內部類分為靜態內部類和非靜態內部類。它們有一個比較大的區別在於,非靜態內部類擁有外部類的this物件的引用,從而使得非靜態內部類可以訪問外部類的成員函式,成員變數。這個結論我們大家都比較清楚,那麼原理大家都懂嗎?這篇文章我講通
java中final修飾方法傳入引數的含義
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
java中final的作用
end 聯調 之前 ++ 遇到 編譯器 final類 執行 nbsp 1.修飾基礎數據成員的final: 這是final的主要用途,其含義相當於C/C++的const,即該成員被修飾為常量,意味著不可修改。如java.lang.Math類中的PI和E是final成員,其值為