A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© idream 中级黑马   /  2014-4-23 13:13  /  1007 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package cn.itheima.demo;
  2. /*
  3. * 我知道会打印地址值,但是char数组为什么不会打印地址
  4. */
  5. public class Demo {
  6.         public static void main(String[] args) {
  7.                 int[] intArr = {1,2,3,4};
  8.                 char[] charArr = {'a','c','b'};
  9.                 String[] stringArr = {"a","b","c"};
  10.                 System.out.println(intArr);//[I@1afae45
  11.                 System.out.println(charArr);//acb
  12.                 System.out.println(stringArr);//[Ljava.lang.String;@da4b71
  13.                
  14.         }
  15. }
复制代码


2 个回复

倒序浏览
本帖最后由 kuroro自走核炮 于 2014-4-23 21:48 编辑

查找了一下API,我发现System.out.println()是有System.out.println(char[])这样一个专门用于打印char[]数组的重载的。

System类

[size=-1]java.lang
类 System
java.lang.Object  [img][/img]java.lang.System
public final class Systemextends ObjectSystem 类包含一些有用的类字段和方法。它不能被实例化。
在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。

在这里有out

outpublic static final PrintStream out“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。 对于简单独立的 Java 应用程序,编写一行输出数据的典型方式是:
     System.out.println(data)
请参阅 PrintStream 类中的 println 方法。

另请参见:PrintStream.println(), PrintStream.println(boolean), PrintStream.println(char), PrintStream.println(char[]), PrintStream.println(double), PrintStream.println(float), PrintStream.println(int), PrintStream.println(long), PrintStream.println(java.lang.Object), PrintStream.println(java.lang.String)
println 方法:
[size=-1] void
println(boolean x)
          打印 boolean 值,然后终止行。
[size=-1] void
println(char x)
          打印字符,然后终止该行。
[size=-1] void
println(char[] x)
          打印字符数组,然后终止该行。(找到了char数组的打印方法)
[size=-1] void
println(double x)
          打印 double,然后终止该行。
[size=-1] void
println(float x)
          打印 float,然后终止该行。
[size=-1] void
println(int x)
          打印整数,然后终止该行。
[size=-1] void
println(long x)
          打印 long,然后终止该行。
[size=-1] void
println(Object x)
          打印 Object,然后终止该行。
[size=-1] void
println(String x)
          打印 String,然后终止该行。
printlnpublic void println(char[] x)打印字符数组,然后终止该行。此方法的行为就像先调用 print(char[]) 然后调用 println() 一样。
参数:x - 要打印的字符数组。printpublic void print(char[] s)打印字符数组。按照平台的默认字符编码将字符转换为字节,并完全以 write(int) 方法的方式写入这些字节。 参数:s - 要打印的字符数组 抛出: NullPointerException - 如果 s 为 null

这些方法决定了如果你进行System.out.println(char[])操作,会直接把char[]中的元素打印出来。


评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
其实就是println(char[] a) 相当于println(print(char[] a))  , 然后print(char[] a)做的事情就是把a里面的字符都先转换成字节,然后一个个输出出来,所以就会变成楼上的结果了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马