Java传(2)】的更多相关文章

刚刚学习java传参的时候很纠结,也非常的不理解!课本上的“按值传递”和“按址传递”搞的自己是一头雾水,后来写的项目多了,自然就明白了! 现在写传参几乎就是条件反射一般——“秒成”,分享当初自己为此写的一个ppt,留个纪念!非常简单,高手莫笑! 按值传递和按址传递的对比 同样都是传入参数,为什么变量a的值没改变,而b[0]的值改变了呢? 两种参数传递的规则 用基本数据类型传参常见的一个错误! —目的:用传参的方法将一个数的值增加至原来的3倍. 结果:输出i=10. 解释:当执行方法的时候,n拷贝…
最近做练习时碰到一个问题,Java到底是怎样传参的,经过查资料与实验,我发现Java传参都是传引用变量的副本值. 1 Java中的引用变量 1.1 字面值引用变量:即基本数据类型的引用变量 ,如 int b = 1 , b就是字面值引用变量. 多个字面值引用变量也可以指向同一字面值,其中一个引用修改字面值,不会影响另一个引用字面值.   1.2 对象引用变量:即普通java对象的引用变量 ,如 String a = "abc" , Object b = new Object,a.b就是…
        Java传引用问题  使用Java调用方法时,可以传值,也可以传引用.下面说说两者的区别: 1.传值 传值中的"值"类型是指java的8大基本类型(基础知识,不知道请自行谷歌).使用java传值是把实参的值传递给形参,但是对形参所做的任何改变都对实参没有影响.例如以下代码: public Class Demo{ public static void test(int x){ x++; System.out.println("方法内,x == "+x)…
java 传参方式--值传递还是引用传递 参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递.写它是为了揭穿普遍存在的一种神话,即认为 Java 应用程序按引用传递参数,以避免因依赖“按引用传递”这一行为而导致的常见编程错误. 对此节选的某些反馈意见认为,我把这一问题搞糊涂了,或者将它完全搞错了.许多不同意我的读者用 C++ 语言作为例子.因此,在此栏目中我将使用 C++ 和 Java 应用程序进一步阐明一些事实. 要点 读完所有的评论以后,问题终于明白了…
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在某个项目中需要考虑使用java后台调用由C#编写的切图程序(exe),并且前端能够获取到切图的进度和相关描述信息. 2.解决思路 a.首先改造切图程序为接受参数从Main函数传递. b.编写java后台传参调用exe的函数. c.解决通信问题. 3.具体实现 3.1改写C#窗体程序 C#中的入口程序为Main函数,其中Main函数默认是没有参数的,如果添加参…
java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? String和int参数传递是按值传递还是引用传递? 一道面试题目,String的传递: public String change(String s){ s = "222"; return s; } public static void main(Stirng[] args){ String s = "111"; change(s); sout(s); } 我看到题目愣了一下,本来不假思考的结果是1…
凡是说Java对象传的是引用,简直一派胡言,尤其误导我这种Java初学者,更严重的是以前用过C++的Java初学者. 我们都知道Java建立对象一般都是需要这样的格式: Object obj = new Object(“初始化”); 但是在C++中则是可以这样写: Object obj = Object(“初始化”); 少了new,为什么会这样呢? 因为Java对于声明一个对象建立的是一个指针,相当于C++的这样: Object *obj = new Object(“初始化”); 这下看上去就一…
1.  如果参数是基本数据类型(int.long等),传值.方法内部改变参数值,外部值不变. 2.  如果参数是对象类型,传地址.方法内部改变对象值,外部对象值改变.但是,如果方法内部调用new重新构建参数对象,外部对象仍然记录构造前的对象值.(在不同函数中,所有改String的改变可能都要重构String,或者说所有String都是传值的,在这点上,相当于String为基本类了) Java参数传值还是传引用 参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值…
概述      java中的参数传递问题可以根据参数的类型大致可以分为三类:传递基本类型,传递String类型,传递引用类型,至于最终是否可以归纳为值传递和引用传递,根据每个人的理解不同,答案不同,此处不做强调. 传递基本类型 public class Test1 { public static void main(String[] args) { int n = 3; System.out.println("Before change, n = " + n); changeData(…
原文链接: http://blog.csdn.net/jdluojing/article/details/6962893 java是传值还是传址,这个问题已经讨论了很久了,有些人说是传值的,有些人说要看情况,有些情况是传值,有些情况是传址.到底是传值还是传址呢?我们暂时先把传址理解为C++的传指针一样..... 先看下面一段程序: package luojing; public class StringDemo { public static void main(String[]args) {…
本随笔旨在强化理解传值与传引用   如下代码的运行结果 其中i没有改变,s也没有改变. 但model中的值均改变了. i :100s :hellomodel :testchangemodel2 :changeModel java中的形参是复制实参在栈中的一份拷贝,所以在函数中改变形参是无法改变实参的值的,改变引用只是将形参所代表的引用指向另外的新的对象,而实参的引用还指向原来的对象,改变形参引用的对象当然会影响实参引用对象的值,因为他们的引用都指向同一个对象.   package newtest…
java中的方法可以传递参数,参数的传递方法就是值传递. 参数有形参和实参,定义方法时写的参数叫形参,真正调用方法时,传递的参数叫实参. 调用方法时,会把实参传递给形参,方法内部其实是在使用形参. 所谓值传递就是当参数是基本类型时,传递参数的值,比如传递i=10,真实传参时,把10赋值给了形参. 当参数是对象时,传递的是对象的值,也就是对象的首地址.就是把对象的地址赋值给形参. 基本类型当做方法的形参时 当引用类型当做参数的形参时 基本数据类型和引用数据类型作为参数的区别 基本数据类型的变量中直…
Java平台: Java API JVM 特点:可跨平台 Java运行机制: 编译(javac.exe)                                  运行(java.exe) JAVA文件 ------------>class文件(可跨平台的)------------>程序结果  编译: javac 源文件.java 运行: java  类名 jdk:开发工具 jre: JVM: jre:运行环境 JVM: 安装JDK, 配置环境变量: PATH:找编译运行的工具等:jd…
对照代码和运行结果便知"..." 的意义 import java.util.ArrayList; public class StringDemo { public static void main(String[] args) { testPoint("LOL"); //一个参数传入 testPoint("L","O","L"); //3个String参数传入 testPoint(new String[]…
__________________________夜夜都是魂牵梦绕. 题目: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月有生一对兔子,假如兔子都不死,问每个月的兔子总数 为多少? public class rabbit{ public static void main(String[] args){ System.out.println("第1个月的兔子对数:1"); System.out.println("第2个月的兔子对数:1"…
____________________________去告诉世界,我已经横空出世了! 你好丫,世界! public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } public class HelloWorld { public static void main(String[] args) { System.out.println(&q…
参考链接:https://www.cnblogs.com/linkstar/p/5951141.html public class Example { String testString = public static void main(String[] args){ Example ex = new Example(); ex.change(ex.testString,ex.testCharArray); System.out.println(ex.testString); System.o…
刚开始学Java的时候一度以为:基本数据类型是值传递,引用类型是引用传递.新人很容易在这两个概念上面被搞糊涂,后来看了Hollis的文章才明白了Java中只有值传递. 接下来我能用简单明了的方式来说明这一问题,希望能对刚学习Java的朋友有点帮助. 1.概念 值传递:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数. 引用传递:在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数. 值传递的概念没啥说…
看了很多关于阐述JAVA传参到底是值传递还是引用的问题,有些说得很肤浅让人感觉似懂非懂的感觉,但是好像又能解决一些问题,然后就止步了.还有一些则是,讲得很深奥,看着好像很有道理的样子,但是其实还是没怎么懂. 今天再次碰到这个问题时,自己再反思了一下,个人对于一个问题的解决思路,突然觉得大部分人都是碰到问题就去百度,没有去思考这些问题的根本,我们大部分人都缺少独立思考的能力.我一直觉得,所有一切的知识都是一种参考,最最重要的是你以什么方式去保存到大脑里面,是临时的内存保存,还是稍微深刻的硬盘保存,…
在c/c++中对于传参类型,无外乎就是传值.传引用.传指针这几种.但在java中,由于没有指针类型,其传参的方式也发生了相应的变化.之前有搜过相关的知识点一直理解的是:Java的传参方式中主要有两种:传值和传引用.(基本数据类型相当于传值,对象相当于传参) 但是,在做需求的时候遇到了,将从上一个方法中获取到的对象,当做参数传进下一个方法中的时候,如果传进来的是空对象,那么在给这个“对象”直接赋值的时候,会报空指针异常! 探究与理解:Java中传值也就是传的是原变量的一个副本,函数内部无论怎么操作…
1. 在java中所有的参数都是传值的,引用符号&的传递是C++中才有的:2. 在java传参中,基本类型(byte--short--int--long--float--double--boolean--char)的变量总是按值传递:3. 对于对象来说,不是将对象本身传递给方法,而是将对象的的引用或者说对象的首地址传递给方法,引用本身是按值传递的:4. 对于String.Integer.Long,数组等,这些都相当于对象,因此传参时相当于是传引用:5. 从下面代码例子中可以看出来 public…
今天看<java 核心 卷1>的时候,作者提到了函数传参的问题,他提到,java传参,传的是值,而不是引用,然后,函数将要传的实参的值(如果实参是基本数据类型,那么就是值.如果实参是对象,则是内存地址)拷贝之后,赋予形参,然后,对形参进行操作.如果是8个基本类型,那么无论如何操作,都不会对原来的实参产生影响.如果要传的实参是对象,由于原来的实参和形参都是指向的同一个对象,所以,所有对形参的操作都将作用到原来的东西上,但是如果对形参进行了重新赋值,那么只是改变了形参的指向,那么将不会在对原来的实…
java传jsp,代码如下: /**去修改页面 * @param * @throws Exception */ @RequestMapping(value="/goEdit") public ModelAndView goEdit(Model model)throws Exception{ ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); //…
最近在写代码的时候出了一个错误,由于对值引用理解的不深,将Integer传入方法中修改,以为传入后直接修改Integer中的值就不用写返回值接收了,虽然很快发现了问题,但还是来总结一下 首先是代码: public static void main(String[] args){ Integer a1 = 5; updateInteger(a1); System.out.println(a1); } public static void updateInteger(Integer var){ va…
2016-10-19 说说&和&&的区别 初级问题,但是还是加入了笔记,因为得满分不容易. &和&&都可以用作逻辑与的运算(两边是boolean类型),全真则真,一假则假. &&还具有短路的功能,即第一个表达式为false,则不再计算第二个表达式.例如, if(str != null&& !str.equals("")) 当str为null时,后面的表达式不会执行,不会出现NullPointerExcept…
参数的值传递 实参必须与方法中次你故意的参数在次序和数量上匹配,在类型上兼容.类型兼容是指不需要经过显式的类型转换,实参的值就可以传递给形参.如将int型的实参值传递给double型形参. 当调用方法时,实参的值传递给形参,这个过程称为按值传递.如果是实参是变量而不是直接量,则将该变量的值传递给形参.无论形参在方法中是否改变,该变量都不受影响. package welcome; /* * void方法 */ public class TestVoidMethod { public static…
关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习和分析一下,着急可以先看最后的结论. >>基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型.相应的,变量也有两种类型:基本类型和引用类型.基本类型的变量保存原始值,即它代表的值就是数值本身:而引用类型的变量保存引用值,"引用值"指向内存空间的地…
注:引自http://zwmf.iteye.com/blog/1738574 关键字: java对象 引用 Java对象及其引用 关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术.把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路. 为便于说明,我们先定义一个简单的类: class Vehicle { in…
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import android.app.Activity; import android.app.AlertDialog; import android.content.ActivityNotFoundException; import android.content.DialogInterface; impor…
原文:http://www.iteye.com/topic/295776 JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,JNI技术的出现主要是基于三个方面的应用需求: 1. 解决性能问题Java具有平台无关性,这使人们在开发企业级应用的时候总是把它作为主要候选方案之一,但是性能方面的因素又大大削弱了它的竞争力.为此,提高Java的性能就显得十分重要.Sun公司及Java的支持者们为提高Java的运行速度已经做出了许多努…