首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我攻克的技术难题:由Java属性名,getset 方法引起的序列化bug

请思考下,接下来的答案可能会和你想的有点出入~ 答案如下 是不是有点吃惊 哈哈 先来点简单的~ Boolean 这个就很简单啦,生成的都是我们我们平时用到的样子,过~ boolean 这个 active...请先记住这个点,下面正片开始~ 如图所示,这个就是折磨了我快一天的 bug,测试接口时,发现了这么诡异的一幕,后端只定义了这个 tDate 属性,压根就没有 tdate 这个属性,可是前端 post 数据时...我当时就懵了,想着这前端写的啥代码,怎么给我搞这出…… 于是乎,我们愉快的进行了沟通~ 结果发现,这个是在更新数据时出现的,而这个 tdate 属性是我传回来的,而且就是 null 我仔细看了下,发现这居然是真的...,我的天,我后台明明没有这个 tdate 的!...您猜怎么着,这反序列化的过程,居然不是直接使用我们定义好的属性字段,而是通过 get/set 方法去推测出来的!!

49720

不是我吹,20M的压缩文件我只用了1秒!

压缩文件的代码如下。...此时应用程序就会调用系统调用的接口open方法,然后内核去访问磁盘中的文件,将文件内容返回给应用程序。大致的流程如下 ? 直接缓冲区和非直接缓冲区 既然我们要读取一个磁盘的文件,要废这么大的周折。...其实直接缓冲区有以下的缺点。直接缓冲区的缺点: 不安全 消耗更多,因为它不是在JVM中直接开辟空间。这部分内存的回收只能依赖于垃圾回收机制,垃圾什么时候回收不受我们控制。...数据写入物理内存缓冲区中,程序就丧失了对这些数据的管理,即什么时候这些数据被最终写入从磁盘只能由操作系统来决定,应用程序无法再干涉。...我想要的效果是这样的。

51520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用libev监视文件夹下文件(夹)属性变动的方案和实现

    在《libev源码解析》系列中,我们分析了libev的基本原理。本文我们介绍一套使用libev封装的文件(夹)变动监视方案和实现。...要解决第三个问题,我们需要对文件夹的监视精细到具体的文件级别,也就是说不是笼统的对某个目录进行监视,而是还要对目录下每个文件进行监视。        ...其实这个地方使用模板函数并不是很合适,最好是针对具体类的方法。        ...对比文件夹下文件(夹)新增的类将使用上述方法实现对比操作。...FolderWatcher是最终实现文件夹监视的类。它的构造函数第8行构建了一个文件夹对比类;第10行遍历整个目录,对目录下文件夹和文件设置监视器。

    1.3K20

    使用libev监视文件夹下文件(夹)属性变动的方案和实现

    在《libev源码解析》系列中,我们分析了libev的基本原理。本文我们介绍一套使用libev封装的文件(夹)变动监视方案和实现。...要解决第4个问题,我们需要对文件夹的监视精细到具体的文件级别,也就是说不是笼统的对某个目录进行监视,而是还要对目录下每个文件进行监视。        ...其实这个地方使用模板函数并不是很合适,最好是针对具体类的方法。        ...对比文件夹下文件(夹)新增的类将使用上述方法实现对比操作。...FolderWatcher是最终实现文件夹监视的类。它的构造函数第8行构建了一个文件夹对比类;第10行遍历整个目录,对目录下文件夹和文件设置监视器。

    1.3K20

    面试官让我用channel实现sync包里的同步锁,是不是故意为难我?

    前言 Go语言提供了channel和sync包两种并发控制的方法,每种方法都有他们适用的场景,并不是所有并发场景都适合应用channel的,有的时候用sync包里提供的同步原语更简单。...今天,我将深入探讨Go语言channel和select语句的表达能力。为了演示只用这两个原语就可以实现多少功能,我将从头开始用它们重写sync包。...0了,抽空write通道,让write通道变为可用 if rs == 0 { <-l.write return } // 如果释放后读锁的数量减一后不是...下面是用channel实现的WaitGroup同步原语,真正起到阻塞goroutine作用的是世代里的wait通道,然后通过用WaitGroup通道包装generation结构体实现WaitGroup的...有关通道和同步锁都适合解决什么种类的问题我们后面的文章再细说,今天这篇文章,需要充分理解Go语言通道的行为才能理解文章里的代码,如果有哪里看不懂的可以留言,只要时间允许我都会回答。

    77960

    ivy的配置和使用说明

    maven很强大,但也有令人烦恼的地方。看到Ivy似乎日渐成熟,试试看这个小东西表现如何,毕竟后面有那个强大的ant 一....设置系统属性IVY_HOME到ivy的安装目录,比如D:\ivy2.4.0。 二....比如需要将ivy.default.ivy.user.dir设置到一个特定的目录而不是使用当前操作系统的user.home路径,对于ivy,可以通过设置ant属性的方式。...由于build.xml文件通常都是项目文件,需要提交到svn,git等版本控制系统中,因此直接在里面写路径不大适合,一旦修改需要改动所有项目的build.xml,而且不同开发人员要求路径相同,不大合理。...,奇怪的是这里的文件名是ivyconf.xml,很郁闷,我用ivysettings.xml测试了好久都不生效,原来根结在这个地方。

    1.4K20

    Ant 简易教程

    前言 Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。...笔者下载的版本是 apache-ant-1.9.4。 ? 1.2 配置环境变量 配置环境变量(我的电脑 -> 属性 -> 高级 -> 环境变量)。...Build failed 注意:因为ant默认运行build.xml文件,这个文件需要我们创建。...但如果出现 'ant' 不是内部或外部命令,也不是可运行的程序或批处理文件 说明安装失败:(可以重复前述步骤,直至安装成功。) 2 例子 在安装和配置成功后,我们就可以使用ant了。...property元素可用作 task 的属性值。在task中是通过将属性名放在“${”和“}”之间,并放在task属性值的位置来实现的。

    1.1K100

    ant 编译java(java是干啥的)

    大家好,又见面了,我是你们的朋友全栈君。...ant是使用java实现的,所以它跨平台 使用简单–与ant的兄弟make比起来 语法清晰–同样是和make相比 功能强大–ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。...置,你带着你写好的build.xml到任何一台服务器上,只需要做简单的修改(一些设定,例如目录),然后一两个命令完成,这难道不是一件美好的事情吗。...除此之外它们各有特点: propery的特点是维护简单,只需要简单的键值对,因为并不是所有人都喜欢xml的格式。 xml include的特点是不单可以提取出属性来,连target也可以。...还是以前的例子: 例如我们想把src1 src2 src3这三个属性从xml中提出来,可以新建一个文件叫all.properties 里边的内容 src1=D:\\study\\ant\\src1 src2

    96711

    java中的ant详解

    --因为ant是使用java实现的,所以它跨平台 使用简单--与ant的兄弟make比起来 语法清晰--同样是和make相比 功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能...置,你带着你写好的build.xml到任何一台服务器上,只需要做简单的修改(一些设定,例如目录),然后一两个命令完成,这难道不是一件美好的事情吗。...,因为并不是所有人都喜欢xml的格式 xml include的特点是不单可以提取出属性来,连target也可以。...还是以前的例子: 例如我们想把src1 src2 src3这三个属性从xml中提出来,可以新建一个文件叫all.properties 里边的内容 src1=D:\\study\\ant\\src1 src2...=D:\\study\\ant\\src2 src3=D:\\study\\ant\\src3 然后你的build.xml文件可以这样写,别人只需要更改配置文件,而不许要更改你的build.xml文件了

    1.1K21

    ant安装配置使用介绍及eclipse中使用

    大家好,又见面了,我是你们的朋友全栈君。...需要安装JDK, 二、配置环境变量 window中设置ant环境变量:配置环境变量:我的电脑—-属性—–高级—-环境变量 ANT_HOME C:/ apache-ant-1.8.1 path...%ANT_HOME%/bin classpath %ANT_HOME%/lib 配置JDK:java环境变量设置 – 精简版 1.右键打开我的电脑->属性->高级...因为ant默认运行build.xml文件,这个文件需要我们建立。】 查看版本:ant -version 但如果出现如下内容,说明安装失败:(可以重复前述步骤,直至安装成功。)...‘ant’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 从别处移动过来的: 使用: (1)在D盘根目录下建立build.xml 1 <?

    90220

    Jmeter系列(41)- Jmeter + Ant +Jenkins 持续集成

    至此创建成功 讲解 build.xml(重点) 前提 先提供一个改好的 build.xml,不想看步骤的可以直接下载改一些配置即可,需要改的地方都标出来了 链接:https://pan.baidu.com.../s/116VUyjmf6pKGb1aY4ob_0Q 提取码:lnvy project 标签 作用 ant 的根目录,每个 build 文件必须包括一个 project ?...property 标签 作用 创建一个属性,全局通用 name:属性名 value:属性值 如何引用属性:${name} 修改 build.xml 修改 property ?...这里修改 jmeter 相关的属性,方便后续复用 修改 jmeter脚本路径 ? 需要修改 .jmx 文件所在路径和文件名 修改测试报告模板 ? 修改邮件相关 ?...题外话 这里我讲解的邮件发送时通过 build.xml 来配置发送邮件的内容 当然也可以通过 jenkins 的邮件服务来发送邮件 但相比而言,在 build.xml 中配置会容易上手

    1.1K21

    ant安装、环境变量配置及验证

    一、安装ant 到官方主页http://ant.apache.org下载新版(目前为Ant1.8.1)的ant,得到的是一个apache-ant-1.8.1-bin.zip的压缩包。...1.8.1 path             C:/ apache-ant-1.8.1/bin classpath      C:/apache-ant-1.8.1/lib 注意:  配置环境变量:我的电脑...----属性-----高级----环境变量     如:ANT_HOME:C:\apache-ant-1.8.1     PATH:%ANT_HOME%\bin (为了方便在dos环境下操作)     ...因为ant默认运行build.xml文件,这个文件需要我们建立。】 查看版本:ant  -version ? 但如果出现如下内容,说明安装失败:(可以重复前述步骤,直至安装成功。)...'ant' 不是内部或外部命令,也不是可运行的程序或批处理文件。 从别处移动过来的: 使用: ( 1 )在D盘根目录下建立build.xml 1<?

    2.7K70

    性能测试自动化框架——Jenkins+Ant+Jmeter

    将这三者结合起来可以搭建一套Web HTTP接口性能测试的持续构建环境,实现性能测试自动化。...JMeter+Ant集成 1、引入Apache Ant Apache Ant是由Apache软件基金会提供的一个将软件编译、测试、部署等步骤联系在一起的自动化工具,由Java语言开发,所以支持跨平台...(1)修改原因: Jmeter执行结果文件默认保存的不是xml格式,无法转化成html格式; Jmeter执行结果文件中很多数据不保存,但是我们需要在测试报告中体现; (2)配置文件路径: /...步骤四: 修改Ant中的配置文件build.xml。 Ant采用xml格式建立构建文件,默认名称是build.xml。...2、修改build.xml文件 修改build.xml文件生成jtl和html文件的目录到Jenkins的工作目录下 ?

    1.2K10

    性能测试自动化框架——Jenkins+Ant+Jmeter

    将这三者结合起来可以搭建一套Web HTTP接口性能测试的持续构建环境,实现性能测试自动化。...JMeter+Ant集成 1、引入Apache Ant Apache Ant是由Apache软件基金会提供的一个将软件编译、测试、部署等步骤联系在一起的自动化工具,由Java语言开发,所以支持跨平台...(1)修改原因: Jmeter执行结果文件默认保存的不是xml格式,无法转化成html格式; Jmeter执行结果文件中很多数据不保存,但是我们需要在测试报告中体现; (2)配置文件路径: /apache-jmeter...步骤四: 修改Ant中的配置文件build.xml。 Ant采用xml格式建立构建文件,默认名称是build.xml。...2、修改build.xml文件 修改build.xml文件生成jtl和html文件的目录到Jenkins的工作目录下 ?

    1.5K10
    领券