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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

首先先查阅API,可以知道Object类中


toString方法是返回类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制(地址值)表示组成。
而以下代码:
package com.hei.lixi;
public class Test15_Array {
        public static void main(String[] args) {
                A:{
                        System.out.println("A:");
                        int[] i = {1,23,4,5};
                        System.out.println(i.toString());
                }
                B:{
                        System.out.println("B:");
                        byte[] b = {97,98,99,100,101};
                        System.out.println(b.toString());
                }
                C:{
                        System.out.println("C:");
                        byte[] b = {97,98,99,100,101};
                        String strb = new String(b);
                        System.out.println(strb);
                }
                D:{
                        System.out.println("D:");
                        char[] c = {'4','1','5','4','3','2'};
                        System.out.println(c.toString());
                }
                E:{
                        System.out.println("E:");
                        char[] c = {'4','1','5','4','3','2'};
                        String strc = new String(c);
                        System.out.println(strc);               
                }
        }
}

输出结果为
A:
[I@bcda2d
B:
[B@97d01f
C:
abcde
D:
[C@e0a386
E:
415432

可以看出,当一个类型转成String型时,输出的是他本身字符串,通过查阅API,String类中重写了toString方法如下:

得出结论,当调用的toString方法是Object类中的方法时,输出值为地址值,而将类型转换成String类时,就会调用String类中重写的方法
则输出本身字符串,其中byte在转成String型时,会转码,所以97,98,99,100,101——>abcde.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马