`
mypyg
  • 浏览: 545609 次
  • 性别: 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零基础-参数传递-1.md

    内容概要: 本文详细介绍了Java中的参数传递概念。...建议通过编写简单的Java程序,并使用不同的参数传递方式来验证理论和加深理解。 如有疑问,可以参考Java官方文档或搜索相关资料,进一步扩展学习。

    Java零基础-参数传递-2.md

    内容概要: 本文进一步介绍了Java中的参数传递概念。...建议通过编写简单的Java程序,并使用不同的参数传递方式来验证理论和加深理解。 如有疑问,可以参考Java官方文档或搜索相关资料,进一步扩展学习。

    Java正则表达式 验证手机号码是否合法并脱敏的完整实例

    这时,就需要对用户传递过来的字符串参数进行校验。 本案例我们介绍使用Java代码的正则表达式来验证手机号码其是否合法。 具体编写步骤: 1、封装一个工具类 2、验证手机号码的代码方法编写 3、如果验证通过,对该...

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

    主要介绍了java调用python脚本传递参数的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    java jdk实列宝典 光盘源代码

    java的参数传递;自定义形状类;类的加载顺序;方法和变量在继承时的覆盖和隐藏;排序类; 3数字 数字类;格式化数字;转换数字进制;生成随机数; 4数组和集合 使用Arrays类;动态调整数组长度;java为数据结构中的...

    1、azkaban介绍、三种(solo-server、two-server和multiple-executor)部署方式及验证

    1、azkaban介绍、三种(solo-server、two-server和multiple-executor)部署方式及验证 网址:https://blog.csdn.net/chenwewi520feng/article/details/130728956 介绍阿兹卡班的主要功能、应用场景以及三种部署方式...

    WebService 添加头部验证信息

    对WebService的调用方,添加头部验证信息

    Token验证的代码

    基于spring框架,数据交互是依据URLConnection进行数据传递的,参数在传递的过程使用RAS进行数据加密和MD5加密。

    张孝祥Java就业培训教程.pdf

    3.6 函数的参数传递 3.7 Static关键字 3.8 内部类 3.9 使用Java的文档注释 第4章 面向对象(下) 4.1 类的继承 4.2 抽象类与接口 4.3 对象的多态性 4.4 异常 4.5 包 4.6 访问控制 4.7 使用jar文件 第5章 多线程 5.1 ...

    JAVA面试题最全集

    1.Web安全性的考虑(表单验证、浏览器Basic方式的验证,应用程序的安全性,SSL,代码考虑) 2.简单介绍您所了解的MVC。 3.简单介绍所了解的XML。 4.文档和编码规范 5.Java中的分页、效率考虑。 6.简单介绍您所...

    java 经典面试题 于网络分享

    B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证 C 用户每次提交表单,都会产生一个新的FormBean实例 D 动态FormBean不能进行验证操作 答案:A 8.以下哪些不是...

    Java JDK实例宝典

    3 Java的参数传递 2. 4 自定义形状类 2. 5 类的加载顺序 2. 6 方法和变量在继承时的覆盖与隐藏 2. 7 排序类 2. 8 Singleton单例模式 2. 9 Factory工厂模式 2. 10 Adapter适配器模式 ...

    Java经典编程源码基础例程300.zip

    实例002 输出控制台传递的参数 2 实例003 输出由“*”组成的三角形 3 实例004 输出符号表情 5 第2章 Eclipse开发工具 6 实例005 下载并运行Eclipse工具 7 实例006 为Eclipse安装中文包 8 实例007 使用Eclipse注释...

    java基础案例与开发详解案例源码全

    5.6.8 方法参数及其传递问题144 5.6.9 理解main方法语法及命令行参数147 5.6.1 0递归算法147 5.7 this关键字148 5.8 JavaBean149 5.9 包150 5.9.1 为什么需要包?150 5.9.2 如何创建包151 5.9.3 编译并生成包:151 ...

    Java核心技术II(第8版)

    7.13.5 通过系统剪贴板传递Java对象 7.13.6 使用本地剪贴板来传递对象引用 7.14 拖放操作 7.14.1 Swing对数据传递的支持 7.14.2 拖曳源 7.14.3 放置目标 7.15 平台集成 7.15.1 闪屏 7.15.2 启动桌面应用程序 7.15.3 ...

    深入Java Servlet网络编程

    10. 2 服务器端包含的参数传递 10. 3 服务器端包含的实例 第11章 Applet和Servlet通信 11. 1 Applet和Servlet通信概述 11. 2 Applet和Servlet的网络通信 11. 2. 1 初识Applet和Servlet网络通信 11. 2. 2 Applet和...

    Basic-Java-OTP:一个简单的一次性密码生成器和验证器

    在验证步骤中,用户提供的密码和来自先前步骤的HMAC会传递到OTP引擎进行验证。 错误的密码会导致HMAC不匹配,因此被视为无效。 使用指南 生成一次性密码的步骤 1.创建一个OTPEngine实例,传入一个秘密密钥 ...

    JAVA图书馆管理系统课程设计报告.doc

    功能:点击对应的菜单栏就会弹出对应的对话框,并传递需要的参数。 &lt;4&gt;FrChange.java 该文件是修改用户密码界面的封装类,定义并设置了更改密码界面相关组件及显示效 果,还定义了确定、取消按钮的事件监听。功能:...

    java支付宝沙箱教程

    调试和验证: 支付宝沙箱是一个优秀的调试和验证工具,开发人员可以在其中逐步调试代码,检查参数传递、签名验证、回调通知等是否正确。这有助于及早发现并解决潜在的问题。 文档和教程: 支付宝沙箱提供了详细的...

Global site tag (gtag.js) - Google Analytics