F5 (Strömmar) Flashcards
Vad innebär att beräkningar är “flyktiga”?
Försvinner när man stänger av en dator/applikatiton (lagras inte)
Vad är arbetsminne?
Flyktigt minne; går förlorat när vi stänger av datorn
Vad är lagringsminne?
Beständigt minne; lagra data även när datorn blir avstängd
Vad är fördelen med att spara och ladda data?
Möjliggör utveckling av mer avancerade applikationer
Vad är “strömmar”/”stream”?
Dataflöden (sekventiell följa av tecken)
Varför behövs strömmar/streams?
Förflyttning av data mellan t ex
- program och hårddisk
- två program på samma dator
- olika datorer
Vad kallas flödet FRÅN ett program?
Utström (“att skriva data”)
Vad kallas flödet TILL programmet?
Inström (“att läsa data”)
Vad är java.io?
Ett bibliotek som innehåller en stor mängd klasser för att implementera olika typer av stömmar
Vilka två typer av strömmar finns?
Byte-baserade och character-baserad
Vad kallas byte-baserade klasser?
Stream (inputstream/outputstream)
Vad kallas character-baserade klasser?
Reader/writer
Hur många bits är byte stream?
8 bits
Hur många bits är character stream?
16 bits
Vad betyder -1?
Att det inte finns något kvar att läsa
Vad gör BufferedReader?
Istället för att läsa en char i taget från Reader läser Buffered reader ett större block, t ex genom metoden ReadLine( ) som läser en hel rad
Hur stänger man en reader?
Med close( )
Vad innebär dispose pattern?
att man säkerställa att alla strömmar stängts, ofta genom ett finally block som kollar om streamen fortfarande är öppen och isåfall försöker vi stänga den
Vad är Serialisering?
konvertera tillståndet av ett objekt till en byte stream på ett sätt så att bytestreamen kan konverteras tillbaka till objektet
Vilka krav finns för att att använda Serialisering?
Klassen måste implementera interfacet Serializable
Vad är unicode?
Samling av skrivtecken
Vad är ett vanlig exception som writer-klasser kastar?
IOException, säger att ett I/O undantag har hänt
Vad kan en buffer bidra till?
Snabba på IO operationer
Vad gör metoden ReadLine( ) i BufferedReader?
Läser en hel rad
Varför är flush( ) viktigt?
Säkerställa att all data skickas iväg och inte går förlorad t ex om en try/catch block stängs
Vad gör en BuffertOutputStream
Skriver med hjälp av buffert
Vad gör en DataOutputStream?
Skriver olika datatyper
Vad gör en ObjectOutputStream?
Skriver objekt
Vad gör en ZipOutputStream?
Skriver komprimerad data
Vad gör en CipherOuputStream?
Skriver krypterad data
Vilket interface implementerar DataOutputStream och ObjectOutputStream?
DataOutput
Vad innebär det att kedja ihop strömmar?
Kombinera olika strömmar i syfte att ändra dess innehåll
Vad innehåller en .dat-fil?
Rådata, ej läsligt för människor
Vad är serialisering?
Överföra tillståndet av ett objekt till byte-ström
Vad är motsatsen till serialisering?
Deserialisering
Varför är det viktigt att en klass implementerar serialisering?
För att samtliga fält i objektet
och
alla objekt som det skrivna objektet innehåller referenser till
måste skriva, serialisering överför alltså tillståndett av ett tobjekt till byte-ström
Vad innebär deserialisering?
att vi läser bytes från hårddisken och bygger ett objekt
Vad används SerialVersionUID till?
används vid DESERIALISERING för att kontrollera om objektet skapades med samma version av klassen (sparas vid serialisering)
Vad är interfacet DataInput i java?
interfacet DataInput implementeras av strömmar som kan läsa primitiva datatyper (int, long, double etc)
Vad är “private static final long serialversionuid”?
deklarationen på en variabel som används för att objekt ska kunna återskapas till samma version som sparades vid serialisering