System.out.print()打印各Java对象的输出说明

本文详细介绍了在Java中如何使用print方法打印对象,并解释了当调用print方法时,其内部如何通过toString方法来实现对象信息的展示。文章还深入探讨了Class.getName方法的工作原理及应用场景。

调用print方法传入一个对象打印输出时,会默认调用对象的toString方法,若对象没有覆写toString方法,则默认调用Object的toString方法。

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

Class.getName方法以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称

  1. 如果此类对象表示的是非数组类型的引用类型,则返回该类的二进制名称
  2. 如果此类对象表示一个基本类型或 void,则返回的名字是一个与该基本类型或 void 所对应的 Java 语言关键字相同的 String
  3. 如果此类对象表示一个数组类,则返回’[’ +元素类型名
元素类型表
Element TypeEncoding
booleanZ
byteB
charC
class or interfaceL< classname >
doubleD
floatF
intI
longJ
shortS

类或接口名 classname 是上面指定类的二进制名称、

示例:

String.class.getName()
returns “java.lang.String”
byte.class.getName()
returns “byte”
(new Object[3]).getClass().getName()
returns “[Ljava.lang.Object;”
(new int[3][4][5][6][7][8][9]).getClass().getName()
returns “[[[[[[[I”

Java 中的 `System.out.print()` 方法是用于将内容输出到标准输出流(通常是控制台)的一种方式。该方法属于 `PrintStream` 类,`System.out` 是该类的一个实例,用于表示标准输出流。 默认情况下,`System.out.print()` 方法会将传入的字符串或数据直接输出到控制台,并且不会自动换行。这意味着,如果多次调用 `System.out.print()`,输出内容将在同一行上连续显示。例如: ```java public class Example { public static void main(String[] args) { System.out.print("Hello"); System.out.print("World"); System.out.print("!"); } } ``` 运行上述代码后,控制台的输出结果为: ``` HelloWorld! ``` 这种行为与 `System.out.println()` 不同,后者会在输出内容后自动添加换行符,使下一次输出从新的一行开始[^2]。 此外,`System.out.print()` 的默认输出编码取决于运行环境的默认字符集。在某些系统或控制台中,如果未正确配置编码,可能会导致输出非 ASCII 字符(如中文)时出现乱码。通常,Java 的控制台输出默认使用平台的字符集,而不是强制使用 UTF-8 或其他编码格式[^3]。 ### 默认输出内容 `System.out.print()` 方法本身没有“默认内容”,它的行为是将调用时传入的参数直接输出到标准输出流。如果没有调用该方法,则不会有任何输出。其输出内容完全取决于开发者或运行时传入的参数值。 ### 示例代码 以下是一个展示 `System.out.print()` 输出行为的完整示例: ```java public class PrintExample { public static void main(String[] args) { String message = "Java 输出示例:"; System.out.print(message); System.out.print(" 这是"); System.out.print(" 一行"); System.out.print(" 的输出"); } } ``` 运行结果为: ``` Java 输出示例: 这是 一行 的输出 ``` ### 特殊输出格式 `System.out.print()` 支持通过 ANSI 转义序列控制输出文本的格式,例如颜色和样式。例如,以下代码可以在支持 ANSI 的终端中输出红色文本: ```java System.out.print("\033[31m这是红色的文本\033[0m"); ``` 上述代码会在支持 ANSI 的控制台中输出红色文本,`\033[31m` 表示设置红色前景色,`\033[0m` 表示重置文本格式[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值