一般System.out.print()参数是String,但是为什么long类型的也可以呢?
    long endtime=System.currentTimeMillis();
    System.out.print("okupi total time "+(endtime));
编译不报错

解决方案 »

  1.   

    System.out.print("okupi total time "+(endtime));+调用了BufferString的append,返回BufferString对象
      

  2.   

    对非String类型对象进行print的时候会自动调用此对象的toString()方法. 基本类型会自动转化为代表其值的String对象输出, 就是这么设计的, 好像没有为什么吧.
      

  3.   

    System的out是PrintStream
    PrintStream对
    print(boolean)
    print(char)
    print(char[])
    print(double)
    print(float)
    print(int)
    print(Object)
    print(String)
    print(long)
    println()
    println(boolean)
    println(char)
    println(char[])
    println(double)
    println(float)
    println(int)
    println(Object)
    println(String)
    println(long)
    都有定义的
      

  4.   

    楼主自己去看一下jdk的src中的java.io.PrintStream.java
      

  5.   

    其实这就是方法的重载
    System.out.println()参数可以是任何类型,如果是对象就调用对象的toString()方法.
      

  6.   

    楼主自己去看一下jdk的doc 文档吧!
    里面都有说明的!
      

  7.   

    System.out.print()默认toString()方法
    努力中........