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

  • DroidModderX ROOT Master

    DroidModderX

    14 ŞUBAT 2011
  • Ordetta Price

    Ordetta Pric

    12 EYLÜL 2011
  • RinconDynamic

    RinconDynami

    1 EKİM 2011