`
caiceclb
  • 浏览: 241951 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

看了 [java的面使题] java的面使题 之后,对对象引用的测试

阅读更多
原帖地址:http://www.iteye.com/topic/281012

看完问题之后,我进行了个测试,代码如下:

package cn.tofishes.collection;

import java.util.ArrayList;
import java.util.List;

public class ReferenceTest {
	/* Person在传入方法前初始化 */
	public static void setPerson(Person p) {
		String name = "caiceclb";
		int age = 22;
		p.setAge(age);
		p.setName(name);
	}

	/* Person在传入方法后初始化 */
	public static void setPerson2(Person p) {
		p = new Person();
		String name = "caiceclb";
		int age = 22;
		p.setAge(age);
		p.setName(name);
	}

	public static void setList(List<String> list) {
		list.add("Hello world!");
	}
	
	public static void main(String[] args) {
		Inner in = new Inner();
		/* 传入前先给初始化 */
		Person p = new Person();
		List<String> list2 = new ArrayList<String>();
		
		/* 传入前设为null */
		Person p2 = null;		
		List<String> list = null;
		
		/* 测试方法执行,
		 * 结果:传入前值为null,方法执行后依然是null
		 * 		传入前合理初始化,方法执行后可以取出值
		 *  */
		in.Value(list);
		ReferenceTest.setPerson(p);
		ReferenceTest.setPerson2(p2);
		ReferenceTest.setList(list2);
		
		/* 输出正常 */
		System.out.println(list2.get(0));
		System.out.println(p.getName());
		/* 以下这两句都会抛出异常 */
	//	System.out.println(list.get(0));
		System.out.println(p2.getName());
	}
	
}
class Inner {
	public void Value(List<String> a) {
		a = new ArrayList<String>();
		a.add("Hello");
	}
}
class Person {
	private String name ;
	private int age;
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * @return the age
	 */
	public int getAge() {
		return age;
	}
	/**
	 * @param age the age to set
	 */
	public void setAge(int age) {
		this.age = age;
	}
	
}


很有趣的引用传值问题。

PS:原帖错误蛮多的,有人回帖说标题子打错了,然后我发现他的描述也错误,
引用
public static void main(String[] args) throws CloneNotSupportedException, BusinessException {
       
        List a = null;

        B b = new B();
        b.mm(a);
        System.out.println(a); //这样打印出来应该是null,怎么会异常?!
    }


分享到:
评论
2 楼 caiceclb 2008-11-28  
n5281407 写道

原帖不会有异常,a = null;

额,我就是这个意思,你没看原帖吧,原帖描述说是异常,实际应该是null
1 楼 n5281407 2008-11-28  
原帖不会有异常,a = null;

相关推荐

    Java测试试题一套

    【Java测试试题解析】 ...以上是对Java测试试题的详细解释,涵盖了Java基础语法、多线程、事件处理、异常处理、类和对象、访问修饰符等相关知识点。这些内容对于理解和掌握Java语言的基本概念和应用至关重要。

    《java程序设计》期中考试测试题 含答案.doc

    测试题涵盖了 Java 基础知识点,包括 Java 源程序编译、变量、数据类型、运算符、控制语句、方法、数组、类和对象等。 选择题部分包括 10 道题,涵盖了 Java 基础知识点,例如 Java 源程序编译后的文件扩展名、合法...

    Java阶段测试题+答案(英文)

    Java阶段测试题+答案是Java语言的测试题和答案,涵盖了Java的多个方面,包括变量、数据类型、运算符、控制结构、方法、数组、对象等。下面是对测试题的解释和答案。 1. 关于变量和数据类型 测试题中提到“所有...

    JAVA第一阶段基础测试题,java变量,运算符,分支,循环测试题.pdf

    通过对测试题的解析和解释,帮助初学者对 JAVA 基础知识进行巩固和提高。 一、变量 *JAVA 中的变量可以是基本数据类型(primitive types)或引用类型(reference types) *基本数据类型包括整数(int)、浮点数...

    java面向对象编程测试题

    在本测试题中,我们将探讨一系列与Java面向对象相关的知识点,这些知识点是初学者到中级开发者都应掌握的基础。 一、类与对象 1. 类是面向对象编程的基本单位,它代表现实世界中的一个实体或概念。类定义了对象的...

    java面试题集锦 java面试题集锦

    这些面试题通常用于测试开发者对Java基础知识的掌握程度。理解JDK与JRE的区别可以帮助开发者理解开发环境和运行环境的不同需求,而`==`和`equals`的使用则涉及到对Java内存模型的理解,这是编写正确、健壮的Java代码...

    JAVA面向对象基础测试题-继承-封装-多态等测试题.docx

    **解析**:在这个例子中,虽然 `num` 是私有的,但在 Java 中,对象作为参数传递时实际上传递的是对象的引用。因此,当 `update` 方法被调用时,它可以通过传递进来的引用修改 `Question` 对象的 `num` 属性,所以...

    北大青鸟S1 JAVA 选择题50题内部测试

    【北大青鸟S1 JAVA 选择题50题内部测试】是北大青鸟教育机构为学员准备的一套Java编程语言的精选选择题集,旨在帮助学员巩固和检验S1阶段的学习成果。这套试题涵盖了一小时的限时测试,旨在锻炼学员在实际考试环境中...

    java培训测试题

    "Java培训测试题"是一个针对平安科技深圳有限公司员工入职培训的资源集合,旨在帮助员工掌握和巩固Java编程的基本概念和技术。这个资源包可能包含了一系列的练习题、复习材料以及额外的副本,以确保学习者全面理解和...

    企业java工程师测试题

    企业java工程师测试题 1. 面向对象的特征有哪些方面? 答案:最基本特征:封装,继承,多态。 其他特征:抽象关联,聚合,组合,内聚,耦合 2. String是最基本的数据类型吗? String 和StringBuffer的区别? 答案:...

    java测试题java测试题.doc

    Java测试题 本资源主要测试了Java语言的基础知识和编程能力,涵盖了Java的基本概念、面向对象编程、异常处理、线程编程、Java应用程序和Applet程序的开发等方面。 一、填空题 1. Java源文件的扩展名为.java,而...

    java100道选择题含答案.pdf

    Java 语言选择题解析 ...以上是对 Java 语言选择题的解析,涵盖了标识符规则、源文件命名、数据类型、面向对象、方法调用、继承、并发特性、流的类型以及方法重载等知识点。这些题目有助于巩固 Java 编程的基础知识。

    JAVA应用题实验题

    在“JAVA应用题实验题”中,我们很可能会遇到一系列旨在加深对Java语言理解的实践题目。这些实验题通常涵盖了Java的基础语法、面向对象编程概念、数据结构与算法、异常处理、IO流、多线程、网络编程等多个方面。 1....

    JAVA基础题 测试题

    3. **配置Java环境**:在计算机上配置Java环境,主要是设置PATH环境变量,使其指向JDK安装目录的bin文件夹,这样在命令行中就可以直接使用javac(编译器)和java(解释器)等工具。 4. **合法标识符**:标识符用于...

    java 期末测试题库

    Java 期末考试题库,包含基础题单选题 18 道,涵盖 Java 语言基础知识点,包括变量、数据类型、运算符、控制流程、数组、继承关系、方法和类的定义等。 一、单选题: 1. 下列语句序列执行后,k 的值是(B)。这是...

    java基础测试题(附答案)

    以下是对给定的Java基础测试题及其答案的详细解释: 1. **习题训练1** - 关于Java继承的描述,选项C错误。子类只能继承父类的非私有属性(public和protected),而不能继承私有属性。 2. **习题训练2** - 当`try`...

Global site tag (gtag.js) - Google Analytics