`
WongYoung
  • 浏览: 6540 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java参数传递的基本原理

阅读更多
  java中的参数传递的有值传递和引用传递两种方式,基本类型均是值传递,引用类型均是引用传递。而这两种方式又涉及到java的内存模型--栈内存和堆内存的概念。将传递方式和内存模型的关系弄清楚,再注意到函数中对参数究竟是做了怎样的处理,就基本上能够理解java中函数调用的参数传递问题。

  值传递中只涉及到栈内存,该参数指向操作系统为值分配相应地址的栈内存中所存放的是基本类型的值本身;引用传递涉及到了栈内存和堆内存,该参数指向操作系统为值分配的相应地址的栈内存中存放的是一个内存地址,而此内存地址指向的是存放在堆内存中的该值。

  因为引用类型的传递理解起来比较困难,明白基本的原理后,在此基础上就需要明确以下两点:

  1、参数为引用类型的被调用函数有没有改变该参数的地址

    public static void testDate(Date date){
date = new Date();//创建了新对象,不再指向实参地址
System.out.println("4:"+date.getTime());
}
    特别需要关注String对象,该对象所提供的操作均是在其内部创建了新的对象,这就启发我们要注意jdk或者第三包提供的相应方法的原理

  2、参数为引用类型的被调函数有没有对指向所指向的对象进行过处理

    private static InnClass reverseString(InnClass resource,InnClass   result){
           result = resource;//并没有对所指向的对象有任何操作,只是改变了result所指向的对象
  return result;
    }
分享到:
评论

相关推荐

    Java方法参数传递机制原理解析

    主要介绍了Java方法参数传递机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java参数传递及值传递实现原理详解

    主要介绍了Java参数传递及值传递实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java的可变参数讲解代码(使用方式、原理、结合泛型、使用元组或列表进行参数传递、 使用默认值、缓存计算结果、实战构建动态日志)

    在方法声明中使用省略号(...) 表示,可以将不定数量的参数传递给方法。可变参数使得方法更加灵活,可以接受任意数量的参数,并以数组形式访问这些参数。 适用人群: Java可变参数适用于所有使用Java编程语言的...

    Java方法的参数传递机制实例详解

    主要介绍了Java方法的参数传递机制,结合实例形式详细分析了java方法参数传递机制原理、实现方法及操作注意事项,需要的朋友可以参考下

    javascript实现html页面之间参数传递的四种方法实例分析

    本文实例讲述了javascript实现html页面之间参数传递的四种方法。分享给大家供大家参考,具体如下: 我们知道,在服务器端asp,jsp等程序可以接受html页面上的form传来的参数。那么,可不可以传递参数给html页面呢。...

    张孝祥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与C语言混合开发技术

    通过JNI接口可以在Java代码中调用本地方法,并将参数和返回值传递给本地方法。在C语言中编写本地方法时,需要注意函数名、参数类型和返回值类型的定义,以及内存分配和释放的问题。在Java代码中调用本地方法时,需要...

    1000道 互联网Java架构师面试题.pdf和JAVA核心知识整理.zip

    14、在 mapper 中如何传递多个参数? 15、Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql? 16、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签? 18、为什么说 Mybatis ...

    疯狂JAVA讲义

    5.2.2 方法的参数传递机制 116 5.2.3 形参长度可变的方法 120 5.2.4 递归方法 121 5.2.5 方法重载 123 学生提问:为什么方法的返回值类型不能用于区分重载的方法? 124 5.3 成员变量和局部变量 124 5.3.1 成员...

    JAVA面试题最全集

    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出...

    Java典型模块

    22.3.5 参数的传递 22.3.6 Applet程序的相关方法 22.4 小结 第23章 Applet事件监听项目 (事件处理机制) 23.1 Applet事件监听原理 23.1.1 项目结构框架分析 23.1.2 项目功能业务分析 23.2 Applet事件监听项目 ...

    java笔试题

    18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 19、String和StringBuilder、StringBuffer的区别? 20、重载(Overload)和...

    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 ...

    Web服务器的java实现

    HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:  GET 路径/文件名 HTTP/1.0  文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。  (3) 应答:Web浏览器提交请求后...

    jsp+servlet开发java web图书后台管理系统

    项目描述 ...request是负责页面之间传递参数和数据的类,是java封装好的,你只要把它当成一个工具就可以了,就好比你用遥控器控制电视,你并不需要详细了解遥控器的工作原理。所以不用配置mysql。

    Java入门教程(微学苑)-part1

    3.16 作为参数传递 51 3.17 Java方法重载 52 3.18 Java类的基本运行顺序 53 3.19 Java包装类、拆箱和装箱详解 54 3.20 包装类的应用 54 3.20.1.1 1) 实现 int 和 Integer 的相互转换 54 3.20.1.2 2) 将字符串转换为...

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    3.10.2 如何在超链接中传递多个参数 3.10.3 重定向后出现404错误 3.11 精彩回顾 第4章 体验面向对象 1IavaBean技术 4.1 本章学习任务 4.1.1 本章知识体系 4.1.2 实例开发任务 4.2 JavaBean简介 4.2.1 JavaBean产生...

Global site tag (gtag.js) - Google Analytics