`
mypyg
  • 浏览: 549402 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java 参数传递验证

    博客分类:
  • Java
阅读更多
把个人其他博客的文章慢慢搬过来,主要是能上传代码附件。

(1)Java中的基本类型比如int,bool等是值传递。
(2)对象类型则类似于C中的指针传递:
   2.1当修改参数的指向时不影响函数外部的变量,其仍然指向原来的对象。
   2.2但是修改参数指向的对象的成员变量时,此修改作用的对象实际上与函数外部的对象是同一个,修改被保存。

class Test{

    public static void testChangeInt(int a) {

       System.out.println("Old value:"+a);   //Old value:5

       a = ++a;

       System.out.println("New value before return:"+a);  //a:6。只在此函数内为6

    }

 

    public static void swap(String a, String b) {

       String t;

       t = a;

       a = b;

       b = t;

       System.out.println("a New value before return:"+a); //bbbb

       System.out.println("b New value before return:"+b); //aaaa。只在此函数内交换了

    }

   

    public static void appendWorld(StringBuffer sb) {

       System.out.println("sb Old value:"+sb);

       sb.append("world.");   //改变成员变量

       System.out.println("sb New value before return:"+sb); //hello world。

    }

 

    public static void main( String[] args ) {

       System.out.println("Main func start.");

       int ti = 5;

       testChangeInt(ti);

       System.out.println("New value after return:"+ti); //ti:5。不被函数改变

       System.out.println("----------------------------");

       String a = new String("aaaaa");

       String b = new String("bbbbb");

       swap(a,b);

       System.out.println("a New value after return:"+a); //aaaa

       System.out.println("b New value after return:"+b);  //bbbb 变量指向的目标不被函数改变。

       System.out.println("----------------------------");

       StringBuffer sb = new StringBuffer("Hello ");

       appendWorld(sb);

       System.out.println("sb New value after return:"+sb.toString()); //Hello world。变量指向的目标没变,但是目标的成员变量被改变了。

       System.out.println("----------------------------");

    }

}



Java中的“引用”和C++中的引用的对比:

C++代码:

#include <iostream>
using namespace std;
int main(int,char**)
{
        int other = 8;
        int target = 5;
        int& ref = target;
        target = other;
        cout << ref << endl;
}

输出:8. 就是当引用的目标改变了后,引用也跟着改变,所以把ref当做target的别名更容易理解,即ref就是target。

Java代码:
class Ref {
        public static void main(String[] args) {
        int other = 8;
        int target = 5;
        int ref = target;

        target = other;
        System.out.println("ref="+ref);
        }
}


输出ref=5。即ref和target是独立的。ref指向的目标不受target的影响。
分享到:
评论

相关推荐

    java调用shell向DataX传递参数,where条件,包含特殊字符

    例如,你可以创建一个shell脚本来执行DataX的同步任务,并将where条件作为参数传递。当条件包含特殊字符(如单引号 `'`、双引号 `"`、反斜杠 `\` 或者管道符号 `|` 等)时,必须正确转义以防止shell解释器错误解析。...

    Java参数分析

    在Java编程语言中,参数分析是一项关键的技能,它涉及到函数调用时的参数传递、类型检查、值的计算以及方法重载等多个方面。本文将深入探讨Java中的参数...通过不断实践和学习,你将能更好地掌握Java参数分析的精髓。

    使用一般参数传递方式,实现简单计算器的加减乘除后端接口功能。

    本主题聚焦于使用“一般参数传递方式”来创建一个能够处理加、减、乘、除运算的后端接口。这里我们将深入探讨如何实现这个功能,并通过具体的HTTP请求地址`Http://localhost:8080/simplecalculator`来演示其工作原理...

    java修改请求参数

    在Java Web开发中,我们经常需要处理HTTP请求,其中包含了客户端传递给服务器的数据。这些数据通常以请求参数的形式存在,例如URL查询参数、POST表单数据等。在某些情况下,我们可能需要在服务器端动态地修改这些...

    Java是值传递,传对象引用也是通过值

    例如,可以使用Java的`System.identityHashCode()`方法来验证不同引用是否指向同一个对象,或者使用调试器来查看方法调用时的实际参数传递。 总的来说,理解Java中的值传递和对象引用传递对于编写高效、无误的代码...

    java 直接调用python脚本,并传递参数代码实例

    Java 调用 Python 脚本传递参数是指在 Java 应用程序中调用 Python 脚本,并将参数传递给 Python 脚本,以实现特定的功能。在本篇文章中,我们将详细介绍 Java 调用 Python 脚本传递参数的方法,并提供示例代码,...

    URL参数加密解密(java版)

    - 参数校验:解密后,应用应验证数据的完整性,例如通过哈希值或时间戳。 7. **实战应用**: 在实际的J2EE项目中,这些方法可以集成到服务器端的过滤器或拦截器中,自动处理所有出站和入站的URL参数加密解密。 8...

    Java中实现参数名ASCII码从小到大排序(字典序).doc

    在Java编程中,有时我们需要对一组参数按照字典顺序(ASCII码值从小到大)进行排序,例如在创建签名或构建URL查询字符串时。这里提供了一个名为`createSign`的方法,它接受一个`Map, Object&gt;`类型的参数,并返回一个...

    Java生成支付宝支付参数

    以上就是Java后台生成支付宝支付参数的详细步骤,涉及到的知识点包括:支付宝API接口的调用、请求参数的构建、签名算法的实现、异常处理、响应解析以及支付通知的验证等。在实践中,需要不断优化和调整,以适应不断...

    Java版极验验证Demo

    4. **动态生成验证码**:根据从服务器获取的参数,后端需要生成动态的验证码图片或交互式验证元素,并将其传递给前端展示。这涉及到图像处理或HTML/CSS/JavaScript的组合使用,以便在用户界面上呈现验证界面。 5. *...

    weka 中参数传递的使用方法

    ### Weka中参数传递的深度解析与应用 #### 引言 Weka,全称Waikato Environment for Knowledge Analysis,是一款开源的数据挖掘软件工具包,主要用于机器学习和数据挖掘任务。它提供了丰富的算法集合,包括分类、...

    post调用接口(附带身份验证和自带参数的方式)

    本教程将详细解释如何使用POST方法附带身份验证和自带参数来调用接口,这在开发中非常重要,尤其是在涉及到用户登录、数据提交等场景。 首先,我们要理解身份验证的概念。身份验证是确认用户或应用程序是否具有访问...

    详解Java引用类型的参数也是值传递

    Java 中的参数传递有两种类型:基本类型和引用类型。基本类型参数是典型的值传递,而引用类型参数则是将引用变量的值传递给形参,实参和形参指向了同一个对象。如果利用形参进行操作,操作的就是实参指向的对象,...

    jquery ajax 向后台传递数组参数示例

    当需要传递数组作为参数时,可能会遇到一些挑战,特别是在数组中包含复杂对象的情况。本文将深入讲解如何在jQuery AJAX中向后台传递数组参数,并提供示例代码。 首先,理解问题的关键在于JavaScript数组在传递给...

    java jsp简单的登录功能,验证,数据库验证等

    前端通过HTML收集用户输入,JavaScript进行初步校验,然后通过JSP将数据传递给Java后台,后台连接MySQL数据库进行最终验证。如果验证通过,用户会被认为已成功登录,否则将返回错误信息。这只是一个基础的实现,实际...

    上传文件fileupload+解决enctype= multipart/form-data无法传递其他参数

    `multipart/form-data`是用于处理包含二进制数据(如文件)的表单提交的编码类型,但它默认情况下不支持传递额外的文本参数。 在描述中提到了使用Apache Commons IO和Commons Fileupload这两个Java库来解决这个问题...

    传递指定的参数建立websocket连接,并给指定的连接用户发送消息

    5. **OosDsParamsVO**: 这可能是一个数据传输对象,用于封装传递给WebSocket的参数。这些参数可能包含连接标识、消息内容等信息。 6. **IOosAgentSendNewsService**: 这是服务接口,定义了发送消息的方法,方便其他...

    java 责任链模式 可以累积前一步操作结果和参数

    在Java中,通过责任链模式,我们可以将多个处理者对象串联起来,每个处理者都有机会处理请求,或者将请求传递给下一个处理者。这种模式的优点在于解耦了发送者和接收者,使得系统更具灵活性,能够添加、删除或改变...

    spring学习: spring mvc在redirect请求中传递数据

    - 通常,我们在表单提交后验证成功或失败,会使用重定向来显示一个确认页面,此时就需要传递验证结果或错误信息。 7. **源码分析** - 深入理解Spring MVC的源码,可以了解`RedirectAttributes`是如何将数据封装并...

    Java Webservice Axis2 Client(含soapheader验证)

    本教程将深入探讨如何在Java中使用Axis2构建一个包含SOAP Header验证的客户端。 首先,理解SOAP Header至关重要。SOAP Header是SOAP消息的一部分,用于传递非处理信息,如认证、交易、安全等。与SOAP Body不同,...

Global site tag (gtag.js) - Google Analytics