1. 程式人生 > >Java方法呼叫注意點

Java方法呼叫注意點

public class MethodDemo{
	public static void main(String[] args){
		//傳遞形式1
		int a = 1;
		int b = 2;
		change(a,b);
		System.out.println(a); //1
		System.out.println(b); // 2
		//傳遞形式2
		int[] arr = {1,2,3,4};
		System.out.println(arr[2]); // 3
		change(arr);
		System.out.println(arr[2]); //  100
	}
	
	public static void change(int a,int b){
		a = a+b;
		b = b+a;
	}
	
	public static void change(int[] arr){
		arr[2] = 100;
	}
	
}

傳遞形式1:只是把變數中的資料傳遞給目標方法,目標方法進行處理後並無返回值傳遞同時主方法也無接收,所以這種方式並沒有改變主方法中變數的引數,所以主方法中的變數不會被改變。

傳遞形式2:這種方式是把陣列的地址傳遞給了目標方法,目標方法是對同一塊記憶體地址做處理,改變的是對應那一塊的記憶體地址所存的資料,所以改變了主方法中的值。

相關推薦

Java方法呼叫注意

public class MethodDemo{ public static void main(String[] args){ //傳遞形式1 int a = 1; int b = 2; change(a,b); System.out.println

String、Object、包裝類的常用方法以及注意

   String類 1.1String的兩種例項化方式      a.直接賦值 String str=“hello”;      b.通過構造方法例項化String物件 1.2字串相等比較    

java下載檔案注意

前臺: 不建議使用ajax,可以使用window.location.href   後臺: 三個引數--> response path filename--filename如果要防止亂碼,可以用String str = URLEncoder.encode("中國","utf-8")

vue中mixins的使用方法注意(詳)

mixins基礎概況 vue中的解釋是這樣的,如果覺得語言枯燥的可以自行跳過嘿~ 混入 (mixins): 是一種分發 Vue 元件中可複用功能的非常靈活的方式。混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被混入該元件本身的選項。 怎麼用? 舉個栗子: 定義一個混入

java方法呼叫流程

1.編譯器檢視物件的型別和方法名 例如,我們有一個類: public class Father { public void fun1(int a) { System.out.println("這是Father的fun1(int a)方法"); } public void

java compareTo() 用法注意

   compareTo就是比較兩個值,如果前者大於後者,返回1,等於返回0,小於返回-1,我下面給出了例子,由於比較的變數我用的是int,int型可以直接比較,所以沒有用到compareTo比較,如果宣告的是Date、String、Integer、或者其他的,可以直接使用compareTo比較,

ios 常用的一些方法注意 componentsSeparatedByString componentsJoinedByString以及NSURl和NSURLComponents

將string字串轉換為array陣列  NSArray  *array = [Str componentsSeparatedByString:@","]; 注意://componentsSeparatedByString 這個方法有一個bug 當被切割的字串是 @“”

Objective-C與Java 方法呼叫比較

Objective-C:宣告方法:-(Return-type)method:(Parameter-type)parameter1{...};多個引數時:-(Return-type)methodPart1:(Parameter-type)parameter1 methodPart2:(Parameter-typ

java序列化注意

1.顯示申明serialVersionUID可以避免物件不一致。因為在jvm反序列化時,會比較資料流中的serialVersionUID與類的    serialVersionUID是否相同,若相同則認為類沒有發生變化,可以把資料流load為例項物件;若不同,則拋異常  I

java控制語句注意分析

1. 選擇語句 注意的地方:1 使用if…else語句(碰到一個符合條件的就不會往下執行,直接跳出),一定要先處理包含範圍更小的情況 2 java7增強了switch的功能,允許switch的控制語句時java.util.String型別的變數–只能是String型別,不能是String

機器學習中的特徵——特徵選擇的方法以及注意

關於機器學習中的特徵我有話要說     在這次校園招聘的過程中,我學到了很多的東西,也糾正了我之前的演算法至上的思想,尤其是面試百度的過程中,讓我漸漸意識到機器學習不是唯有演算法,機器學習是一個過程,

java 方法呼叫,形參改變,實參是否發生改變

今天遇見一個面試題,java基礎的東西。我竟然給忘了。。。寫下來加深一下印象面試題:public class Test2 { public static void main(String[] args) { String a = new String(

JSP頁面跳轉的幾種方法以及注意

       最近自己在做專案時遇到一個問題,明明加了response.sendRedirect() ,系統也執行了,但是它就是不跳轉;最後在網上找到原因如下:        首先我們要知道的是用r

Java操作資料庫注意

1、addBatch批處理: smt.addBatch(sql1); smt.addBatch(sql2); smt.addBatch(sql3); smt.executeBatch(); 注意:使用批處理需要注意查詢、新增、修改不能使用同一個Statement,否則會報

android之JNI引數傳遞 (Java方法呼叫)

從Java 1.1開始,Java Native Interface (JNI)標準成為java平臺的一部分,它允許Java程式碼和其他語言寫的程式碼進行互動。JNI一開始是為了本地已編譯語言,尤其是C和C++而設計 的,但是它並不妨礙你使用其他語言,只要呼叫約定受支援就可

wait()方法注意

一、問題是什麼? 這個問題是我昨天測試wait()方法的時候偶然發現的,即: 一個執行緒在同步塊或者同步方法中使用同步物件呼叫 wait() 方法的時候,會出現另一個執行緒在同步塊或者同步方法中不使用 notify() 方法,被 wait() 的執行緒就能自動被

HTML5 localStorage使用方法注意

html5新增了在客戶端儲存資料的新方法: 1.localStorage - 沒有時間限制的資料儲存; 2.sessionStorage - 針對一個session的資料儲存,當用戶關

編寫JAVA程式的注意

1. 任何時候都要看看得到的物件是否會為NULL,需要的話,要判斷。(2007.03.01) 2. 能用強轉,儘量用強轉。比如對一個Object,如果可以確定是String型別, 可以直接用強轉, 不建議用toString()方法,一方面避免引用的物件為NULL造成NullP

關於java方法呼叫時產生的StackFrame內部內容。

引自《深入Java虛擬機器》:    棧幀由三部分組成:區域性變數區、運算元棧和棧資料區。區域性變數區和運算元棧要視對應的方法而定,他們是按字長計算的。編譯器在編譯時就確定了這些值並放在class檔案中,而棧資料區的大小依賴於具體實現。    當虛擬機器呼叫一個java方法

Java方法呼叫的位元組碼指令學習

Java1.8環境下,我們在編寫程式時會進行各種方法呼叫,虛擬機器在執行這些呼叫的時候會用到不同的位元組碼指令,共有如下五種: