SORU
2 Kasım 2011, ÇARŞAMBA


"Son 100 bayt" Röportaj Senaryo

Bir röportajda bu soruyu geçen gün aldım ve mümkün olan en iyi cevapları(çok iyi haha cevap vermedim) bilmek istiyorum:

Senaryo: bayt bazı ağ üzerinden gönderilen izleme bir web sayfası Var. Bir bayt recordByte gönderilir her zaman() işlevi bayt, bu kez günde yüz binlerce insanın başına gelebilecek geçirmeden denir. Basıldığında görüntüler son 100 bayt recordByte geçirilen bu sayfada bir düğme var() ekran (aşağıya baskı yöntemini çağırarak bunu yapar).

Aşağıdaki kodu verildi ve doldurmaları nedir:

public class networkTraffic {
    public void recordByte(Byte b){
    }
    public String print() {
    }
}

100 bayt depolamak için en iyi yolu nedir? Bir liste? Bunu yapmak için nasıl merak ediyorum.

CEVAP
2 Kasım 2011, ÇARŞAMBA


Böyle bir şey (dairesel tampon) :

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]);
   }
}

Dairesel bir tampon kullanmanın yararları:

  1. Uzay statik olarak rezerve edebilirsiniz. Bir gerçek zamanlı ağ uygulaması (VoIP, streaming,..)bu genellikle yapılır çünkü gerek yok store, veri iletimi, ama sadece bir pencere içeren yeni bayt işlenecek.
  2. Hızlı okuma ile ilgili bir dizi uygulanabilir ve O maliyeti(1) yaz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alan Fullmer

    Alan Fullmer

    3 EYLÜL 2010
  • Chuck Testa

    Chuck Testa

    14 AĞUSTOS 2011
  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011