zoukankan      html  css  js  c++  java
  • java程序运行结果

    下面这段代码的运行结果是: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();
        }
    }
  • 相关阅读:
    做题经验
    4906 删数问题
    1225 八数码难题
    1005 生日礼物
    1004 四子连棋 未完成
    1008 选数 2002年NOIP全国联赛普及组
    1068 乌龟棋 2010年NOIP全国联赛提高组
    2292 图灵机游戏
    实战数据结构(9)_单链表实现多项式的相乘
    最近招两个兼职的活(PHP和JSP)
  • 原文地址:https://www.cnblogs.com/lijingran/p/8885871.html
Copyright © 2011-2022 走看看