Programmering 2 Flashcards
Hva er primitive datatyper
Hva er de 8 primitive datatypene?
Hvor mange bits er de?
De er predefinerte datatyper i java.
Altså datatyper som bruker ikke har definert selv.
Det andre er Objekt datatyper, som bruker lager selv
Eks på ikke-primitive datatyper: String, array, klasser, interfaces osv.
int: +-210^9, 32bits
byte: -128/127, 8bits
short: +-310^4, 16bits
boolean: true/false, 1bit
float: opp til 7 desimaler, 32bits
double: opptil 16 desimaler, 64bits
long: +-9*10^19, 64bits
char: unicode character, 16bits
Aritmetiske operatorer
Relasjonelle operatorer
Assigment operatorer
\+ - * / % - returnerer det gjenværende \++ --
== != >< >= <=
= \+= -= *= /= %= <<= >>= && ||
Hva er en metode?
Hva må metodesyntax ha
eks på metode syntax
En blokk med kode som skal gjøres når peogram kaller på den.
Må inneholde: acsess modifier return type, potensielt void metode navn parametere exceptionlist kropp innenfor lukkede paranteser
public int calulateEarnings(int firstJob, int secondJob) {
earnings = firstJob + secondJob;
return earnings;
}
Hva er en klasse?
Et blueprint fra hvilket objekter er laget
Hva er et objekt?
En instanse av en klasse
Hva er en pakke?
Hvordan bruker man en pakke?
Folder av klasser
Brukes for å organisere kode
import static packagepath
eks
import static Circle.java
Hva er de fire pillarene av OOP?
Hvordan brukes de i java?
Innkapsling/Encapsulation
At man bare har adgang til en del av kode innenfor et sted.
Arv/Inheretance
At en klasser kan bruke metoder og variabler fra andre klasser
Polymorfi/Polymorphism
At man kan kalle en klasse flere gsnger for å lage forskjellige objekter
Abtract/Abcstraction
At man kan lett benytte kompleks kode med bruk av ting som klassekall og parametere
===== I java kan man bruke accsess modifisers for å styre hvordan adgangen til kode skal være Erklær klasser og metoder som public Fordi man skal h adgang til metodene Erklær variabler som private
Gjøres med extends og super
Kan gjøres i java ved at man kaller en klasse flere ganger. Vil fungere så lenge klassen ikke er static eller singleton Car car = new Car();
Abstraction:
Gjøres med ting som parameter osv
Hvordan lage ArrayList? Hvordan hente data ut ifra index Hvordan modifisere noe i en arraylist? Hvordan skette noe fra ArrayList? Hvordan tømme liste? Hvordan få mengde elementer i liste?
ArrayList cars = new ArrayList();
cars. get(0)
cars. set(0, “modifisert”)
cars. remove(0)
cars. remove
cars. size()
while loop
for loop
do while loop
while loop: kjører mens et tilfelle er
for loop: kjører en viss mendge ganger
do while: vil kjøre ihvertfall en gang uavhengig om while statementet stemmer eller ikke.
do ( [kodeblikk]) while([kondisjon]);
Hvordan ta brukerinout?
Scanner sc = new Scanner(System.in) sout("gi et tall) int a = sc.nextInt eller String str = sc.nextLine()
Hvordan gjøre string til int?
int i = Integer.parseInt(“200”)
Forskjeller på Array, ArrayList og LinkedList
Array:
Størrelsen på listen må spesifiseres når listen lages.
Man kan derfor ikke fjerne eller legge til i listen, man kan bare endre på elementene
String[] myList = new String[4]; - erklær uten verdier
String[] myList = {“H”, “L”, “T”, “K”}; -erklær med verdier
myList[2] = “hallo” - erklære verdi
ArrayList
Størrelsen trengs ikke å erklæres før.
Man kan dynamisk legge til og slette.
ArrayList myList = new ArrayList<>();
ArrayList myList =
newArrayList<>(Arrays.asList(“H”, “X”);
myList.add(“J”)
myList.([index])
nums.forEach(System.out::println);
LinkedList
Lages og håndteres på akkuratt same måte som ArrayList.
Birtsett fra at man bytter ut ArrayList med LinkedList.
Hva er forskjellen på disse?
Array sin størrelse kan ikke endres dynamisk.
ArrayList kan endres dynamisk
LinkedList kan også endres dynamisk
Fotskjell på ArtayList og LinkedList?
ArrayList bruker lite tid på å referere til ting,
men mye tid på å fjerne og legge til.
LinkedList bruker mye tid på å referere,
men lite tid på å legge til og fjerne
Hva er HashMap Hvirdan refererer man Hvordan legger man til Hvordan sletter man ting Hvordan endrer man Hvordan looper man Hvirdan legger man til en liste som value/key
Som en dictionary
HashMap myMap = new HashMap<>();
var entrySet = myMap.entrySet(); for (var entry : entrySet) { if (entry.getKey() == key) { entry.getValue(); } }
var entrySet = myMap.entrySet();
myMap.put(key, value);
myMap.remove(key);
myMap.replace(key, value);
myMap.forEach(key, value) -> {
System.out.println(key + “ “ + value);
});
HashMap> myMap =
new HashMap<>();
myMap.put(“H”, new ArrayList<>(Arrays.asList(1, 2, 3)));
Hva gjør static
Hvorfor er main static
Hvorfor man ikke kan ha en non-static metode i en static metode
static refererer til et variabel/metode i seg selv. det er sltså felles for alle objekter
Hvis man har to objekter, og klassen de kommer fra har en static variabel, vil det være slik at hvis man endrer på variablet i objekt2, vil også objekt1 ha det variablet endret.
Når en metode/variabel er static, avhenger det ikke av klassens initialisering for å kunne eksistere.
Eks når man kan si [class].[static metode] uten å ha initialisert metoden. Dette er fordi static refererer til variablet/metoden i seg selv.
Når man starter et program må man kunne initialisere forskjellige ting. Hvis main ikke hadde vært static, hadde det ikke vært noen måte å kjøre programmet, fordi det ikke kunne blitt initialisert noe.
Hvorfor static metoder bare kan bruker i andre static metoder:
Static metoder initlialiseres ikke. Derimot non-static metoder initialiseres.
Hvis man putter en non-static metode i en static metode, vil aldri den non-static metoden initialiseres.
input med buffered reader
BufferedReader reader =
new BufferedReader
(new InputStreamReader(System.in))
reader.readLine()
Float.parseFloat(reader.readLine())
Char
Hvordan endre karakterer i en string
[String].substring(0,1).replace(oldchar, newchsr)
[String].substring(0,1).replace(oldchar, newchsr)
[string].substring(1, [string].lenght() -1)
newstring = s1 + mid + s2
Hva er JRE?
Hva er JVM
Hva er JDK
Hvordan compile
Hva er compile-time error
Hva er run-time error
jre
inneholder jvm og flere mapper som er nødvendig for at java skal kjøre
jvm er det som kjører java bytekode, altså det som står i .class
jdk inneholder ting nødvendig for å programmere, som klasser og metoder, java, javac,
Hvis man ikke skulle ha programmert, hadde man bare trengt jre
Oppsumert: Lag en .java fil med java kode Gå i cdm, skriv javac [java fil].java Da får man en .class fil Så skriver man i cdm: java [class fil]
Skjer ved feil syntax (eks flemmer semikolon)
Dette gjør at programmet ikke kjører
Skjer ved at det er en error mens programmet kjører (eks ArrayIndexOutOfBounds). Dette gjør at programmet stopper mens det kjører
Hva er singleton
Hvordan lage det
En klasse som bare kan lage en objekt en gang.
Man kan bare eks ha student, ikke student2 osv
Class singleton
public static Singleton instance;
public static Singleton getInstance() { if (instance == null) { instance = new Singleton()} } }