博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java程序运行结果
阅读量:6626 次
发布时间:2019-06-25

本文共 1687 字,大约阅读时间需要 5 分钟。

下面这段代码的运行结果是:AB.B

分析原因:也就是说在你的operate()方法中,参数是引用传递,也就是x,y分别为a,b引用的拷贝,在方法中,你给x追加了值,也就相应的改变了a的值,但是第二条语句:

y = x; 确实将引用y指向了另外一个对象x,这样y就和b指向不同的两个对象了,当然b的值也就不会改变了。

public class test2 {    public static void main(String sgf[]){        StringBuffer a=new StringBuffer("A");        StringBuffer b=new StringBuffer("B");        operate(a,b);        System.out.println(a+"."+b);    }    static void operate(StringBuffer x,StringBuffer y){        x.append(y);        y=x;    }}

 

下面这段代码运行结果是:14

public class test3 {    String str = "1";    String[] strArr = {
"2"}; public static void main(String[] args) { test3 app = new test3(); app.operate(app.str, app.strArr); System.out.println(app.str +app.strArr[0]); } static void operate(String str, String[] strArr) { str = new String("3"); strArr[0] = new String("4"); }}

 

下面这段代码运行结果是:2 24 46 6

分析:因为线程中用到了synchronized同步,所以在三个线程中的result和data的值分别是:2,2;4,4;6,6

然后注意到System.out.print(result+" "+ data);所以最终结果是2 24 46 6

public class test1 {    private int data;    int result=0;    public void m(){        result+=2;        data+=2;        System.out.print(result+" "+ data);    }}class ThreadExample extends Thread{    private test1 mv;    public ThreadExample(test1 mv){        this.mv=mv;    }    public void run(){        synchronized (mv){            mv.m();        }    }}class ThreadTest{    public static void main(String args[]){        test1 mv=new test1();        Thread t1=new ThreadExample(mv);        Thread t2=new ThreadExample(mv);        Thread t3=new ThreadExample(mv);        t1.start();        t2.start();        t3.start();    }}

 

转载于:https://www.cnblogs.com/lijingran/p/8885871.html

你可能感兴趣的文章
微软同步框架入门之五--使用WCF同步远程数据
查看>>
Last-Modified、If-Modified-Since 实现缓存和 OutputCache 的区别
查看>>
理解SQL代理错误日志
查看>>
维护计划作业
查看>>
Multipart Internet Mail Extensions (MIME)
查看>>
C# WinForm控件之Dock顺序调整
查看>>
中控科技 ZK Software的售后服务真像一坨屎,技术人员嚣张
查看>>
NSPredicate过滤数组数据
查看>>
设置MYSQL允许用IP访问
查看>>
spark 数据预处理 特征标准化 归一化模块
查看>>
大道至简,系统设计和模块划分的实用经验之谈
查看>>
正则表达式中参数g、i、m的作用(share)
查看>>
使用Solr构建企业级的全文检索(四)---------写入文档
查看>>
VHDL语言中buffer与inout的区别
查看>>
squid的正向代理和反向代理
查看>>
linux下命令与文件的查询
查看>>
SEO意识的网站设计:设计和SEO的完美结合可能么?
查看>>
IP 算法
查看>>
IBM_System_x3650服务器固件升级手顺
查看>>
awk单行脚本
查看>>