0

mysql データベースで生成されたプロジェクト管理に関連するすべてのデータを一元化することを目的としたアプリケーションを作成しています。アプリケーションは、次のように 3 つの部分/プロジェクトに分けることができます。

  • サーバー層:

複数のクライアント間のレイヤーとして機能し、データベース (mysql) への接続を維持します。プロトコル クラスをリッスンし、INSERT、UPDATE、DELETE、SELECT などの操作を実行します。非常に単純なクラスであり、サーバーから独立できるため、2EE ではなくプレーンな Java 2SE で記述されています。

  • 通信プロトコル:

java.util.EventObject を拡張し、Serializable インターフェイスを実装するクラス。クライアントとサーバー間の共通プロトコルに関連する情報を格納するために機能します。これは、プロトコルのように機能するため、ソケットを実際に「移動」するクラスです。

  • クライアント アプリケーション:

基本的にグイ。これは javafx 2.1 で書かれており、情報を収集するための素敵で美しいインターフェースを提供することを目的としています。

私の質問は、コードを介して可読性を向上させるために、Communication Protocol クラスにいくつかの static final フィールドを作成し、次に int として宣言しました。byte を使用するとコードが改善されるかどうかを知りたいと思います。 . JVM がワードに相当するスペースをバイト、ショート、および ints 変数に分離することは理解していますが、この動作はソケットを介してデータを送信するときに発生しますか? したがって、この文脈では、どちらが優れているか:

/**
 * 
 */
private static final long serialVersionUID = 7530533341506425480L;


public static final int CLIENT_DISCONNECTED = -1;
public static final int NEW_INFO_INSERTED = 0;
public static final int SHUTDOWN_ORDER = 1;

public static final int INFO_NOT_INSERTED = 100;

public static final int CLIENT_CONNECT = 10000;
public static final int CLIENT_LOGIN = 10001;

public static final int SERVER_LOGIN_OK = 20001;
public static final int SERVER_LOGIN_FAILED = 20002;
public static final int SERVER_SAYS = 20003;
public static final int SERVER_IMAGE_INSERTED = 20004;

public final static int DB_WORKERS = 1001;
public final static int DB_PROJECTS = 1002;
public final static int DB_SECTORS = 1003;
public final static int DB_ACTIVITIES = 1004;
public final static int DB_SUBACTIVITIES = 1005;
public final static int DB_INSERTION = 1006;
public final static int DB_REL_COST = 1007;
public final static int DB_FUNCTIONS = 1008;
public final static int DB_INSERTION_ID = 1009;
public final static int DB_INSERTION_IMG = 1010;

public final static int DB_WORKER_INSERTED = 4010;
public final static int DB_ACTIVITY_INSERTED = 4011;
public final static int DB_SECTOR_INSERTED = 4012;
public final static int DB_SUBACTIVITY_INSERTED = 4013;
public final static int DB_FUNCTION_INSERTED = 4014;
public final static int DB_IMAGE_INSERTED = 4015;
public final static int DB_PARENTS_INSERTED = 4016;

またはバイトを使用していますか?乾杯

4

5 に答える 5

6

ColeJohnson が言うように、バイトは int よりも小さいため、技術的には送信が高速です。ただし、一度に 10 万または数百万のこれらの値を送信しない限り、サイズの違いは問題になりません

于 2012-05-12T17:26:31.820 に答える
3

バイトが小さいため、送信が高速になります。ただし、これらの値はどれもバイトに収まりません...

于 2012-05-12T17:18:54.077 に答える
1

バイトは小さいので移動は速くなりますが、多くのアプリケーションでは int よりも遅い速度で処理されます。これは、ネットワークのボトルネック スループットと、送信されたバイト/int の量に依存すると思います。

于 2012-05-12T17:28:56.583 に答える
0

int は 4 バイトを使用するため、バイトが最も効率的です。

ただし、手動で int をバイト配列に変換する必要があります。

于 2012-05-12T17:24:42.157 に答える
0

答えはバイトです、それも柔軟だと思います

于 2012-05-12T17:41:54.120 に答える