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

Posted fyscn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中System.out.println()打印输出结果相关的知识,希望对你有一定的参考价值。

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

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

1.

package com.briup;

public class Syso 
    public static void main(String[] args) 
        int i = 1;
        System.out.println(i);
    

结果为:1

2.

public class Syso 
    public static void main(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 class Syso 
    public static void main(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 = new Syso();
System.out.println(ss); System.out.println(ss.age); ss.age
= 10; System.out.println(ss.age); private int age; //无参构造器 public Syso() super(); // TODO Auto-generated constructor stub public Syso(int age) 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中 创建数组 和 创建实例化对象的过程 。 

以上是关于java中System.out.println()打印输出结果的主要内容,如果未能解决你的问题,请参考以下文章

java中System.out.print()与System.out.println()与System.out.printf()的差别

JAVA中System.out.println和System.out.print有什么区别

java中的system.out.println()和JSP中out.println()差别

java中System.out.println中的out是啥,是一个类???

Java 中 System.out.println() 的字符限制

java中system.out.println()是什么意思