导航:首页 > 编程语言 > 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线程传参相关的资料

热点内容
你对程序员的魅力一无所知 浏览: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
adb手机命令root手机 浏览:662
程序员都没有双休吗 浏览:640