JAVA中的传递都是值传递吗?有没有引用传递呢?
JAVA中的传递都是值传递吗?有没有引用传递呢?
在回答这两个问题前,让我们首先来看一段代码:
Java代码
public class ParamTest {
// 初始值为0
protected int num = 0;
// 为方法参数重新赋值
public void change(int i) {
i = 5;
}
// 为方法参数重新赋值
public void change(ParamTest t) {
ParamTest tmp = new ParamTest();
tmp.num = 9;
t = tmp;
}
// 改变方法参数的值
public void add(int i) {
i += 10;
}
// 改变方法参数属性的值
public void add(ParamTest pt) {
pt.num += 20;
}
public static void main(String[] args) {
ParamTest t = new ParamTest();
System.out.println("参数--基本类型");
System.out.println("原有的值:" + t.num);
// 为基本类型参数重新赋值
t.change(t.num);
System.out.println("赋值之后:" + t.num);
// 为引用型参数重新赋值
t.change(t);
System.out.println("运算之后:" + t.num);
System.out.println();
t = new ParamTest();
System.out.println("参数--引用类型");
System.out.println("原有的值:" + t.num);
// 改变基本类型参数的值
t.add(t.num);
System.out.println("赋引用后:" + t.num);
// 改变引用类型参数所指向对象的属性值
t.add(t);
System.out.println("改属性后:" + t.num);
}
}
public class ParamTest {
// 初始值为0
protected int num = 0;
// 为方法参数重新赋值
public void change(int i) {
i = 5;
}
// 为方法参数重新赋值
public void change(ParamTest T) {
ParamTest tmp = new ParamTest();
tmp.num = 9;
T = tmp;
}
// 改变方法参数的值
public void add(int i) {
i += 10;
}
// 改变方法参数属性的值
public void add(ParamTest pt) {
pt.num += 20;
}
public static void main(String[] args) {
ParamTest t = new ParamTest();
System.out.println("参数--基本类型");
System.out.println("原有的值:" + t.num);
// 为基本类型参数重新赋值
t.change(t.num);
System.out.println("赋值之后:" + t.num);
// 为引用型参数重新赋值
t.change(t);
System.out.println("运算之后:" + t.num);
System.out.println();
t = new ParamTest();
System.out.println("参数--引用类型");
System.ou
相关文档:
看了java私塾的中级视频,感觉很全面,总结整理出了一些Eclipse快捷键,希望对有用的朋友有所帮助:
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实 ......
1. Struts体系结构实现了MVC设计模式的概念,那么它将以下选项中给出的什么分别映射为web应用中的组件?( )
A View
B Model
C ActionServlet
D Action
E ActionMapping
F Controller
参考答案:ABF
2. 在Struts体系结构中,以下哪个由代表系统状态和商业逻辑的Action来构建 ......
在文件里增加一行的唯一方法就是读取原始文件,然后写入到一个临时文件,同时写入要插入的数据。然后删除原始文件,再把临时文件改名为原始文件名。
package net.java2000.io;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import jav ......
一、Spring基础知识及IOC_选择题
1. 下面关于spring描述错误的是:( )
A Spring支持可插入的事务管理器,使事务划分更轻松,同时无需处理底层的问题。
B Spring事务管理的通用抽象层还包括JTA策略和一个JDBC DataSource。
C 与JTA或EJB CMT一样,Spring的事务支持依赖于Java EE环境。
D Spr ......
1、 Java对象赋值
Java代码
Employee e1=
new
Employee(
"李"
);
//Employee是一个自定义类
Employee e2=e1; //赋值对象
e2.setName("王"
);
//改变对象e2的名字
System.out.println(e1.getName ......