Java值传递的问题,求解,求真相

问题描述

public class StaticTest {private int num1;private static int num2;private int num3;static {num2 = 10;System.out.println(" init num");}public StaticTest() {num1 = 10;num3 = 10;}public void f1(int num1, int num3) {num1 = 20;num2 = 20;num3 = 20;}public void print() {System.out.println(" num1=" + num1);System.out.println(" num2=" + num2);System.out.println(" num3=" + num3);}public static void main(String[] args) {StaticTest test = new StaticTest();test.f1(20, 20);test.print();}}输出结果为: init num num1=10 num2=20 num3=10对num1,num3的值实在是不解,求真相 问题补充:恩,全局变量与局部变量的问题,取了相同的名字给迷惑了,见笑了chen_yongkai 写道

解决方案

吐血!又是这种问题你去看看这个问题,类似的http://www.iteye.com/problems/71456
解决方案二:
[url]http://www.iteye.com/problems/71456 [/url]

时间: 2024-10-27 22:04:38

Java值传递的问题,求解,求真相的相关文章

关于java值传递的问题

问题描述 关于java值传递的问题 怎么来理解java中的值传递,为什么被传递的对象的之不会改变? 解决方案 Java的方法调用是通过栈结构来完成的,每个方法都是一个栈帧,这个栈帧也包含一个操作数栈.参数类型.返回值等数据信息.某个方法调用另一个方法,参数传递是通过寄存器完成的,调用之前先把寄存器变量的值压入自己的操作数栈中,被调用方法加载同一个寄存器变量获取参数值.当方法返回时,调用者栈顶的值仍然是传递之前的值. 我写了一个简单的Java类如下: public class Pass { pub

java-关于Java值传递的问题

问题描述 关于Java值传递的问题 比如说 public static void main(String[] args) { int a=0; String b=null; int c=5; tm.ceshi(a,b,c); System.out.println(a); System.out.println(b); System.out.println(c); } 然后在ceshi进行了一系列操作 public void ceshi(int a,String b,int c){ a=a+2; b

Java值传递和引用传递

先明晰一下文中值传递和引用传递的含义(关于对引用的定义的争议请参考评论区). 值传递:方法调用时,实参把它的值传递给对应的形参(或者说副本),方法执行中形式参数值的改变不影响实际参 数的值. 引用传递:也称为传地址.方法调用时,实参的引用(地址,而不是参数的值)被传递给方法中相对应的形参,在方法执行中,对形参的操作实际上就是对实参的操作,方法执行中形式参数值的改变将会影响实际参数的值. 两个看似没什么区别的代码 代码一 public static void main(String[] args)

一个java问题 值传递的

问题描述 一个java问题 值传递的 public class test1 { private int i = 0; public test1(int i) { this.i = i; } public static void process(test1 obj) { obj = new test1(99); obj.i --; } public static void main(String[] argv) { test1 o1 = new test1(1); process(o1); Sys

sql server-jsp页面之间值传递 求解

问题描述 jsp页面之间值传递 求解 本人小白,刚学jsp,我想把sql server里的一个值显示在页面里,我在页面跳转判断的jsp中,加了一个sql查询以及吧查询结果传递到要跳转的页面 <%``````````````````````````` //如果查询记录数大于0则跳转到ok.jsp,否则重新回到输入页面 if(k>0) { String gsm="select sCGUnitName from Set_CGUnit_WebApp_View where sUser='&qu

理解Java中的引用传递和值传递

关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习和分析一下,着急可以先看最后的结论. >>基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型.相应的,变量也有两种类型:基本类型和引用类型. 基本类型的变量保存原始值,即它代表的值就是数值本身: 而引用类型的变量保存引用值,"引用值"指向内存空间

java网络传递对象时该对象继承父类的属性在网络接收端接收该属性值总是null,why?

问题描述 java网络传递对象时该对象继承父类的属性在网络接收端接收该属性值总是null,why? //=========================== 情形一: ===============================//在网络上传递User1类对象时info属性值在网络的另一端能够接收到! public class User1 implements Serializable { public String info = null; public String userName =

Java语言入门教程(九):Java语言中的值传递

在第八篇博文中,介绍了编写方法体必须了解的基本知识点,初学者已经可 以自己写简单的例子进行练习.在练习过程中,我们不可能把所有的代码都放在 main方法中,Java类一定会有或多或少的方法成员,调用这些方法将是必要的步 骤.而调用方法成员时,如果该方法有参数,就必须要传递实际参数给方法的形 式参数.所以了解Java语言中的值传递是非常必要的. Java中的数据类型分两种,基本数据类型和引用类型.所以本文中也将分别 对这两种数据类型的值传递特征进行介绍. 1.基本数据类型的值传递:基本数据类型传递

java类的问题-JAVA 实例化值传递的问题

问题描述 JAVA 实例化值传递的问题 我有一个类 character另一个类 UI1 与继承自UI1的子类UI2我在UI1 里实例化了 character c=new character():,并用set方法进行了初始化 但子类 通过父类实例化的 c 进行 get set 都是得不到通过UI1初始化后的值,why? 解决方案 楼主可能把子类父类的概念与接口与实现类的概念搞混了.你用set方法赋值之后只有c实例里面的属性改变了,不会传递到别的地方.在UI2中你再创建一个c,这个c和UI1里的c在