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。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
关于Java中Object类的几个方法示例
前言 Java语言不同于C++语言,是一种单根继承结构语言,也就是说,Java中所有的类都有一个共同的祖先.这个祖先就是Object类. Object类被称为上帝类,也被称为祖宗类.在定义Java类时,如果没有指定父类,那么默认都会去继承Object类.配合Java的向上类型转换,借助Object类就可以完成很多工作了. object类的结构 Object类的方法 在Object类中,有几个常用的方法,比如getClass().toString()和equals()这三个方法.它们在Object
-
Java实现Json字符串与Object对象相互转换的方式总结
本文实例总结了Java实现Json字符串与Object对象相互转换的方式.分享给大家供大家参考,具体如下: Json-Lib.Org.Json.Jackson.Gson.FastJson五种方式转换json类型 只列举了最省事的方式.不涉及复制情况和速度. 测试用例,一个User类,属性name,age,location.重写toString(). public class User { private String name; private Integer age; private Stri
-
Java利用反射获取object的属性和值代码示例
在看反射顺便做个笔记,目前知道的反射的Object都是要有对象的也就是实体Bean. referance:Java反射简易教程 import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 反射处理Bean,得到里面的属性值 * * @author liulinsen * */ publ
-
java源码阅读之java.lang.Object
Object是所有类的父类,任何类都默认继承Object.Object类到底实现了哪些方法? 1.clone方法 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常. 2.getClass方法 final方法,获得运行时类型. 3.toString方法 该方法用得比较多,一般子类都有覆盖. 4.finalize方法 该方法用于释放资源.因为无法确定该方法什么时候被调用,很少使用. 5.equals方法 该
-
java反射获取一个object属性值代码解析
有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: private class User { String userName; String userPassword; public String getUserName() { return userName; } public void setUserName(String userName) { this.
-
java 将jsonarray 转化为对应键值的jsonobject方法
有时候我们再操作数据的时候,很多数据是jsonarry 格式的 如: [{"name":"测试数据","id":1},{"name":"测试数据2","id":2}] 这样的格式很类型表格数据类型.但是我们要取id 为1的name 这样我们就要先变量以便了.如果需要多次操作这样的类型,显得很麻烦. 这里的数据我们可以看出id 是唯一的.那么我们可以想办法将其转为jsonobject 这样
-
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("lo
-
JAVA判断空值方法原理解析
Java空字符串与null的区别: 1.类型 null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串,也就是说它的长度为0.例如声明一个字符串String str = "" ; 2.内存分配 String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间: String str = ""; 表示声明一个字符串类
-
Java Random.nextInt()方法原理解析
lic int nextInt(int n) 该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n. 关于Random r = new Random(47)中47的意思 今天看Java编程思想的时候看到了一段这样的代码: Random r = new Random(47); int a = r.nextInt(26); System.out.println(a); 刚开始没注意那个47,以为是随机一个47以内的数,但是看到后面在next
-
Java中Object toString方法简介_动力节点Java学院整理
一.Object类介绍 Object类在Java里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object.所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗.所有的类,不管是谁,都是从它继承下来的. 二.toString方法介绍 一个字符串和另外一种类型连接
-
Java多态中动态绑定原理解析
这篇文章主要介绍了Java多态中动态绑定原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 多态是面向对象程序设计非常重要的特性,它让程序拥有 更好的可读性和可扩展性. 发生在继承关系中. 需要子类重写父类的方法. 父类类型的引用指向子类类型的对象. 自始至终,多态都是对于方法而言,对于类中的成员变量,没有多态的说法. 一个基类的引用变量接收不同子类的对象将会调用子类对应的方法,这其实就是动态绑定的过程.在理解动态绑定之前,先补充一些概念.
-
Java线程状态运行原理解析
这篇文章主要介绍了Java线程状态运行原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码实例如下 package com.fgy.demo05; /** * 等待唤醒案例:线程之间通信 * 注意: * 同步使用的锁对象必须唯一 * 只有锁对象才能调用wait和notify()/notifyAll()方法 */ public class Demo1WaitAndNotify { public static void main(Strin
-
Java并发CopyOnWrite容器原理解析
这篇文章主要介绍了Java并发CopyOnWrite容器原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略.从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWri
-
浅谈Java编程ToString()方法重写的意义
上一篇文章我们介绍了java tostring方法重写代码示例,接下来,我们简单聊聊java编程tostring()方法重写的意义. 1.toString()就是是重写,对于一般的对象来说都会有这个方法,其实这个方法的目的,主要就是将对象按字符串的方式输出出来:打个比方,比如一个People类,里边有name,age这两个属性, 如果你People p = new People(); p.toString(); 这么做的话,默认输出就是一个内存地址. 那么你会想到重写ToString():这个方
-
Java设计模式模板方法(Template)原理解析
这篇文章主要介绍了Java设计模式模板方法(Template)原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言: 我们在开发中有很多固定的流程,这些流程有很多步凑是固定的,比如JDBC中获取连接,关闭连接这些流程是固定不变的,变动的只有设置参数,解析结果集这些是根据不同的实体对象"来做调整",针对这种拥有固定算法流程,其中有固定的步凑,存在不固定的步凑的情况下就诞生了模板方法模式. 模板方法模式(Template)定义:
-
python @propert装饰器使用方法原理解析
这篇文章主要介绍了python @propert装饰器使用方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 首先,@propert的作用是把类中的方法『变成』了属性,方便通过实例访问.propert可以有两种用法:可以把一个方法变成只读属性:可以对一些属性进行过滤. 想象这样一个场景,在实例化一个类之后,需要对类的一个属性进行赋值,这时候是没有对属性属性被赋予的值进行判断的,如果属性被赋予了一个不合适的值,那么代码在后面执行的时候就会
随机推荐
- 关于Docker容器内部无法解析域名问题的解决
- 如何让一个方框栏内的文字滚动显示?
- Ruby实现的图片滤镜算法代码
- Linux shell实现HTTP服务示例代码
- C++多重继承与虚继承分析
- Android编程实现自定义输入法功能示例【输入密码时防止第三方窃取】
- JavaScript错误处理和堆栈追踪详解
- 将博客园(cnblogs.com)数据导入到wordpress的代码
- SSH框架网上商城项目第30战之项目总结(附源码下载地址)
- ASP 包含文件中的路径问题和使用单一数据库连接文件的解决方案
- linux挂载新硬盘过程分享
- jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
- Windows服务编写(Windows Service,system权限)程序显示界面与用户交互(xp,win7通用)
- Java 加密解密基础分类及模式归纳整理
- PHP4实际应用经验篇(2)
- Android 使用jQuery实现item点击显示或隐藏的特效的示例
- MySQL在不知道列名情况下的注入详解
- 详解关于Vue2.0路由开启keep-alive时需要注意的地方
- Bash中尖括号的更多使用方法
- 数据清洗--DataFrame中的空值处理方法