"最後の100バイト "インタビューシナリオ
2023-09-28 20:07:20
質問内容
先日、面接でこのような質問をされました。
シナリオ あるネットワーク上で送信されたバイトを監視している Web ページがあります。バイトが送信されるたびに、そのバイトを渡す recordByte() 関数が呼び出され、これは 1 日に何十万回も発生する可能性があります。このページにはボタンがあり、押されるとrecordByte()に渡された最後の100バイトが画面に表示されます(これは、以下のprintメソッドを呼び出すことによって行われます)。
次のコードは、私が与えられ、記入するよう求められたものです。
public class networkTraffic {
public void recordByte(Byte b){
}
public String print() {
}
}
100バイトを格納するのに最適な方法は何でしょうか?リストですか?どのようにするのがベストか気になります。
どのように解決するのですか?
このようなもの ( 循環バッファ ) :
byte[] buffer = new byte[100];
int index = 0;
public void recordByte(Byte b) {
index = (index + 1) % 100;
buffer[index] = b;
}
public void print() {
for(int i = index; i < index + 100; i++) {
System.out.print(buffer[i % 100]);
}
}
循環バッファを使用するメリット
- 静的に領域を確保することができます。リアルタイム ネットワーク アプリケーション (VoIP、ストリーミングなど) では、送信のすべてのデータを格納する必要はなく、処理する新しいバイトを含むウィンドウのみを格納する必要があるため、これはよく行われることです。
- 高速です:O(1)の読み取りと書き込みコストの配列で実装することができます。
関連
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
Javaジェネリックを1つの記事で
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
Java:未解決コンパイル問題の解決方法
-
Java基礎 - マッピングとQ/A
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み] ArrayListの最後の値を取得する方法
-
[解決済み] 文字列から最後の文字を削除するには?
-
[解決済み] StringBuilderの最後の文字を削除しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Java の switch case 文で必要な定数式の問題の解決法
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
Javaジェネリックを1つの記事で
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
Javaがテキストファイルを読み込む
-
アノテーション「@Retention」の役割
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題