两个对象值转换的方法(BeanUtils.copyProperties与JSONObject.parseObject对比)
将源对象赋值到目标对象方法:
  方法一:BeanUtils.copyProperties(源对象, 目标对象); //org.springframework.beans.BeanUtils
  方法二:目标对象 =JSONObject.parseObject(JSON.toJSONString(源对象), 目标对象.class); //com.alibaba.fastjson.JSON; com.alibaba.fastjson.JSONObject;
实测结果方法一的耗时为方法二的2-3倍。
附测试代码:
public class TestM {
    public static void main(String[] args) {
            Testb testa=new Testb();
            Testa testb=new Testa();
            long a=System.currentTimeMillis();
        BeanUtils.copyProperties(testa, testb);
        System.err.println("方法一耗时:"+(System.currentTimeMillis()-a));
        long b=System.currentTimeMillis();
        Testa testc= JSONObject.parseObject(JSON.toJSONString(testb), Testa.class);
        System.err.println("方法二耗时:"+(System.currentTimeMillis()-b));
    }
测试结果:
方法一耗时:214
方法二耗时:87
关于两者的差异因为没有看到alibaba的JSONObject.parseObject方法的源码而告终,希望各位看官能在评论多多讲解。												
											两个对象值转换的方法(BeanUtils.copyProperties与JSONObject.parseObject对比)的更多相关文章
- hashCode之一--两个对象值相同,有相同的hash code
		
两个对象值相同(x.equals(y) == true),则一定有相同的hash code. 这是java语言的定义: 因为:Hash,一般翻译做“散列”,也有直接音译为"哈希" ...
 - 问题:两个对象值相同(x.equals(y) == true),但是可能存在hashCode不同吗?
		
面试官的考察点 这道题仍然是考察JVM层面的基本知识,面试官认为,基本功扎实,才能写出健壮性和稳定性很高的代码. 涉及到的技术知识 (x.equals(y)==true),这段代码,看起来非常简单,但 ...
 - 为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?
		
在阅读<阿里巴巴Java开发手册>时,发现有一条关于整型包装类对象之间值比较的规约,具体内容如下: 这条建议非常值得大家关注, 而且该问题在 Java 面试中十分常见. 还需要思考以下几个 ...
 - 两个对象值相同(x.equals(y)==true),hashcode也相同
		
不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同.Java对于eqauls方法和hashCode方法是这样规定的:(1)如果两个对象相同( ...
 - 两个对象值相同 (x.equals(y) == true),但却可有不同的 hash code,这句话对不对?
		
不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同.Java对于eqauls方法和hashCode方法是这样规定的: (1)如果两个对象相同 ...
 - 两个对象值相同(x.equals(y) == true),但却可以有不同的hashcode?
		
这个得看情况,如果该对象重写了equals方法,那么可能会出现equals相同,但hashcode不同的情况,但假如没有重写equals方法,那么它默认继承是Object的equals方法,根据源码可 ...
 - 两个对象值相同(x.equals(y)==true),但却可有不同的hashcode这句话对吗?
		
1.这句话当然不对啦,请参看官方文档给出的解释! hashCode public int hashCode()返回该对象的哈希码值.支持此方法是为了提高哈希表(例如 java.util.Hashtab ...
 - java比较两个对象是否相等的方法
		
java比较两个对象是否相等直接使用equals方法进行判断肯定是不会相同的. 例如: Person person1 =new Person("张三"); Person pe ...
 - JQuery      $       $.extend(),$.fn和$.fn.extend       javaScript对象、DOM对象和jQuery对象及转换     工具方法(utility)
		
一.为什么jquery前面要写$ Javascript没有package的概念,而作者又希望所有jQuery相关的API都能通过一个全局性的对象来容纳. 名为jQuery的全局变量就是这样一个对象,不 ...
 
随机推荐
- sessionStorage二种存值取值的方法
			
//方法一 sessionStorage.setItem('id1','这是一个测试id1'); //存入一个值key:value console.log(sessionStorage.getItem ...
 - Fire (poj 2152 树形dp)
			
Fire (poj 2152 树形dp) 给定一棵n个结点的树(1<n<=1000).现在要选择某些点,使得整棵树都被覆盖到.当选择第i个点的时候,可以覆盖和它距离在d[i]之内的结点,同 ...
 - B.Icebound and Sequence
			
链接:https://ac.nowcoder.com/acm/contest/903/B 题意: Icebound hates math. But Imp loves math. One day, I ...
 - poj3264_Balanced Lineup
			
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 42349 Accepted: 19917 ...
 - 服务器配置,负载均衡时需配置MachineKey
			
服务器配置,负载均衡时需配置MachineKey https://blog.csdn.net/liuqiao0327/article/details/54018922 Asp.Net应用程序中为什么要 ...
 - 转 sqlplus/RMAN/lsnrctl 等工具连接缓慢
			
AIX上sqlplus /as sysdba rman target / 或者lsnrctl start时或者通过sqlplus system/oracle@orcl这样通过监听连接等方式来登陆 ...
 - 关系型数据库---MySQL---数据表
			
1.在创建一个新的MySQL数据表时,可以为它设置一个类型: 2.MySQL支持多种数据表类型,有各自的特点和属性,最重要的3种类型: 1.1 MyISAM 1.2 InnoDB 1.1 可以把Inn ...
 - tomcat7 fail to start inside Ubuntu Docker container
			
The tomcat startup script needs some special privileges. Concrete it needs to check all running proc ...
 - Eclipse 主题(Theme)配置
			
< 程序员大牛必备的装逼神器 > 一个牛逼的程序员,除了有牛逼的技术,还要有高逼格的风格,说白了,就和人一样,单是内在美还不行,必须外表也要美,就好比,一个乞丐,他内在美,但是全身臭气熏天 ...
 - 数据库(数据库、表及表数据、SQL语句)
			
数据库MYSQL 今日内容介绍 u MySQL数据库 u SQL语句 第1章 数据库 1.1 数据库概述 l 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储 ...