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();
        }
    }
  • 相关阅读:
    Win7远程连接凭据不工作的诡异问题解决
    pip介绍与使用
    Java Web整合开发(35) -- JPA规范
    爬虫
    零基础自学用Python 3开发网络爬虫
    learn资料
    Linux定时任务Crontab命令详解 转
    VirtualBox Host-only Adapter,Failed to create the host-only adapter 转
    Nginx报 No input file specified. 的问题解决之路 转
    ci上传图片
  • 原文地址:https://www.cnblogs.com/lijingran/p/8885871.html
Copyright © 2011-2022 走看看