java数据类型传递探索
来源:互联网 发布:cad办公室网络布线图 编辑:程序博客网 时间:2024/05/22 03:31
学习java也有一些时间了,但是对java里的数据类型传递方法还是不甚了解
以下是我在jre1.6.0_04 运行环境 上对java 数据内型传递方式的探索
感觉收获还是彼多,因为出现了我遇料之外的结果。
一、基本数据类型:
基本类型为值传递,基本类型中的数组为引用传递;
探索代码如下:
package cn.cn;
public class Ttest2 {
public void change() {
int a = 45;
int b = 12; //初始化
System.out.println(a + " " + b); //初始化后输出
a = b; //b赋给a
a = 534;//对a重新赋值
System.out.println(a + " " + b);// 操作后再输出
}
public static void main(String args[]) { //主函数
Ttest2 tt = new Ttest2();
tt.change();
}
}
输出结果为: 45 12
543 12; 结论:基本类型为值传递
package cn.cn;
public class Ttest2 {
public void change() {
int a[]=new int [2];
int b[]=new int [2]; //创建数组 a ,b
for(int i=0;i<2;i++){//初始化数组a
a[i]=6;
}
for(int j=0;j<2;j++){//初始化数组b
b[j]=10;
}
for(int k=0;k<2;k++){//初始化后输出
System.out.println("a["+k+"]:"+a[k] + " " +"b["+k+"]:"+b[k]);
}
a=b; //对数组操作
for(int m=0;m<2;m++){
System.out.println("a["+m+"]:"+a[m] + " " +"b["+m+"]:"+b[m]);//操作后输出
}
for(int n=0;n<2;n++){ //改变a里面的值
a[n]=989;
}
for(int m=0;m<2;m++){ //改变a里的值后再输出
System.out.println("a["+m+"]:"+a[m] + " " +"b["+m+"]:"+b[m]);//操作后输出
}
}
public static void main(String args[]) {//主函数
Ttest2 tt = new Ttest2();
tt.change();
}
}
输出结果为:
a[0]:6 b[0]:10
a[1]:6 b[1]:10
a[0]:10 b[0]:10
a[1]:10 b[1]:10
a[0]:989 b[0]:989
a[1]:989 b[1]:989
package cn.cn;
public class Ttest2 {
public void change() {
int a[] = new int[2];
int b[] = new int[2]; // 创建数组 a ,b
for (int i = 0; i < 2; i++) {// 初始化数组a
a[i] = 6;
}
for (int j = 0; j < 2; j++) {// 初始化数组b
b[j] = 10;
}
for (int k = 0; k < 2; k++) {// 初始化后输出
System.out.println("a[" + k + "]:" + a[k] + " " + "b[" + k + "]:"
+ b[k]);
}
a[0] = b[0];
a[1] = b[1];// 对数组操作
for (int m = 0; m < 2; m++) {
System.out.println("a[" + m + "]:" + a[m] + " " + "b[" + m + "]:"
+ b[m]);// 操作后输出
}
for (int n = 0; n < 2; n++) { // 改变a里面的值
a[n] = 989;
}
for (int m = 0; m < 2; m++) { // 改变a里的值后再输出
System.out.println("a[" + m + "]:" + a[m] + " " + "b[" + m + "]:"
+ b[m]);// 操作后输出
}
}
public static void main(String args[]) {// 主函数
Ttest2 tt = new Ttest2();
tt.change();
}
}
输出结果为:
a[0]:6 b[0]:10
a[1]:6 b[1]:10
a[0]:10 b[0]:10
a[1]:10 b[1]:10
a[0]:989 b[0]:10
a[1]:989 b[1]:10
结论: 基本类型数组对数组名操作 为引用传递 对具体值操作为值传递
二、String 类
package cn.cn;
public class Ttest2 {
public void change() {
String a = "中国";
String b = "韩国"; // 初始化String 变量a,b
System.out.println(a + " " + b); // 初始化后输出
a = b;
System.out.println(a + " " + b); // 对数据操作后输出
a = "美国";
System.out.println(a + " " + b); // 改变a的值后输出
}
public static void main(String args[]) {// 主函数
Ttest2 tt = new Ttest2();
tt.change(); // 方法调用
}
}
输出结果:
中国 韩国
韩国 韩国
美国 韩国
package cn.cn;
public class Ttest2 {
public void change() {
String a[] = { "中国", "俄罗斯" };
String b[] = { "韩国", "美国" }; // 初始化String 变量a,b
for (int i = 0; i < 2; i++) {
System.out.println("a[" + i + "]:" + a[i] + " " + "b[" + i
+ "]:" + b[i]); // 初始化后输出
}
a = b; //对数组操作
for (int j = 0; j < 2; j++) {
System.out.println("a[" + j + "]:" + a[j] + " " + "b[" + j
+ "]:" + b[j]); // 对数据操作后输出
}
a[0] = "加拿大";
a[1] = "加拿大";
for (int j = 0; j < 2; j++) {
System.out.println("a[" + j + "]:" + a[j] + " " + "b[" + j
+ "]:" + b[j]); // 对数据操作后输出
} // 改变a的值后输出
}
public static void main(String args[]) {// 主函数
Ttest2 tt = new Ttest2();
tt.change(); // 方法调用
}
}
输出结果:
a[0]:中国 b[0]:韩国
a[1]:俄罗斯 b[1]:美国
a[0]:韩国 b[0]:韩国
a[1]:美国 b[1]:美国
a[0]:加拿大 b[0]:加拿大
a[1]:加拿大 b[1]:加拿大
结论:String 类型为值传递;但String 数组为引用传递
三、类类型:
package cn.cn;
public class Student {
private String name; // 学生名字属性
public void setName(String name) { // 为学生取名字的方法
this.name = name;
}
public String getName() { // 取得学生的名字的方法
return this.name;
}
public static void main(String args[]) { // 主函数
Student stu_1 = new Student(); // 创建学生对象stu_1
stu_1.setName("张三"); // 初始化名字属性
Student stu_2 = new Student();// 创建学生对象stu_2
stu_2.setName("李四"); // 初始化名字属性
System.out.println(stu_1.getName() + " " + stu_2.getName()); // 初始化后输出
stu_1 = stu_2; // 对象操作
System.out.println(stu_1.getName() + " " + stu_2.getName()); // 操作后输出
stu_1.setName("王五"); // 改变学生对象stu_1的名字
System.out.println(stu_1.getName() + " " + stu_2.getName()); // 改变对象stu_1的名字后输出
}
}
输出结果:
张三 李四
李四 李四
王五 王五
结论:类类型(String 类除外)数据为引用传递
根据以上探索:
结论: 总的来说: 数组(对数组名的操作) 和 类类型(String类除外) 为引用传递
基本数据类型为值传递
通过以上探索 (jre1.6.0_04 上对java 数据内型传递方式的探索) 使我对java里数据类型的传递方式 有了更深的了解
- java数据类型传递探索
- 深入探索Java-数据类型
- Java[探索]之基本数据类型
- Java数据类型和参数传递
- Java引用数据类型的传递
- Java中数据类型的传递
- java中引用数据类型的传递
- JAVA中引用数据类型的参数传递
- JAVA---基本数据类型和引用数据类型传递值得案例
- java基本数据类型传递与引用传递区别详解
- java基本数据类型传递与引用传递区别详解
- java基本数据类型传递与引用传递区别详解
- java基本数据类型传递与引用传递区别详解
- java基本数据类型传递与引用传递区别详解
- java基本数据类型传递与引用传递区别详解
- java基本数据类型传递与引用传递区别详解
- java基本数据类型传递与引用传递的区别详解
- 深度探索Java RMI远端对象传递技术
- struts一个action使用另一个action中的函数
- Fedora 10下的LAMP环境搭建
- .net cs程序仅启动一次的方法
- 带着十八岁的心去旅行
- 对数学归纳法的思考
- java数据类型传递探索
- 着手准备回家过年
- Java equals
- Endless
- SQL Server数据库设计表和字段的经验
- JVM参数配置大全
- Linux下的磁盘碎片整理
- 中国企业即时通讯
- 外部链接的优化操作