我的客户端有一个oracle数据库,一个对象通过objOutStream.writeObject持久化为blob字段,该对象现在有一个不同的serialVersionUID(即使对象没有变化,可能是不同的jvm版本),当他们尝试反序列化时抛出异常:
java.io.InvalidClassException: CommissionResult; local class incompatible:
stream classdesc serialVersionUID = 8452040881660460728,
local class serialVersionUID = -5239021592691549158
Run Code Online (Sandbox Code Playgroud)
它们serialVersionUID从一开始就没有为固定值赋值,所以现在有些东西改变了抛出异常.现在他们不想丢失任何数据,为此我认为最好的方法是读取对象,对它们进行反序列化,然后通过XMLEncoder再次保存它们,以避免将来出现类似当前"类不兼容"错误的错误.
显然有对2个不同的值serialVersionUID持续了那个对象,所以我想读取数据,尝试用一个值,如果失败则与其他值尝试,要做到这一点我已经试过改变serialVersionUID类使用
的ASM api.我已经能够更改值,但问题是如何激活类上的更改,因此当它被反序列化时,objInpStr.readObject()将我的修改版本的类与我的特定serializedVersionUID.我做了一个测试类来模拟真实的环境,我拿一个对象(它具有不同serialVersionUID问题的对象Reservation属性)对象名称属性是
CommissionResult:
public class Reservation implements java.io.Serializable {
private CommissionResult commissionResult = null;
}
public class CommissionResult implements java.io.Serializable{
}
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.commons.SerialVersionUIDAdder;
public class SerialVersionUIDRedefiner extends ClassLoader {
public void workWithFiles() {
try {
Reservation res = …Run Code Online (Sandbox Code Playgroud) 我有一个问题,从来没有发生在我身上的Wamp,找不到什么问题.我的www文件夹中有一些项目(运行Windows 7).
我的主机文件已127.0.0.1 localhost取消注释该行
当我从主Wamp面板页面转到http://localhost/或http://127.0.0.1/点击项目名称如"mysite"时,链接只指向"mysite"而不是"http://localhost/mysite"
因此我看不到任何网站,我该怎么办?
今天我在计算机组织课上,老师谈到了一些有趣的事情.谈到为什么缓存有效时,他说:
for (i=0; i<M; i++)
for(j=0; j<N; j++)
X[i][j] = X[i][j] + K; //X is double(8 bytes)
Run Code Online (Sandbox Code Playgroud)
用第二行改变第一行是不好的.你对此有何看法?为什么会这样?
我可能做错了什么,做个新手.你能帮帮我吗?
我在C中编写了一个名为hello.c的简单Hello World程序,并运行以下命令:
gcc -S hello.c
Run Code Online (Sandbox Code Playgroud)
那产生了hello.s.然后我用GNU汇编程序使用该文件as:
as hello.s
Run Code Online (Sandbox Code Playgroud)
哪个产生了非可执行文件a.out,哪些仍然需要链接,我明白了吗?
我尝试通过使用链接它ld,如下所示:
ld a.out
Run Code Online (Sandbox Code Playgroud)
但是得到以下错误:
a.out: file not recognized: File truncated
Run Code Online (Sandbox Code Playgroud)
并ld删除我的文件.
这是一个x86 Ubuntu系统.我究竟做错了什么?非常感谢!
我想知道哪种Integer或Float类型最快..
我认为字节比整数更快,因为它的范围更小.
有些人告诉我..在某些情况下,整数比一个字节快.
第二个问题:
GPU正在走向世界统治...
所以我问自己:Double可以比整数更快......因为FPU
所以专家在哪里?:)
如果是,那为什么会这样呢?不正确的关联性对后缀表达有效吗?
c ×2
java ×2
optimization ×2
bytecode ×1
caching ×1
decompiling ×1
double ×1
integer ×1
local ×1
localhost ×1
stack ×1
translation ×1
wamp ×1
wampserver ×1