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]);
    }
}

结果为:[[email protected]

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;
    }
}

结果为 :[email protected]

               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中 创建数组 和 创建实例化对象的过程 。 

原文地址:https://www.cnblogs.com/fyscn/p/11296474.html

时间: 2024-10-07 05:29:38

java中System.out.println()打印输出结果的相关文章

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

在Java编程中,我们常常用System.out.println()方法来输出字符串,也许我们都已经猜到println()是方法名,但System是什么,out又是什么呢?这里就涉及用到一个static关键字.其实System是java.lang里面的一个类.而out就是System里面的一个数据成员(也称为字段),但这个成员不是基本类,而是java.io.PrintStream类的对象,java.io.PrintStream类有些什么方法等一下再说.被关键字static修饰的数据成员或方法可以

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

java里常用的控制台输出语句有System.out.println和System.out.print 一:两者之间的区别如下: 1. 参数有区别: System.out.println() 可以不写参数 System.out.print(参数) 参数不能为空.必须有 2.效果有区别 println :会在输出完信息后进行换行,产生一个新行 print: 不会产生新行 3.println更简洁, print更灵活 print可以后面跟"\n"来达到和println一样的效果 也可以跟&

Java应用程序中System.out.println输出中文乱码

Java应用程序中System.out.println输出中文乱码 2013-12-10 21:27:08cnblogs.com-bluepoint2009-点击数:3631 其实,解决办法比较简单,即:编译时指定编码为UTF-8,如: 1 javac -encoding utf-8 HelloJava.java 这样,再运行时就不会出现乱码. 一.中文问题的来源 计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理.随着计算机的发

java中System.getProperty()方法详解

java中System.getProperty()方法详解,如下: System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号 System.out.println("Java提供商名称:" + System.getProperty("java.vendor")); // Java提供商名称 System.out.println

Java中System.setProperty()用法

Java中System.setProperty()用法 /* * 设置指定键对值的系统属性 * setProperty (String prop, String value); *  * 参数: * prop - 系统属性的名称. * value - 系统属性的值.   *  * 返回: * 系统属性以前的值,如果没有以前的值,则返回 null. *  * 抛出:   * SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许设置指定属性. 

java中System.getenv和System.getProperties的区别

System.getenv获取的是系统的环境变量(就是用户在操作系统中设置的环境变量),windows和linux下环境变量的设置就不说了哦. System.getProperties获取的是系统的相关属性.在java api文档中已经列出了如下属性 如果我们要在java程序启动就能获取自定义的系统属性我们可以使用 java –Dname=zhuhui 这样我们就在系统属性中设置了名称为myname值为zhuhui的系统属性,那么就可以通过System.getProperty("name&quo

python中print()函数的“,”与java中System.out.print()函数中的“+”

python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能. python中: print("hello,world!") 输出结果为:hello,world! java中: System.out.print("hello,world!"); 输出结果为:hello,world! 我们可以看到,这两个函数的用法是一样的 print()函数还有这种用法: print("1+1=",1+1) 输出结

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

System.out.print()与System.out.println()与System.out.printf()的差别 1.System.out.print(): 输出不换行,比如: System.out.print("a"); System.out.print("b"); 结果: ab 2.System.out.println():输出后换行,比如: System.out.println("a"); System.out.println(

java将System.out.println的输出导出到文件中

直接看代码 1 public static void saveStreamToFile(String savePath,String input){ 2 try { 3 //savePath like c:/log.txt 4 System.setOut(new PrintStream(new FileOutputStream(savePath))); 5 System.out.println(input); 6 } catch (FileNotFoundException e) { 7 e.p