精华内容
下载资源
问答
  • 众所周知,平时开发过程中将对象序列成json字符串常用的工具类一般就三种:fastJson、Gson、Jackjson,但是三种工具类在将对象进行序列时与对象的get、set、对象属性之间的关系你知道吗,如果知道了,那么下面的...

           众所周知,平时开发过程中将对象序列化成json字符串常用的工具类一般就三种:fastJson、Gson、Jackjson,但是三种工具类在将对象进行序列化时与对象的get、set、对象属性之间的关系你知道吗,如果知道了,那么下面的你没必要看了,不知道的话请继续看下去。

    1.与对象属性之间的关系

           为了区分三者之间的关系,我创建了一个测试类,只有一个success属性,没有get、set方法,默认值为false,可以看出,gson的序列化结果是{"success":false},fastJson的结果是{},jackJson直接报错,由此可以得出结论:Gson是通过反射遍历该类中的所有属性,并把其值序列化成json,至于FastJson和JackJson的序列化跟属性暂时看不出来关系。

    2.与对象的set方法之间的关系

           为了测试跟set方法的关系,我在测试类中给该属性加了一个set方法,运行的结果显示跟上面的一样,可以猜想跟set方法没关系,但是有的人可能会说,有可能通过反射遍历出该类中的所有setter方法,得到setSuccess,然后根据JavaBeans规则,获取测试类的属性,然后序列化成json,跟直接通过属性序列化的结果一样,因此只展示一个。因此我又在测试类中加了一个setTestSuccess方法,结果如下:

     

          运行的结果显示跟上面的一样,并没有多出任何结果,因此得出结论:三个工具类的序列化结果跟类的set方法没有关系。

    3.与对象的get方法之间的关系

           为了测试与get方法的关系,我加上了success属性的get方法,有人可能会说,不应该是getSuccess(),怎么是isSuccess()方法,具体原因请看我的博客《关于boolean类型的数据不推荐使用isXXX命名的那些事》,这里大致说一声,boolean类型的数据,其get方法默认就是isXXX(),不是getXXX(),这是规定的。

           从结果可以出,Gson序列化后的结果不变,而JackJson和FastJson不再报错,而是出现了结果,跟Gson序列化的结果一样,因此可以猜想JackJson和FastJson序列化结果跟get方法有关系,而Gson序列化的结果跟get方法有没有关系还不确定。因此我们还得再加一个get方法和一个isXXX()方法来测试,测试结果如下:

           我在测试类中又加了一个isSuccessSecond()和getAuthorName(),结果发现gson序列化的结果还是不变的,但是jackJson和fastJson序列化的结果中多了两个值authorName和successSecond。

          因此可以得出结论:fastjson和jackson在把对象序列化成json字符串的时候,是通过反射遍历出该类中的所有getter方法,得到getAuthorName和isSuccessSecond,然后根据JavaBeans规则,他会认为这是两个属性authorName和successSecond的值,直接序列化成json。

    综上所述:Gson是通过反射遍历该类中的所有属性,并把其值序列化成json字符串;JackJson和fastJson是通过getter方法获取属性,并把其值序列化成json字符串。

           三者的序列化都跟setter()没有任何关系,至于单个测试属性,setter方法、getter方法,我都试过,这里就不一一贴出来代码,想测试的大兄弟们可以自己测试,若有问题,请及时反馈。可能有人说跟isXXX()有关,其实是跟get方法有关,主要是boolean类型的属性,其get方法默认都是isXXX,Boolean类型的属性,其get方法还是getXXX(),感兴趣的同学可以看一下我的博客《关于boolean类型的数据不推荐使用isXXX命名的那些事》。如果还是认为跟isXXX()有关,可以自己试一下其它类型的属性。

     

     

    展开全文
  • 对象对象之间的关系

    千次阅读 2016-12-10 12:03:50
     依赖关系指的是类之间的访问关系,如果类A需要访问类B的方法,或者类A负责实例类B,就可以说类A依赖于类B。 3、聚集关系  聚集指的是整体与部分之间的关系,例如:与手就是聚集关系

    对象与对象之间的关系

    1、关联关系
    关联关系指的是对象与对象之间的引用关系, 常见的有一对多, 一对一, 多对多, 多对一关系。
     关联关系还有双向关联与单向关联。

    2、依赖关系
     依赖关系指的是类之间的访问关系,如果类A需要访问类B的方法,或者类A负责实例化类B,就可以说类A依赖于类B。

    3、聚集关系
     聚集指的是整体与部分之间的关系,例如:人与手就是聚集关系。

    4、一般化
     一般化指的是类之间的继承关系。

    展开全文
  • 同样可以类比到社会与之间的关系上,有曾说,不能改造社会,就要适应社会。适应社会是你改造社会的基础。做软件也是如此,先了解用户的需求,实现需求的电子的过程中就逐渐改变了用户需求的表现形式,用户的...

     

    环境和对象之间有着相互作用,一般情况下只是在于环境强一些,对象弱一些。同样可以类比到社会与人之间的关系上,有人曾说,不能改造社会,就要适应社会。适应社会是你改造社会的基础。

    我们做软件也是如此,先了解用户的需求,实现需求的电子化的过程中就逐渐改变了用户需求的表现形式,用户的一些需求也就被我们改变了。

     

    注:

    这里的对话内容同样影射覆盖了软件开发与用户业务之间的交互影响过程,阐述了软件变迁和对用户业务的业务整合乃至业务重组的全部影响,具体能看到多少就要看各人的经验了。

     

    卡恩 2011-5-12 22:53:45

    对象的特性之一是对象都是可抽象的。即 对象有很多个不同的方面。对象参与到一个场景时会展现出某一个方面,总可以将对象的某一个方面抽象出来,让其作为对象的一个代表来参与场景交互。

    卡恩 2011-5-12 22:53:52

    青润老师怎么理解这话呢

    青润   22:58:19

    这句话说的就是一个事实,没有什么理解的,本身就是它的理解。

    卡恩   22:58:30

    总可以将对象的某一个方面抽象出来,让其作为对象的一个代表来参与场景交互。

    卡恩   22:58:32

    觉得是这句

    青润   22:59:08

    这句话是 aosd 的资料中看到的么?

    卡恩   22:59:21

    aosd

    卡恩   22:59:36

    比如一个系统 人参与的,人的参与场景的所有动作 可以代替 人这个对象。而不用描述 一个整个人的多方面的东西

    卡恩   22:59:40

    可以这么理解这句话吗

    青润   23:00:22

    这句话这样说吧。

    你在你父亲面前,你的表现是儿子,你在你女朋友面前你表现的是男朋友。

    如果你把这两个搞错了,你必然死得很惨。

    卡恩   23:02:04

    所以在和女朋友一起的时候,可以把自己作为男朋友这方面抽象出来,作为自己与女朋友交互

    青润   23:03:03

    看来你还是不懂得什么是对象。

    卡恩   23:03:25

    额。。 我还以为理解对了,

    青润   23:03:27

    你,就是一个人,抽象的人。

    具体化到你这个个体的时候,也有很多个方面。

    青润   23:03:53

    刚才我举的例子,就是两个场景下的两个方面,这就是对象。

    青润   23:04:03

    或者说对象的实例化。

    卡恩   23:04:53

    这个我知道,你的意思是从对象参与的不同场景去去分析和理解对象

    青润   23:08:33

    你这么说,也可以。

    你这样理解就是环境促使对象具体化。

    而实际上应该是两者的互相影响,比如:

    你如果只是把你女朋友当作普通朋友看待,那结果,你就不可能用男朋友这种方式来和她相处,而即使她认为你就是她男朋友,也会因为这个而逐渐发生变化。

    也就是说,环境和对象之间有着相互作用,一般情况下只是在于环境强一些,对象弱一些。同样可以类比到社会与人之间的关系上,有人曾说,不能改造社会,就要适应社会。适应社会是你改造社会的基础。

    我们做软件也是如此,先了解用户的需求,实现需求的电子化的过程中就逐渐改变了用户需求的表现形式,用户的一些需求也就被我们改变了。

     

    这样说,明白了么?

    卡恩   23:10:57

      ,好有哲理 ~

    青润   23:12:54

    如果你都理解了,那你就的确明白了什么是对象,刚才那句话应该一看就懂的,因为它没有什么内涵的东西,说的就是一个大白话,只不过不是例子。

     

    展开全文
  • 类与对象关系

    千次阅读 2018-09-03 11:34:58
    简单记录一下类与对象关系,问题不难,但觉得还是写出来,会帮助自己记忆更牢固,而且万一以后有需要,可以及时回顾。 参考文献: 类与对象的区别 Java类和对象 详解(一) Java类和对象 详解(二) 声明对象、...

    写在前面

    简单记录一下类与对象的关系,问题不难,但觉得还是写出来,会帮助自己记忆更牢固,而且万一以后有需要,可以及时回顾。

    参考文献:

    基础概念

    1.类

    简单来说:类是抽象的,是对对象的抽象。

    具体来说:类是对现实生活中一类具有共同特征的事物的抽象,实质是一种复杂的数据类型,不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。

    2.对象

    简单来说:对象也是抽象的,是对客观事物的抽象。又是具体的,是类实例化的结果。

    具体来说:对象是人们要进行研究的任何具体事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。

    实例参考

    人是类,具体的人就是对象,小明、小红、小花都是对象。

    车是类,具体的车就是对象,秋名山上那辆漂移的车、F1赛车的冠军的车、上班要开的车都是对象。

    类与对象的关系

    抽象来说:类与对象的关系就如模具和铸件的关系,类的实例化的结果就是对象,而对对象的抽象就是类,类描述了一组有相同特性(属性)和相同行为的对象。

    具体在Java编程中,类通过使用关键字class完成。

    class 类名称 {
             属性 (变量) ;
             行为 (方法) ;
    }

    对象通过实例化类完成,有以下两种方式:

    //格式一:声明并实例化对象
    类名称 对象名称 = new 类名称 () ;
    
    //格式二:先声明对象,然后实例化对象
    类名称 对象名称 = null ;
    对象名称 = new 类名称 () ;

    当一个实例化对象产生之后,可以按照如下的方式进行类的操作:

    • 对象.属性:表示调用类之中的属性;
    • 对象.方法():表示调用类之中的方法。
    展开全文
  • Unity对象和序列原理介绍

    千次阅读 2019-10-09 21:02:43
    Unity使用了很多年了,在这里我敢说很多对Unity对象和序列原理并不是很清楚,比如Asset与Object之间有啥区别?如何管理Asset?Unity的序列是咋回事等等,下面就从Asset与Object对象区别说起。 Asset与对象 先...
  • .NET 的对象关系持久机制(1)

    千次阅读 2004-03-04 10:04:00
    翻译的目的一是锻炼E文,二是为学些东西,如果这是有任何翻译问题,请通知我一声(mailto:wonderf2100@sina.com 或者 ...原文:http://www.15seconds.com/issue/040112.htm关键字:ORP ObjectSpaces 对象 关系
  • java对象持久

    万次阅读 2012-03-19 15:11:03
    第1章 对象持久 什么是持久?简单地说,持久就是把数据同步保存到数据库或某些存储设备中。在软件的分层体系结构中,持久层是与数据库打交道的逻辑层。在数据库中对数据的增加、删除、查找和修改操作由...
  • 对象的创建和初始

    千次阅读 多人点赞 2020-12-26 12:28:05
    文章目录前言一、类和对象关系二、如何创建和初始化对象1.使用new关键字创建对象2.对象初始三、构造器 前言 本文主要讲解类和对象关系,以及如何创建和初始化对象,对构造器的详解 一、类和对象关系 类...
  • 面向对象(Object Oriented,OO)。 面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构...
  • 对象模型中的父子关系种类

    千次阅读 2013-12-06 09:50:57
    我们在面向对象模型设计的时候,父子关系,parent-child relationship,是经常涉及到的。类之间有父子关系对象也有父子关系。 所谓父子关系,一般是指Inheritance Relationship,或者是Container-contained ...
  • 【Java】面向对象思想以及类与对象关系

    千次阅读 热门讨论 2016-03-07 23:23:21
    一、面向对象概念 面向对象是Java的基本特征,深刻的理解面向对象的思想是设计良好的Java软件项目的前提...2、可以将复杂的事情简单(吃烤鸭的例子:如果我们用面向对象的方法,就不必一步一步的想制作的过程,直接找
  • ORM(对象关系映射)

    千次阅读 2018-07-20 10:14:40
    什么是ORM? 对象关系映射,是一种程序...通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久关系数据库中去。 采用映射元数据来描述对象关系的映射,使得ORM中间件能够在任何一个应用的业...
  • 类和对象之间的关系?封装继承多态?

    千次阅读 2018-03-04 09:19:00
    在面向对象的编程思想中把对象的属性和行为分别称为对象的属性和方法,是构成对象的两个主要因素;在编程中,对象的属性被存储在一些...对象:类的实例 创建并使用对象: 类名 对象名=new 类名(); Scho...
  • (1)对象是单个实物的抽象:一个、一辆车可以是对象,一个网页、一个服务器也可以是对象,当实物被抽象成对象的时候,实物之间的关系就变成了对象之间的关系,那么我们就可以模拟现实的情况,对对象进行编程;...
  • 在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,...
  • Fastjson处理复杂层级关系的json对象

    千次阅读 2019-10-30 21:55:59
    处理复杂层级关系的json对象 我们一般的项目现在都是前后端分离,从前端传过来的都是序列好的json数据,但是我们后台如何获取呢,那就不获取了呗~,上代???? 用到了阿里的Fastjson来处理 导入pom文件 <dependency&...
  • ibatis对象关系映射

    千次阅读 2011-08-24 15:08:53
    简介: iBatis 是一个开源的对象关系映射程序,其工作是将对象映射到 SQL 语句。和其它 O/R Mapping 框架不同,iBatis 开发者需要自己编写和维护 SQL 语句,这给开发带来了很多的灵活性的同时,也带来了很大的...
  • UML对象图和类图关系解析

    千次阅读 2015-03-24 20:48:42
    UML共有九种视图,它们之间各有自己的特点和作用,它们之间有什么联系吗,这里就向大家介绍一下UML对象图和UML类之间的联系,希望通过本文的学习你对UML的图形之间的关系有一定的认识。 本节向大家...
  • 对象数据库 VS 关系数据库

    千次阅读 2004-10-20 09:30:00
    对象数据库 VS 关系数据库我们将对象数据库管理系统(ODBMS)定义为一个集成了数据库能力与面向对象编程语言能力的数据库管理系统(DBMS),ODBMS使数据库对象看起来像是已有的一个或多个程序设计语言中的程序设计...
  • 手把手教你实现json嵌套对象的范式和反范式 在json对象嵌套比较复杂的情况下,可以将复杂的嵌套对象转化成范式的数据。比如后端返回的json对象比较复杂,前端需要从复杂的json对象中提取数据然后呈现在页面...
  • Java对象持久技术概述

    千次阅读 2007-12-02 20:00:00
    Java对象持久技术概述Hibernate从不同的角度的不同解释:它是连接Java应用程序和关系数据库的中间件它对JDBC API进行了封装,负责Java对象的持久在分层的软件架构中,它位于持久层,封装了所有数据访问细节,...
  • 不用数据库,用C语言编了一个程序,你可以不需要(或基本不需要)任何改动就将它作用于数据库,即你可以用C语言透明访问数据库,就好象数据库根本不存在一样,所以也有把面向对象数据库理解为语言的持久。...
  • java中类、对象、实例的关系

    千次阅读 2015-06-05 14:31:17
    java中类、对象、实例的关系 (刚刚接触java,难免有许多错误,欢迎指正) java作为面向对象编程语言,作为初学者首先要分清类、对象、实例之间的关系是必要的。 正所谓物以类聚,类就是一些具有某些相同特性的...
  • 一个UML中通常包含类(class)的UML图,接口(Interface)的UML图以及泛化关系(Generalizaiton)的UML图、关联关系(Association)的UML图、依赖关系(Dependency)的UML图和实现关系(Realizati...
  • 类、方法、属性、实例对象、初始函数、继承的示例解析
  • Java对象持久概述应用程序的分层体系结构基于B/S的典型三层架构 说明: 展现层:提供与用户交互的界面。 业务逻辑层:实现各种业务逻辑。 数据访问层:负责存放和管理应用程序的持久业务数据。 更详细的三层...
  • 因此,对象的抽象是类,类的具体就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现...
  • Java中对象如何初始(实例

    千次阅读 2008-05-25 13:04:00
    对于初学JAVA的总搞清楚对象是如何实例的,假如类之间存在继承关系,那就更糊涂了。下面我们通过两个例题来说明对象的实例过程。例1: 编译并运行该程序会有以下输出Static BlockEmployee Company:china ...
  • 面向对象方法学与结构方法学的异同 面向对象方法与结构方法都是软件开发过程中的方法。在传统的软件开发过程中多采用结构技术完成软件开发的一系列工作,但这种方法并不适应发型软件产品的开发,而随着硬件...
  • 38.JAVA编程思想——JAVA IO 对象序列 Java 1.1 增添了一种有趣的特性,名为“对象序列”(Object Serialization)。它面向那些实现了Serializable接口的对象,可将它们转换成一系列字节,并可在以后完全恢复回...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 529,896
精华内容 211,958
关键字:

对象的人化关系