标签: serializable

为什么 PostgreSQL 会中止这个可序列化的计划

理论指出,一组并发事务是可序列化的,当且仅当它们的并发执行等效于其中一个可能的串行执行。

现在下面的事务T1和T2的并发执行是可串行化的,因为等价于串行执行“T1然后T2”

T1: r1x   w1y  c1
T2:    w2x   c2

(i.e., T1 reads x, T2 writes x, T1 writes y, T2 commits, and finally, T1 commits)
Run Code Online (Sandbox Code Playgroud)

但是,在 PostgreSQL 10.4 中尝试时,如下所示:

T1: begin
T1: set transaction isolation level serializable;
T2: begin
T2: set transaction isolation level serializable;
T2: update variables set value = value + 1 where name = 'x'
T1: update variables set value = value + 1 where name = 'y'
T2: commit
T1: commit
Run Code Online (Sandbox Code Playgroud)

当此事务尝试提交时,数据库将中止 T1。为什么?

postgresql concurrency transactions serializable

4
推荐指数
1
解决办法
195
查看次数

使用ObjectInputStream发送可序列化对象的问题

来自服务器代码的片段:

 public void run() {
        try {
          // Create data input and output streams
          ObjectInputStream inputFromClient = new ObjectInputStream(
            socket.getInputStream());
          ObjectOutputStream outputToClient = new ObjectOutputStream(
            socket.getOutputStream());

          while (true) {

         cop = inputFromClient.readObject();

         String[][] m1=new String[][] {{"1", "1","1"}};
         Object xx=new getSerialModel(m1);
         outputToClient.reset();
         outputToClient.writeObject(xx);

         outputToClient.flush();


          }
        }
Run Code Online (Sandbox Code Playgroud)

来自客户的片段:

//////////////
    /// sockt jop
    try {
    // Create a socket to connect to the server
   socket = new Socket("127.0.0."+Math.round(50+Math.random()*50), 8000);

    // Create an output stream to send data to the server
   toServer = new …
Run Code Online (Sandbox Code Playgroud)

java sockets serializable

3
推荐指数
1
解决办法
9821
查看次数

将默认值设置为属性并使其可序列化

我需要为属性设置默认值,但我不能这样做:

private int prop = 1;

public Prop
{
     get { return prop;} ...
}
Run Code Online (Sandbox Code Playgroud)

因为我需要序列化这个类,如果我这样做,我会松开默认值.

您是否知道在序列化之后和之前有效的任何解决方案,向属性添加属性?

我正在使用框架3.5的c#.

.net c# default properties serializable

3
推荐指数
1
解决办法
7823
查看次数

序列化时是否保留Interned Strings?

如果我有包含许多重复字符串的大对象图,那么在序列化它们之前对字符串进行实际的()是否有好处呢?这会减少传输的数据量吗?字符串会在接收端共享指针吗?

我的猜测是在发送之前将对字符串进行去除,从而减小数据的大小,并且它们将全部由接收端上的相同对象表示,但它们实际上不会在接收端被实现.(意味着每个序列化'事务'上会创建一个新的字符串实例)

java serializable string-interning

3
推荐指数
2
解决办法
1291
查看次数

通过Singleton Pattern创建Serializable对象会发生什么?

问题说了一切.有没有特别的事件发生?我有一个需要实现Serializable接口的类.我正在使用Wicket开发一个应用程序.我已经实现了一个Factory类,它将提供一些链接(以删除一遍又一遍地写入的相同代码块的冗余):

public class NavigationLinkFactory implements Serializable {

    private static final long serialVersionUID = 7836960726965363785L;

    private NavigationLinkFactory() {

    }

    private static class SingletonHolder { 
        public static final NavigationLinkFactory instance = new NavigationLinkFactory();
    }

    public static NavigationLinkFactory getFactory() {          
        return SingletonHolder.instance;

    }

    private Object readResolve() throws ObjectStreamException {
        return SingletonHolder.instance;
    }

    public Link<Serializable> getUserHomeLink() {
        return new Link<Serializable>("home", new Model<Serializable>()) {

            private static final long serialVersionUID = -8282608926361995521L;

            @Override
            public void onClick() {
                EMSSession session = (EMSSession) getSession();
                session.setActiveHorizonalMenu(1);
                setResponsePage(HomePage.class);
            }
        }; …
Run Code Online (Sandbox Code Playgroud)

java singleton object serializable

3
推荐指数
1
解决办法
937
查看次数

Serializable如何工作?

这个问题不是关于如何使用 Serializable,我已经知道了.但是,我想知道如何实现Serializable提出以下警告:

The serializable class MyClass does not declare a static final serialVersionUID field of type long

假设我想编写一个接口Serializable,我将如何"警告"程序员实现我的接口来声明变量?我已经尝试查看源代码,Serializable.java但我找不到任何会导致此行为的内容.这甚至可能吗?

谢谢!

java serializable

3
推荐指数
1
解决办法
265
查看次数

为什么serialVersionUID字段存在?

它让我从Serializable界面的启动中感到困惑,为什么我必须在我的所有课程中加入这个领域.我知道这个接口需要一个唯一的标识符来标记类,但为什么它们不能在运行时生成它.例如,他们可以使用完全限定类名的MD5哈希或者用于处理罕见事件中的重复项的类似方法来生成它(也就是说,我确定,当被要求生成id时,eclipse会做什么).

所以我要问的是(这篇文章不仅仅是对标准库的咆哮)究竟是如何使用框架化序列化字段的?

我想知道的原因是因为我将尝试创建一个Aspect(使用AspectJ或其他语言),它将使用MD5哈希添加serialVersionUID字段,并且能够以API可接受的方式处理冲突.

如果我能让它发挥作用,我会发布结果.

java serializable serialversionuid aspects

3
推荐指数
1
解决办法
1906
查看次数

我一直在获取java.io.NotSerializableException:java.io.ObjectOutputStream

这是我一直在尝试的代码

import java.util.Scanner;
import java.io.*;

abstract class Account implements Serializable {
    protected String accountHolderName;
    protected long balance;

    protected ObjectOutputStream accData;

    Scanner input = new Scanner(System.in);
}

class Savings extends Account implements Serializable {

    Savings() throws IOException {
        System.out.print("enter your name: ");
        accountHolderName = input.nextLine();
        System.out.print("\n");
        System.out.print("enter your balance: ");
        balance = input.nextLong();
        accData = new ObjectOutputStream(new FileOutputStream(accountHolderName + ".bin"));
        accData.writeObject(this);
        accData.close();
    }
}

class Banking implements Serializable {
    public static void main(String args[]) throws IOException {
        Scanner input = new …
Run Code Online (Sandbox Code Playgroud)

java exception serializable

3
推荐指数
1
解决办法
2万
查看次数

如何将对象标记为可序列化

我有一个system.document.table对象,我想将该对象标记为Serializable以便进行深度克隆。例外是程序集“ PresentationFramework,版本= 4.0.0.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35”中的类型“ System.Windows.Documents.Table”未标记为可序列化。

 FlowTable original =  new FlowTable();
 original = objFlowTab.deepclone();
Run Code Online (Sandbox Code Playgroud)

其中objflowtab具有表对象

[Serializable]
public class FlowTable : Table
{ ....
  ....
  public static class ExtensionMethods
{
    // Deep clone
    public static T DeepClone<T>(this T a)
    { 

        using (MemoryStream stream = new MemoryStream())
        {

            BinaryFormatter formatter = new BinaryFormatter();
            formatter.Serialize(stream,a);
            stream.Position = 0;
            return (T)formatter.Deserialize(stream);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在formatter.Serialize(stream,a)中遇到错误;

c# wpf documents serializable cloning

3
推荐指数
1
解决办法
3690
查看次数

如何使列表变量的泛型可序列化

如何制作private List <T> list;或可private Map<String, Value> unknownData; 序列化?这些是我的类中的变量,其父级是可序列化的,但是SonarQube抱怨瞬时或可序列化的更改

myClass.java

public class MyClass implements Serializable {
  private static final long serialVersionUID = 0L;
  protected  List<T>  list = new ArrayList<T>();
Run Code Online (Sandbox Code Playgroud)

SonarQube投诉的屏幕截图

java generics list serializable transient

3
推荐指数
1
解决办法
1904
查看次数