問題タブ [externalizable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
11 に答える
128497 参照

java - JavaのSerializableとExternalizableの違いは何ですか?

JavaのSerializableとの違いは何ですか?Externalizable

0 投票する
2 に答える
1272 参照

java - シリアル化を使用して TCP チャネル経由で大きなファイルを送信する

Java でクライアント サーバー システムを開発しています。シリアル化されたオブジェクトを使用して、TCP チャネル経由でメッセージを送信しています。

また、ファイルを送信する必要があります。独自のカスタム メッセージ クラスを定義できます。

して送信します。私が理解していることから、ファイルを反対側に送信する前にすべてをメモリに入れようとするため、大きなファイルがある場合、これは問題を引き起こします。

私は読んExternalizableだことがありますが、TCP チャネル経由でファイルを送信する前に、ファイルがまだすべてのコンピューターのメモリに読み込まれている場合、それは良くありません。私はそれを行うための「怠惰な」方法が必要でした(ネットワーク経由で送信するときにディスクから読み取り、既に読み取ったものをメモリから破棄します)。

この問題を処理する最もクリーンな方法は何ですか? 最悪の場合、これを小分けにすることもできますが、できれば避けたいです。

編集:

もちろん、ファイルのストリームを開いて「送信」することもできます。しかし、それは、ファイルと他のすべてのメッセージを異なる方法で送信することを意味します。これは、私が避けたいと思っていることです。

ありがとう

0 投票する
1 に答える
337 参照

java-me - アプリケーションを閉じた後に lwuit.io.Storage がクリアされる

lwuit.io.Storage を使用しようとしていますが、アプリケーションの実行中は正常に動作します (crud を実行できます) が、アプリケーションを閉じるとデータが消去されます。私は考えました:

  • クラスを「Util.register("Car", Car.class);」で登録する 「initVars()」メソッドで。
  • 「Car」クラスに「Externalizable」インターフェースを実装します。// "getObjectId()" メソッドは "Car" を返します
  • 「Storage.init("myProjectName");」の呼び出し MainMIDlet クラスで
  • MainMIDlet クラスの「Storage.isInitialized()」でストレージが適切に初期化されていることを確認するためのチェック
  • 次を使用して、「車」オブジェクトをベクターで保存しています。

    /li>
  • 「Storage.getInstance().clearStorage();」の呼び出しを避ける コードのどこでも!

  • 「Storage.getInstance().listEntries();」「cars」文字列を含む 1 つの要素配列を返します (アプリケーションを再起動した後でも)。

これは私の単純な「車」クラスです。

私が見逃している/ここで間違っていることは何か分かりますか?

前もって感謝します

0 投票する
1 に答える
545 参照

java - XStream で外部化可能なクラスにデフォルトの Java シリアライゼーションを使用する

オブジェクトをシリアライズするアプリケーションの一部として XStream を使用しています。ユース ケースの 1 つとして、Externalizable インターフェイスを実装するいくつかのオブジェクトをシリアル化する必要があります。私のユースケースでは、ネイティブ Java シリアライゼーションを使用してそれらをシリアライズしたいと考えています。

インターネットでhttp://old.nabble.com/How-to-remove-Externalizable-Converter-td22747484.htmlというリンクを見つけました。これは、この問題に対処するのに役立ち、Reflection Converter for Externalizable オブジェクトの使用を開始するのに役立ちました。

アプリケーションをテストすると、高度な同時アクセス時にアプリケーションがコンバーター コードに多くの時間 (数十秒) を費やしていることがわかります。FieldDictionary のbuildMapメソッドに問題があることがわかります。

元の問題に対処するためのより良い方法があるかどうか疑問に思っていましたか? 同時実行環境が高い場合、Reflection Converter のパフォーマンスは低下すると予想されますか?

環境に関する追加のコンテキストを提供するため。これは Web アプリケーションであり、要求処理中にシリアル化が行われ、アプリケーションは数百の同時スレッドを持つことができます。

これに関するヘルプやアドバイスをいただければ幸いです。

0 投票する
3 に答える
1596 参照

java - javaでwriteObjectとreadObjectをオーバーライドできるのに、なぜExternalizableがあるのか

writeObject() と readObject() をオーバーライドすることでデフォルトのシリアル化プロセスをオーバーライドできるため、Externalizable インターフェイスの必要性は何ですか?

0 投票する
1 に答える
6110 参照

sql-server - 例外: UNKNOWN から UNKNOWN への変換はサポートされていません

一部の jdbc コードを MySql から SQL Server に変換しています。しようとするとき

最後のステートメントstmt.setObject(4,o)は例外をスローします。

そのクラスのメソッド writeExternal() は次のように実装されます。

問題のデータベース列は、null ではなく varbinary(max) として定義されています

コードは MySql を使用してうまく動作しますが、Sql Server で実行するにはどうすればよいかわかりません。

どんな提案でも大歓迎です

0 投票する
2 に答える
5256 参照

java - Externalizable は Serializable とどう違うのですか?

私はそれを読みました

Externalizable は writeExternal() および readExternal() メソッドを提供します。これにより、Java のデフォルトのシリアライゼーションに依存する代わりに、Java シリアライゼーション メカニズムを柔軟に制御できます。

しかし、Serializable と override を実装readObject(), writeObject(), すると、シリアライゼーション プロセスをカスタマイズしているということにもなりませんか?

どう違うの?

ありがとう。