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

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • New Scientist

    New Scientis

    27 Kasım 2006