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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘学明    高级黑马   /  2013-5-9 16:55  /  2205 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘学明    于 2013-5-11 13:55 编辑

public class ParaDemo{
public static void main(String[] args)
{
  int[]  arr ={3,5,6};
  char[] ch = {'d','b','2'};
  show(arr);   // 为什么这里打印的是一个数组地址 。不是只有是引用数据类型才是打印数组地址的吗 Integer不才是引用数据类型吗
  show(ch);    //为什什么这里就是打印的是元素的值。
}
public static void show(char...arr)
{
       System.out.println(arr);
}
public static void show(int...arr)
{
       System.out.println(arr);
}
}

评分

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

查看全部评分

16 个回复

倒序浏览
不明白。帮顶
回复 使用道具 举报
public class Simple{
   public static void main(String[] args)
   {
     int[]  arr ={3,5,6};
     char[] ch = {'d','b','2'};
     show(arr);   // 为什么这里打印的是一个数组地址 。不是只有是引用数据类型才是打印数组地址的吗 Integer不才是引用数据类型吗
     show(ch);    //为什什么这里就是打印的是元素的值。
  }
  public static void show(char...arr)
   {
       for (char c : arr) {
    System.out.println(c);
   }
         
  }
   
   public static void show(int...arr)
   {
          for (int i : arr) {
     System.out.println(i);
    }
   }
   }

评分

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

查看全部评分

回复 使用道具 举报
仲伟 发表于 2013-5-9 17:40
public class Simple{
   public static void main(String[] args)
   {

因为数组在jvm中也是有自己字节码的

评分

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

查看全部评分

回复 使用道具 举报
  1. public class ParaDemo{
  2. public static void main(String[] args)
  3. {
  4.   int[]  arr ={3,5,6};
  5.   char[] ch = {'d','b','2'};
  6.   show(arr);  
  7.   show(ch);  
  8.   System.out.println(ch);//这句话证明char数组好像可以不用遍历就输出
  9. }

  10. public static void show(char...arr)
  11. {
  12.        System.out.println(arr);
  13. }
  14. public static void show(int...arr)
  15. {
  16.         for(int i:arr)
  17.        System.out.print(i);
  18.        System.out.println();
  19. }
  20. }
复制代码
现在可以判断出int类型的数组是因为没有遍历,而char类型的可以不用遍历,个人理解,调试你代码得出的结论

评分

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

查看全部评分

回复 使用道具 举报
是我理解错了,刚才查了下有System.out.println(char [])这个方法
回复 使用道具 举报
如果问题未解决,请继续追问,如果问题解决了,请将分类改为“已解决”,谢谢
回复 使用道具 举报
仲伟 发表于 2013-5-9 17:40
public class Simple{
   public static void main(String[] args)
   {

没明白啊 你把我的输出语句改了 如果不改的情况下 为什么输出结果是那样。
回复 使用道具 举报
仲伟 中级黑马 2013-5-10 00:01:33
9#
刘学明    发表于 2013-5-9 22:24
没明白啊 你把我的输出语句改了 如果不改的情况下 为什么输出结果是那样。 ...

就是说那样不能获取数组的内容,到时可以用Array.asList(ch);
你去看看那个张孝祥老师的
《25_黑马程序员_张孝祥_Java基础加强_数组的反射应用》课程你就有了解了啊
回复 使用道具 举报
Sword 金牌黑马 2013-5-10 00:05:22
10#

如果问题未解决,请继续追问,如果问题解决了,请将分类改为“已解决”,谢谢合作
回复 使用道具 举报
你好,因为字符串可以转换成字符数组。反过来就是字符数组其实就是字符串。所以打印的时候会被直接打印出来。这是String类的特性。
回复 使用道具 举报
楼主要多看基础视频啊 。。。。
回复 使用道具 举报
show(arr);   此时可变参数arr就指向一个int数组,所以输出的是地址。
  show(ch); 此时arr指向的是一个char型的数组,由于System.out.println()可直接输出char[]中的内容,所以就把ch中的内容给输出了。
回复 使用道具 举报
刘胜寒 发表于 2013-5-10 10:18
楼主要多看基础视频啊 。。。。

{:2_33:}这个很基础么
回复 使用道具 举报
刘学明    发表于 2013-5-11 13:55
这个很基础么

你认为呢。。
回复 使用道具 举报
刘胜寒 发表于 2013-5-11 14:28
你认为呢。。

{:2_33:}但是回答 的人里面 只有一个是回答对的  
回复 使用道具 举报
刘学明    发表于 2013-5-11 14:31
但是回答 的人里面 只有一个是回答对的

system.out.println();
打印一个数组变量要看数组变量是否是引用类型还是基本类型
char boolean  short int long  float  double 是基本类型 打印出来的都是地址什么东西的
Integer  String 是引用类型,打印出来的不是地址什么东西的。

好像是这么回事吧。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马