无意看到有人在问,为什么
char[] ca={'1','2','3'};
int[] ia={1,2,3};
System.out.print(cs);
System.out.print(ia);
得到是截然不同的结果,char[]输出了数组元素而int[]输出了引用地址,怀着好事心情,跟进一看System.out的这个out定义为:
public final static PrintStream out = nullPrintStream();
接着看PrintStream的print/println存在较多的重载,比较眼尖一下就看到print(char[] s[])以及print(Object x),未看到针对其它类型数组的重载,至此至少发现是这区别导致不同的输出结果。
如你所知,数组也是Object,对于非char[]类型数组,都使用print(Object x),这个方法最终使用的是String.valueOf(x),即x.toString(),所以对于非char数组输出引用地址就不中为奇了。
对于print(char[] s),跟到最后发现是使用 sun.nio.cs.StreamEncoder.write(char[] cbuf, int off, int len)方法,配合CharBuffer来完成的,具体可以查看该方法实现。
是否有其它方法让非char[]数组也能便捷的输出元素呢,当然,使用java.utils.Arrays.toString(x);即可
分享到:
相关推荐
System.out.print(i); } } } ``` 该代码定义了一个简单的`for`循环,其中循环变量`i`初始化为0,并且循环继续进行直到`i`大于或等于10。然而,在循环的更新表达式部分,我们看到了一个不寻常的操作:`i = i++`。...
System.out.print("The input Fahrenheit is "); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int f = Integer.parseInt(br.readLine()); double c=5*(f-32); c=c/9; System.out....
import java.util.*; // a menu driven program to test a selection of useful array methods public class SomeUsefulArrayMethods ... System.out.println("array[" + i + "] = " + arrayIn[i]); } } }
System.out.print(divisor + " * "); n /= divisor; } else { divisor++; } } System.out.println("1"); } } ``` 以上四个题目涵盖了从基础的循环和条件语句到更复杂的递归调用和算法设计,对于初学者来说...
Parser Error Message: Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. 系统找不到指定的文件。 ...
Java中的`System.out.println()`是一个常用的方法,用于在控制台上打印信息。然而,当你尝试输出特定数据类型如`byte[]`或`char[]`时,它不会像预期那样直接显示数组的内容,而是输出一些看似随机的字符序列。这是...
System.out.print("请输入要祝福人的名字:"); String name = sc.next(); for (int i = 0; i <= 5; i++) { for (int k = 0; k <= 7 - i; k++) { System.out.print(" "); } for (int z = 1; z <= 2 * i - 1; z...
System.out.print("(");for(int p=i;p<=k;p++){System.out.print(A[p] + " ");}System.out.print("| ");}System.out.print(A[len-1]);System.out.println();}public static void main(String[] args){Testsuanfa sf ...
public class 万年历 { ... System.out.print("请输入年份:"); int year = input.nextInt(); System.out.print("请输入月份:"); int month = input.nextInt(); //System.out.print("请输入日:");
Scanner jb=new Scanner...System.out.print("物价津贴为:"); double jt=jb.nextDouble(); System.out.print("房租津贴:"); double fz=jb.nextDouble(); System.out.print("员工薪水是:"+(gz+jt+fz)); 很普通的代码
首先,Java中的`print`方法主要存在于`System.out`对象中,它是`Console`类的一部分,我们通过`System.out.print()`来实现输出。这个方法可以打印任何类型的数据,包括基本类型(如int、double)、字符串、对象等,...
注释语句、javadoc、System.out.print和println和printf区别java特殊语句注释语句print、printf、println区别 java特殊语句 转换符 类型 d 十进制 x 十六进制 o 八进制 f 定点浮点数 e 指数浮点数 ...
System.out.print("请输入一个自然数:"); s=buf.readLine();//键盘输入 n=Integer.parseInt(s); System.out.print("f(n)=1"); for(int i=2;i<=n;i++) System.out.print("+"+i*i); System.out.print("="+...
public static void main(String [] args) { /*int x=2,y,z=2; y=x+3; System.out.println(y);*/ //System.out.println("y="+'y'+1);... System.out.print('8'); } System.out.println(); }*/
System.Data.SQLite.dll是SQLite在.NET平台上的一个封装库,它为C#和其他.NET语言提供了对SQLite数据库引擎的全面支持。SQLite是一款轻量级、自包含的数据库系统,广泛应用于嵌入式系统和移动应用,因为它不需要单独...
System.out.print(" * |"); for (i=1;i<=n;i++) System.out.print(" "+i); System.out.print("\n---|"); for (i=1;i<=n;i++) System.out.print("----"); System.out.println(); for (i=1;i<=n;i++) { ...
System.out.print(" * |"); for (i = 1; i <= n; i++) System.out.print(" " + i); System.out.print("\n---|"); for (i = 1; i <= n; i++) System.out.print("----"); System.out.println(); for (i = 1; ...
System.out.print(mycalendar1.get(Calendar.YEAR) + "年"); System.out.print(mycalendar1.get(Calendar.MONTH) + "月"); System.out.println(mycalendar1.get(Calendar.DATE) + "日"); System.out....
System.out.print(mycalendar1.get(Calendar.YEAR) + "年"); System.out.print(mycalendar1.get(Calendar.MONTH) + "月"); System.out.println(mycalendar1.get(Calendar.DATE) + "日"); System.out....
System.out.print(" extends " + c.getSuperclass().getSimpleName()); Class[] inters = c.getInterfaces(); if (inters.length > 0) { System.out.print(" implements "); for (int i = 0; i ...