Java Object toString方法原理解析
在Java中,所有的对象都是继承自Object,自然继承了toString方法,在当使用System,out.println()里面为一个对象的引用时,自动调用toString方法将对象打印出来。如果重写了tostring方法则调用重写的toString 方法。
先看下面一段代码
public class ToStringTest { static int i = 1; public static void main(String[] args) { System.out.println("love "+new ToStringTest()); ToStringTest a = new ToStringTest(); a.i++; System.out.println("me "+a.i); } public String toString(){ System.out.print("I "); return "java "; } }
运行结果:
I love java
me 2
对代码剖析:
首先声明了一个静态变量i,,static修饰的成员或代码块在类加载的时候会进行内存申请,接着进入主方法main中,在第一句输出语句中,里面用new了此类对象,当执行该代码的时候,先会创建本类的对象,调用下面重写的tostring方法,输出I,返回java,再进行main方法中第一句话的打印输出,拼接得到I love java。
这个me2 的输出,是static的定理,类加载概念, static修饰的类,一般的一个类
只发生一次类加载。输出m2。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
springboot配置多数据源后mybatis拦截器失效的解决
这篇文章主要介绍了springboot配置多数据源后mybatis拦截器失效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09java利用htmlparser获取html中想要的代码具体实现
这篇文章主要介绍了java利用htmlparser获取html中想要的代码具体实现,需要的朋友可以参考下2014-02-02Spring的@Scheduled 如何动态更新cron表达式
这篇文章主要介绍了Spring的@Scheduled 如何动态更新cron表达式的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07MyBatis中select语句中使用String[]数组作为参数的操作方法
在 MyBatis 中,如何在 mapper.xml 配置文件中 select 语句中使用 String[] 数组作为参数呢,并且使用IN关键字来匹配数据库中的记录,这篇文章主要介绍了MyBatis中select语句中使用String[]数组作为参数,需要的朋友可以参考下2023-12-12
最新评论