精华内容
下载资源
问答
  • java数据传递方式

    万次阅读 2020-10-26 14:07:17
    值传递和引用传递的定义: ...基本数据类型数据传递方式: 基本数据类型是典型的值传递方式: int i = 99; int j = i; i = 90; System.out.println(i); System.out.println(j); 很显然,结果是

    值传递和引用传递的定义:

    值传递:作为参数传递时只传递了值,参数本身没有传递,如果被传递的方法改变传递后的变量参数值,原变量不会改变。
    引用传递: 作为参数传递时传递的是参数本身,如果被传递的方法改变传递后的变量参数值,原变量也会随之改变。


    基本数据类型数据传递方式:

    基本数据类型是典型的值传递方式:

    	int i = 99;
        int j = i;
        i = 90;
        System.out.println(i);
        System.out.println(j);
    

    很显然,结果是:
    90
    99
    在此可得出基本数据类型所使用的是值传递方式。


    String的数据传递方式:

    String使用的也是值传递方式:

    		String q = new String("90");//String q = "90";效果一样
            String p  = q;
            q = "99";
            System.out.println(q);
            System.out.println(p);
            System.out.println(System.identityHashCode(q));
            System.out.println(System.identityHashCode(p));
    

    结果显示:
    99
    90
    1870252780
    1729199940
    可以看的出来若是引用传递,p和q应该数值打印结果一样,所以String也是值传递


    其他复合数据类型:

    其他复合数据类型包括数组、类以及接口等均为值传递方式:
    (自定义类:DataDo类演示)

    		DataDo dataDo = new DataDo();
            DataDo dataDo1 = new DataDo();
            dataDo1 = dataDo;
            dataDo.setUrl("ppppppppp");
            System.out.println(dataDo.getUrl());
            System.out.println(dataDo1.getUrl());
            System.out.println(System.identityHashCode(dataDo));
            System.out.println(System.identityHashCode(dataDo1));
    

    结果:
    ppppppppp
    ppppppppp
    111156771
    111156771
    可以看出DataDo类是地址值传递方式,乍一看,像是引用传递方式,改变了dataDo的url属性,dataDo1的url也随之改变
    但看得出来两个对象的地址值是一样的,所以改变的只是堆里面的数,并没有改变实际,看下面的例子就可以看出

            DataDo dataDo = new DataDo();
            DataDo dataDo1 = dataDo;
            dataDo.setUrl("ppppppppp");
            DataDo dataDo2 = new DataDo();
            dataDo = dataDo2;
            System.out.println(dataDo.getUrl());
            System.out.println(dataDo1.getUrl());
            System.out.println(System.identityHashCode(dataDo));
            System.out.println(System.identityHashCode(dataDo1));
    

    结果:
    null
    ppppppppp
    111156771
    1519736165

    可以看出,dataDo改变了,如果是引用传递方式,dataDo1必然随之改变,而造成实际结果的原因是:
    地址值传递只是将地址值的指向拷贝一份,分发给了dataDo1,所以dataDo和dataDo1都指向到同一个数据上,而造成看起来很像引用传递的样子;
    此时重新给dataDo1分配一个dataDo2的地址值指向,就会改变了dataDo1的指向,但和dataDo完全没有关系,因为之前他们指向同一个数据只是拷贝了地址值,所以此时dataDo1更换指向和dataDo没有任何关系,所以可以看的出来,复合数据类型所用的也是值传递,而符合数据类型和String都是地址值传递但却有所不同的原因是,Stirng用final修饰了。

    展开全文
  • QT界面数据传递

    千次阅读 2017-02-06 09:34:01
    模态对话框数据传递
    自己总结的暂时有两种:
    一、非模态:可以说是两个平行的界面,不是父子关系。两个窗口也可以随意切换。
    这时候的数据传递可以通过信号和槽的关系。
    在send界面定义SIGNAL,然后emit, void sendDataX(QString)
    在receieve界面定义SLOT函数即可。
    二、模态:模态对话框是一个在结束这个对话框之前,不能进行其他任务。



    项目实例:
    需要打开一个对话框,在对话框里面有一张TableWidget。我们需要获取它的当前行的text值,保存出来。
    先开始使用的是非模态对话框,在选定之前可以做其他的任务,这是不符合要求的。因此之后使用模态对话框。

    addProgramDialog addprogram;
    addprogram.exec();
    模态对话框的返回值有两个。一个是QDialog::Accepted,另一个是QDialog::Reject;

    因为之前使用的都是非模态的,第一次使用模态,所以在如何读出他的数据花了一些时间,非模态可以通过信号和槽。模态则是通过成员变量。

    实例:
    一、首先是一个对话框,我们定义为Dialog类型。
    二、在头文件中,我们可以把我们需要的东西保存为public成员变量。比如这里我需要它当前行数,当前行的内容,可以如此定义。


    三、初始化控件的任务我们可以通过UI,或者代码,代码主要放在ui->setupUi(this)下面。
    初始化代码:

    四、然后我们定义一个showEvent事件。(我是用的TableWidget)
    在showEvent事件里我需要的是从某个地方读取文件名,保存到TableWidget中。
    首先有一个结构体

    在定义一个List,保存到List中

    最后将文件插入TableWidget中

    我们点击TableWidget某一行的时候,我们获取当前行和名字。

    这样就完成了数据传递

    展开全文
  • Android 界面间的数据传递

    千次阅读 2018-09-26 21:56:01
    在Android开发的过程中有很多时候需要用比如到界面简单数据传递 也就是把这个界面的数据传到另一个界面加以使用 比如:在做登陆的时候 登陆过后你需要在另一个界面显示用户名之类的信息 那么你就可以把登陆界面输入...

    在Android开发的过程中有很多时候需要用比如到界面简单数据传递 也就是把这个界面的数据传到另一个界面加以使用
    比如:在做登陆的时候 登陆过后你需要在另一个界面显示用户名之类的信息 那么你就可以把登陆界面输入的信息直接传递到另一个界面并显示出来

    界面间的数据传递我们可以用Intent来进行传递

    Intent 在我们进行界面跳转的时候就用到了 我们可以在界面跳转的基础上将数据传递过去

    传递的方法:

    在创建 intent 后 使用 intent.putExtra 方法往 intent 中加入数据
    在这里插入图片描述

    由图可看到 putExtra方法中有两个值 一个是 name 另一个是 value
    (补充一点 用intent进行数据传递 使用的是键值对的方法进行传递)
    其中 name 是string类型的 它代表的是一个key 也是代表键值对中的键
    value 从图中可以看出 有很多个类型 这里的类型代表了你可以传递过去值的类型 value对应的是键值对中的值

    比如 我要传一个 用户的 年龄 过第二个界面去 那么可以这样写
    在这里插入图片描述

    在这里 我是以 字符 age 为key传了一个 int值 20 过TowActivity中去
    那么 这个key有什么用呢
    既然我们可以往intent中加入一个值传递过去 那么 我们肯定到另一个界面是要使用的 现在我们只是传递了过去 另一个界面还需要把值给取出来 然后再使用 并不是说 传过去了 我们就能直接使用 取出值的时候就需要用到我们刚刚所定义的key了

    取出中传过来的值的方法是这样的:
    在这里插入图片描述
    首先是拿到传过来的 intent 然后 再intent中取出我们传过来的值 这里我们因为要取的是一个int值 所以我用的是
    getIntExtra() 方法 并不是只有这一个方法 取不同的类型有不同的方法 可以看到 方法中有两个参数 第一个就是我们刚才传递数据的时候设定key的位置了 通过我们设定的key 来取出对应的值 第二个是返回的默认值 是在这个key对应的值为空的情况下默认返回的值
    但是 其中String 类型的需要注意 也就是 getStringExtra() 它的括号内只有一个key的参数 不需要设定默认值

    展开全文
  • c语言 函数之间 数据传递

    千次阅读 2019-10-30 16:29:10
    C语言中函数的数据传递方式有三种:值传递;地址传递;全局变量传递。 在调用有参函数时,主调函数和被调用函数之间有数据传递关系。 首先认识两个概念: 1、形式参数(简称“形参”又叫“虚拟参数”):在定义函数...

    C语言中函数的数据传递方式有三种:值传递;地址传递;全局变量传递。

    在调用有参函数时,主调函数和被调用函数之间有数据传递关系。

    首先认识两个概念:

    1、形式参数(简称“形参”又叫“虚拟参数”):在定义函数时函数名后面括号中的变量名称。

    2、实际参数(简称“实参”):在主调函数中调用一个函数时,函数名后面括号中的参数。

    一、值传递方式

    实参向形参的数据传递是“值传递”,单向传递,只能由实参传向形参。
    当形参为变量而实参为变量、某个数组元素、常量或表达式时,在函数调用过程中数据传递通常使用的是值传递方式。即在程序执行中,系统会给形参和实参分别分配内存单元,在函数调用时,程序将实参的值传递给形参,存在系统分配的内存单元中,供被调用函数使用,形参和实参使用不同的内存单元;函数执行完毕,形参不将处理后的值返回给实参,实参的值不变,被调用函数最多只能通过ruturn语句返回一个值给主调函数,形参的内存单元被释放。
    在此程序中,通过把主调函数中被调用函数名后的实参(即变量的值)赋值给被调用函数的形参(变量),由被调用函数进行处理,从而实现主调函数与被调用函数间数据的传递。在这种数据传递方式中,函数最多只能返回一个值,具有一定的局限性。
    example1.
    max函数:
    int max(int x,int y)
    {
    int z;
    z=x>y?x;y;
    return(z);
    }
    主函数:
    #include <stdio.h>

    int main()

    {int main (int x,int y);

    int a,b,c;

    printf(“please enter two integer numbers:”);

    scanf("%d,%d"&a,&b);

    c=max(a,b);

    printf(“max is %d\n”,c);

    return 0;

    }

    主函数中max后a,b是实参。a,b是main函数中定义的变量,x,y是main函数的形式参数。实参a,b的值传递给形参x,y,在max函数中把x,y的大者赋给变量z,z的值作为函数值返回main函数,赋给变量c。

    二、地址传递方式

    当函数调用时,被调用函数的形参和实参为指针变量或数组时,函数间的数据传递使用的是地址传递方式。即在程序的执行过程中,系统给实参分配存储空间;在函数调用时,将实参获得的存储空间的地址传递给形参,使形参指向同一存储空间,当形参指向存储空间的值参与被调用函数的处理,也就是实参指向存储空间的值被处理。被调用函数执行完毕返回主调函数时,由于形参和实参指向同一存储空间,形参指向的存储空间的值的变化也就是实参指向存储空间的值的变化。从而实现被调用函数返回多个值给主调函数。

    比如数组元素作实参时,向形参变量传递的是数组元素的值;数组名作为函数实参时,向形参传递的是数组首元素的地址。

    example2.有一个一维数组score,内放10个学生成绩,求平均成绩。

    #include <stdio.h>
    int main()
    { float average(float array[10]); // 函数声明
    float score[10],aver;
    int i;
    printf(“input 10 scores:\n”);
    for(i=0;i<10;i++)
    scanf("%f",&score[i]);
    printf("\n");
    aver=average(score); // 调用average函数
    printf(“average score is %5.2f\n”,aver);
    return 0;
    }

    float average(float array[10]) // 定义average函数
    {int i;
    float aver,sum=array[0];
    for(i=1;i<10;i++)
    sum=sum+array[i]; // 累加学生成绩
    aver=sum/10;
    return(aver);
    }

    用数组名称作函数参数,应该在主调函数和被调函数分别定义数组,本例中array是形参数组名,score是实参数组名,分别在其所在的函数中定义,不能只在一方定义。

    实参数组与形参数组类型应该保持一致(这里都为float型),如不一致,结果将出错。

    在被调用函数中声明了形参数组的大小为10,但在实际上,指定其大小是不起任何作用的,因为C编译器对 形参数组大小不做检查,只是检查实参数组的首地址传给形参数组。因此,score[n]和array[n]指的是同一单元。

    形参数组也可以不指定大小,在定义数组时在数组名后面跟一个空的方括号,

    三、全局变量传递方式

    全局变量是指在函数之外定义的变量。如果在函数之外定义了全局变量,则该变量的作用域从变量的定义位置开始到本源程序文件结束,在其作用域中,任何函数均可以使用全局变量。 在全局变量的作用域中,如某一函数改变了全局变量的值,则在其后使用的是改变后的全局变量的值。由于全局变量定义后,其作用域中的函数都可使用它,从而也可以实现函数间数据的传递。 在这种传递方式中,利用的是系统分配给全局变量的内存单元(即全局变量的内存单元地址不变),其实也是一种地址传递。

    同样可以看example2.

    在此程序中, 变量Max、Min是全局变量,既可以在主函数中使用,也可以在被调用函数average中使用,在average函数中获得的值可以在主函数中输出。

    因为,一方面全局变量始终占据内存单元,会使程序的运行受到一定的影响;另一方面,使用全局变量与结构化程序设计的模块化原则相违背,而且全局变量使得程序各模块之间牵连太多,当一个全局变量的值被误改的时候,会给后续模块带来意外的错误。故全局变量不宜过多,而且在程序中应尽量不使用全局变量。

    展开全文
  • 微信小程序之数据传递

    万次阅读 多人点赞 2016-12-02 14:14:03
    本文主要介绍,页面跳转间的数据传递。传递的数据类型主要有1,基本数据类型;2,对象;3,数组集合; 先告诉你,本质上都是string类型传递。但是对于对象和数组集合的传递需要小小的处理一下传递时的数据和接收后...
  • matlab的数据传递方式

    千次阅读 2017-01-21 00:36:36
    在这篇博文后附的另一篇博文:matlab-两个gui的数据传递中,体现了三种数据传递方式: 1.使用 handles 结构体;(注意当 handles 结构体发生改变时,需要使用 guidata 更新) 2.使用全局变量;(global 变量名) 3....
  • vue祖孙组件之间的数据传递

    万次阅读 2019-02-25 18:08:04
     使用$attrs和$listeners实现祖孙组件之间的数据传递,也就是多重嵌套组件之间的数据传递。 **注意:** 本方法针对vue2.4版本及以上,使用$attrs和$listeners来实现的 **解决方案:** **首先创建父组件:** 父...
  • React数据传递-state

    千次阅读 2017-12-05 16:17:42
    我们可以叫做数据传递三兄弟。 4.1 组件自己身上的属性值变化,不会引起视图改变 我们可以在组件的类定义里面写constructor构造器,里面定义this.a=100.表示给组件的实例绑定一个a属性,值是100. 在jsx中使用的时候...
  • EventBus的使用,数据传递

    千次阅读 2016-05-25 22:34:30
    EventBus的使用 数据传递
  • Android Studio数据传递(一)

    千次阅读 2019-04-16 12:16:19
    今天学习了两个页面之间的数据传递,迫不及待的想的大家分享一下。 不要废话,请开始你的表演 不要急,我慢慢给你说 快点,我没时间 好,好,好 1.看图 完了! 完了?你是来骗点击量的吧!滚!!!!!!!~! 怎么...
  • activity之间单传递也就是activityA传递到activityB携带数据传递有两种 方式: 1.activityA通过intent.putExtra(key,value); 可以传递很多类型,看下图 在activityB根据你传递数据的类型通过getExtra()接收 ...
  • angular 中 cacheFactory 数据传递

    千次阅读 2015-12-21 14:52:39
    angular 中 cacheFactory 数据传递
  • 组件之间的数据传递

    千次阅读 2017-06-05 16:46:01
    必须使用特定的方法才能实现组件之间的数据传递。 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,components 文件夹下都是子组件。   一、父组件向子组件传递数据 在 Vue 中,可以使用 props 向子...
  • html和Android之间的数据传递离不开JsAndroid端1.Android端必须支持JswebView.getSettings().setJavaScriptEnabled(true);2.Android端定义 @JavascriptInterfacewebView.addJavascriptInterface(new WebHost(this), ...
  • PB 数据窗口(DataWindow)中数据传递的方法 将数据窗口dw_1的数据存入到datastore中,然后通过打开或关闭窗口时传递过去 Datastoreds Ds=createdatastore dw_1.rowscopy (1, dw_1.rowcount(), primary!, ds, ...
  • Activity数据传递之基本数据类型 在这篇文章中,我写了通过putExtra()方法在activity之间传递基本数据类型 但是如果我们想传递对象还用这种方法会发现报错,因为putExtra()不能接收Obj对象类型的 就像下面这样 我们...
  • 使用request对象进行数据传递

    千次阅读 2019-02-24 13:19:06
    在进行请求转发时,需要把一些数据传递到转发后的页面进行处理,需要使用request对象的setAttribute方法将数据保存到request范围内的变量中 使用: request对象可以视为一个域,可以应用setAttribute()方法向域范围...
  • window.open父子窗口数据传递问题

    千次阅读 2017-08-10 17:55:33
    在开发的过程中,需要实现对window.open父子窗口进行数据传递的功能,遇到了一些问题。
  • Vue进阶(六):组件之间的数据传递

    千次阅读 多人点赞 2018-05-05 23:50:47
    Vue进阶(六):组件之间的数据传递 &nbsp;&nbsp;&nbsp;&nbsp; Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据。必须使用特定的方法才能实现组件之间的数据传递。 &...
  • DATAX动态参数数据传递

    千次阅读 2016-04-12 22:12:00
    实例:ORACLE到ORACLE的数据传递 编写job.xml文件,添加变量参数 执行datax.py文件时记得带参数 格式:./datax.py –p"-Ddbname=*** -Dip=***" job.xml 实现指定的列名数据传递 修改reader里面的...
  • Django 前后台数据传递方法

    万次阅读 2018-04-18 11:13:31
    所熟悉的Django前后台数据传递的方法有以下几种:1、后台往前台传数据最简单的返回一个页面,view代码如下:def Home(request): return render(request,"flow/home.html",locals()) 如果要带上一些数据...
  • react组件间的数据传递

    千次阅读 2017-08-01 12:00:40
    父子组件父->子:通过props将数据传递给子组件子->父父组件通过props讲一个callback传给子组件,子组件内调用这个callback即可改变父组件的数据兄弟组件维护在父组件中将数据维护在两个组件的父组件或祖先组件中通过...
  • Python Flask No.5_Flask前后端间数据传递与展示 一.网站后端获取前端数据方法 1.1.首先定义好HTML <body> <a href='/?value=123'>链接传值</a> <form method='get/post' action='action'>...
  • 父子组件传值时,父组件从接口获取数据,...父组件异步请求数据传递给子组件 父子组件接收数据有延迟 父子组件生命周期对比 一、加载渲染过程 父beforeCreate->父created->父beforeMount->子beforeCreate...
  • jsp和servlet之间的数据...(1)jsp(页面)将数据传递到servlet 最常用的方式:利用表单参数或url超链接参数实现数据传递(以前曾经提到过)。 (2)servlet将数据传递到jsp(页面) 从servlet调用jsp,存
  • 这是从子组件里面把数据传递给父组件中,因为在子组件中使用emit方法扔出一个事件流,该事件流中包含了传递出来的数据; 在子组件中需要这样使用: @Output() outputvalue = new EventEmitter; this.outputvalue....
  • Springboot+Vue数据传递的流程

    千次阅读 2020-04-17 16:45:00
    Springboot+Vue数据传递的流程 一、前后端分离 大概的意思就是将一个程序变成前端和后台的两个应用。 二、搭建Vue项目 这个是Vue搭建的一个比较好的解释 注意点:1、 下载好了node就可以直接操作,在cmd中运行第一个...
  • 前端项目中数据传递的几种“姿势”

    千次阅读 多人点赞 2020-04-30 09:37:24
    数据传递在项目中是个很重要的话题,因为它牵扯到了一个APP,或者web-app的最重要一步:功能联动。 丝毫不隐瞒的说,笔者曾经迫切的想要学node.js的动力之一就在于它可以作为后端去进行数据的处理和传递使用。这在...
  • ionic3页面间数据传递及Events

    万次阅读 2017-08-29 16:07:12
    1.将数据传递到要跳转到的页面(1)push()要将新页面推送到堆栈,可使用push方法。同时也可以通过将数据传递给push方法的第二个参数,来将数据传递给下一个页面。import {LoginPage } from'./login'; ... pushPage()...
  • 微信小程序:自定义组件的数据传递 转载链接地址:https://segmentfault.com/a/1190000014474289?utm_source=index-hottest 一、前言 如果小程序中有可复用的UI且具有一定的功能性,就可以使用自定义组件将其封装起来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,013,078
精华内容 805,231
关键字:

数据传递