java 中方法调用的奇怪问题

问题描述

java 中方法调用的奇怪问题

public class Test {

/**
 * @param args
 */
public static void main(String[] args) {
    List<String> lista = new ArrayList<String>();
    List<String> listb = new ArrayList<String>();
    Test tt = new Test();
    listb.add("123456");
    tt.tl(lista, listb);
    System.out.println(lista.size());
    System.out.println(listb.size());
}

public void tl(List<String> a,List<String> b){
    a = b;
    System.out.println(a == b);
}

打印结果
true
0
1

解决方案

你在函数中修改a b的值,不会反应到它们的实参上。这和你传一个整数作为参数,在函数中改变,是一样的。

解决方案二:

哪里奇怪了。??....

解决方案三:


java中都是值传递,

解决方案四:

你将a b 作为参数 , 在那个方法内对a赋值,此时a的作用域在这个方法内,当这个方法时他的作用域就发生了改变,也就是说a还是为空,所以才会用输出size位0

时间: 2024-10-02 19:46:12

java 中方法调用的奇怪问题的相关文章

java中对象调用方法返回一个对象的问题

问题描述 java中对象调用方法返回一个对象的问题 例如session.createQuery(hql); 那么这条语句返回的对象属于哪个类呢,如何判断呢? 解决方案 ctrl加鼠标点击createQuery,会有返回方法,或者你在通过session点的时候也可以看到返回方法. 解决方案二: 按住ctrl点击方法,自己去看方法的返回值. 解决方案三: 在java中将一个对象的所有方法打印出来java中远程对象方法调用中的安全策略问题java中返回局部对象问题 解决方案四: 事实上他返回的还是qu

java类中方法调用问题

问题描述 java类中方法调用问题 import java.awt.*;import javax.swing.*;import java.awt.event.*; public class TestTextComponent extends JFrame { private JTextField textField = new JTextField(15); private JPasswordField passwordField = new JPasswordField(15); privat

JAVA中对存储过程的调用方法(七) 创建、并在JAVA中直接调用存储过程

七.在JAVA中创建存储过程 并且在JAVA中直接调用 import java.sql.*; public class ProcedureTest { public static void main(String args[]) throws Exception { //加载驱动 DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); //获得连接 Connection conn=DriverManager.getCon

谈谈JAVA中的调用方式

很多书籍都说Java支持传引用调用的方式,类似于C++中的Person &a引用调用,而近来编程遇到一系列问题让我对此产生了怀疑,于是将这些方法一一列出,我们来一起看看JAVA中的调用方式:   看下面的程序:  class Person {      private String name;//姓名     private String sex;//性别     public Person(String x, String y) {         this.name = x;        

java中方法定义的时候是不允许嵌套一个方法吗

问题描述 java中方法定义的时候是不允许嵌套一个方法吗 java中方法定义的时候是不允许嵌套一个方法吗内部类分为静态和非静态的吗 解决方案 是不允许的,已经明白了 解决方案二: java方法重写的时候,一个调用父类还是子类方法的问题 解决方案三: 静态内部类和非静态内部类的区别 解决方案四: 当然不允许了.....

java中方法是某个类的属性,那么方法是某个类的对象的属性么

问题描述 java中方法是某个类的属性,那么方法是某个类的对象的属性么 java中方法是某个类的属性,那么方法是某个类的对象的属性么 它们之间的关系是什么 解决方案 方法和变量统称为属性,方法是类的方法.如果是静态类就可以用类去调用,如果是普通类,需要先实例化,也就是new,用类的对象来调用. 解决方案二: java中类,对象,方法和属性 对象是定义类出来的. A a=new A(): a就是A类的对象. 方法是在类里面定义出来的 public class A(){ int b=3; publi

布局问题-Java中BorderLayout的一些奇怪问题。。。

问题描述 Java中BorderLayout的一些奇怪问题... BorderLayout布局的JPanel为什么不能多次"嵌套"?求高手指点 public class Test extends JFrame{private BorderLayout borderLayout = new BorderLayout(50);private JPanel p1 = new JPanel();private JPanel p2 = new JPanel();public Test() { t

makefile-Makefile中定义的宏在java中怎么调用?

问题描述 Makefile中定义的宏在java中怎么调用? Makefile中定义的宏有两个值,要求在java中根据这两个值写不同的代码,要怎么将其加入判断? 解决方案 JAVA中定义宏

java泛型-java中方法参数和泛型参数有什么区别

问题描述 java中方法参数和泛型参数有什么区别 java中方法参数和泛型参数有什么区别 方法是可以省略参数数据类型的 泛型可以省略吗 解决方案 泛型就是泛滥的数据类型(我是这样理解的),用T表示,代表了所有的数据类型.比如一个函数传递的值是String,但是因为需求,还需要支持int型.在这种情况下可以考虑重写方法,也可以考虑用T(泛型)来代替String,表示什么类型都可以.封装的时候经常用到. 解决方案二: 不清楚,java方法的参数数据类型可以省略吗-_=我去补一下知识