導航:首頁 > 編程語言 > java線程傳參

java線程傳參

發布時間:2025-03-23 14:16:18

java 參數傳遞 規則

簡言之:Java都是值傳遞(pass-by-value)

在Java中,無非就是兩種類型,即基本類型和從Object繼承下來的對象類型,而對象類型又包括String這種一旦初始化就不可改變內容的類型和BufferString這種可以初始化後可

以改變內容的類型。

然後看一下代碼示例:

java 代碼
1.package test;
2.
3.public class Test {
1. public static void main(String args[]) {
2. Integer interger1, interger2;
3. int i, j;
4. interger1 = new Integer(10);
5. interger2 = new Integer(50);
6. i = 5;
7. j = 9;
8. System.out.println("Before Swap, Interger1 is " + interger1);
9. System.out.println("Before Swap, Interger2 is " + interger2);
10. swap(interger1, interger2);
11. System.out.println("After Swap Interger1 is " + interger1);
12. System.out.println("After Swap Interger2 is " + interger2);
13. System.out.println("Before Swap i is " + i);
14. System.out.println("Before Swap j is " + j);
15. swap(i, j);
16. System.out.println("After Swap i is " + i);
17. System.out.println("After Swap j is " + j);
18.
19. StringBuffer sb = new StringBuffer("I am StringBuffer");
20. System.out.println("Before change, sb is <" + sb + ">");
21. change(sb);
22. System.out.println("After change sb is <" + sb + ">");
23. }
24.
25. public static void swap(Integer ia, Integer ib) {
26. Integer temp = ia;
27. ia = ib;
28. ib = temp;
29. }
30.
31. public static void swap(int li, int lj) {
32. int temp = li;
33. li = lj;
34. lj = temp;
35. }
36.
37. public static void change(StringBuffer ia) {
38. ia.append(", but my content can be changed");
39. //ia = new StringBuffer(",but my content can be changed");
40. }
41.}
42.
輸出:

Before Swap, Interger1 is 10
Before Swap, Interger2 is 50
After Swap Interger1 is 10
After Swap Interger2 is 50
Before Swap i is 5
Before Swap j is 9
After Swap i is 5
After Swap j is 9
Before change, sb is <I am StringBuffer>
After change sb is <I am StringBuffer, but my content can be changed>

這很好解釋,對於基本類型諸如int,傳遞進去的是存放int值的「內存單元」的一個,所以函數swap裡面的int和外面的int根本就不是一個東西,當然不能反射出去影響外面

的int。而對於對象類型,我們同樣可以這樣認為,傳遞進去的是存放對象類型的指針的「內存單元」一個(雖然Java裡面沒有指針的概念,但這並不妨礙我們理解)。這樣,

在swap函數裡面,對其指針本身的值做任何操作當然不會影響外面的Integer,因為interger1和interger2的「內存單元」裡面的值是不變的,其指向的對象類型也是沒有變的。

然後這里需要說明一個問題,就是StringBuffer這種類型的對象了。因為其內容是可以改變的,所以change函數裡面的「指針」通過類似「*」的操作,改變了StringBuffer對象的

本身,就顯而易見了。(StringBuffer對象本身只有一個副本)

⑵ java 中 如何通過命令行來傳遞參數

可以在命令行運行java程序時加上程序的參數。

例子如下:

public class HelloWorld{


public static void main(String args[]){


System.out.println("temp=" + args[0]);


}


}

源代碼截圖:

解釋一下: String[ ] args

該參數,是一個字元串數組,用來接收從命令行輸入的參數

1. 參數之間用空格隔開

2. java解釋器會自動處理,把用空格隔開的每一個參數通過args數組傳遞給買呢()方法。

3. 參數的下標從0開始,args[0]表示第一個參數,例如java HelloWorld 10 20 30

4.可以有多個空格,多個空格會被忽略。

(2)java線程傳參擴展閱讀:

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等 。

閱讀全文

與java線程傳參相關的資料

熱點內容
視頻加密機構 瀏覽:252
分批建倉的公式演算法 瀏覽:418
你對程序員的魅力一無所知 瀏覽:164
編譯好的librtmp 瀏覽:594
君越空調壓縮機多少錢 瀏覽:367
1號車站app怎麼改地址 瀏覽:223
皮皮蝦最右還有一個app是什麼 瀏覽:556
建築3針加密防塵網覆蓋 瀏覽:493
android按鈕滑動開關 瀏覽:739
內網伺服器怎麼設置api 瀏覽:274
我的船pdf 瀏覽:279
和java的特點 瀏覽:318
6210壓縮機功率 瀏覽:727
使用加密軟體對文件夾加密靠譜嗎 瀏覽:321
可以治癒解壓的寵物 瀏覽:396
鑄造技術pdf 瀏覽:614
aaa命令行不用大寫 瀏覽:787
怎麼獲取命令方塊 瀏覽:991
exp命令在哪 瀏覽:668
中點演算法畫直線 瀏覽:811