java 打印输出_java中System.out.println()打印输出结果

疑点:syso()是打印输出语句,打印的是什么?

syso()不同情况下打印输出的结果不一样:

1.

packagecom.briup;public classSyso {public static voidmain(String[] args) {int i = 1;

System.out.println(i);

}

}

结果为:1

2.

public classSyso {public static voidmain(String[] args) {//int i = 1;//System.out.println(i);

int[] arr = new int[10];

System.out.println(arr);

System.out.println(arr[0]);

}

}

结果为:[I@15db9742

0

3.

public classSyso {public static voidmain(String[] args) {//int i = 1;//System.out.println(i);//int[] arr = new int[10];//System.out.println(arr);//System.out.println(arr[0]);

Syso ss = newSyso();

System.out.println(ss);

System.out.println(ss.age);

ss.age= 10;

System.out.println(ss.age);

}private intage;//无参构造器

publicSyso() {super();//TODO Auto-generated constructor stub

}public Syso(intage) {this.age =age;

}

}

结果为 :com.briup.Syso@15db9742

0

10

首先明确 jvm运存内存分配,通俗一点就是堆,栈,方法区,常量区这几个概念,以及它们之间的联系,变量 和 方法 在jvm 中是怎么被调用的

其次简单一点的理解syso() ,我们只要单纯的把它看做一种打印输出的固定形式,不需要去深入了解它在 jvm 中的内存分配 和 及调用

明白为什么会存在地址值,java里面的地址类似与C中的指针,但又有所不一样。地址值可以看做是栈 和 堆 之间的纽带!如果变量只是在栈空间被赋值和调用,那么就不存在地址值的概念

(1)中,int i = 1  可以被分解为三个流程  第一,在栈空间内开辟 类型的int 的 空间 ,空间名为i ;第二,栈空间内为数字1开辟一块空间 ;第三。赋值操作 int空间指向 1的空间

注意:这三个步骤都是在栈空间内完成的!平时为了方便理解的操作经常int i = 1 直接理解为只开辟了一块栈空间

(2)和(3)中 System.out.println(ss.age)打印输出的结果 原理是想类似的 涉及到2个概念,JVM中 创建数组 和 创建实例化对象的过程 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值