Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Datan Siirto Javassa | Syvällinen Java-rakenne
Java Laajennettu
course content

Kurssisisältö

Java Laajennettu

Java Laajennettu

1. Syvällinen Java-rakenne
2. Metodit
3. Merkkijonon Jatkotaso
4. Luokat
5. Luokat Jatko

book
Datan Siirto Javassa

Miten tietoa siirretään Javassa?

Tiedät edellisestä kurssista, että on olemassa kaksi muistityyppiä - pino ja keko. Tarkastellaan, miten data tallennetaan näihin kahteen muistialueeseen:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String number = new String("170"); String word = new String("word"); int poolNumber = -4; } }

Olemme luoneet 3 erilaista muuttujaa. Alla on kaavio, joka havainnollistaa, miten ja minne ne tallennetaan muistiin:

Käydään läpi, mitä havaitsit kaaviossa:

  • Näemme String-kenttiä pino-muistissa, jotka ovat viitteitä keon muistissa oleviin arvoihin. Näin emme käytä keon muistia suoraan joka kerta. Sen sijaan pääsemme ensin käsiksi viitteeseen pino-muistissa, mikä on nopeampaa kuin keon muistin käyttäminen. Olet jo kohdannut viitteitä arvoihin oppiessasi String Pool -aiheesta;
  • Voit huomata, että int ei tallennu keon muistiin; sen arvo tallennetaan suoraan pino-muistiin. Tämä koskee kaikkia primitiivisiä tietotyyppejä (byte, short, int, long, float, double ja boolean). Näin ollen primitiiviset tietotyypit välitetään Javassa arvon mukaan. Kuitenkin String ei ole primitiivinen tietotyyppi, joten sen arvo tallennetaan keon muistiin;
  • Jokaiselle uudelle viitteelle luodaan uusi olio keon muistiin. Jos kuitenkin kahdella saman tyyppisellä muuttujalla on sama arvo, ne viittaavat samaan olioon keon muistissa;
  • Integer Pool on alue pino-muistissa, jossa kaikki kokonaislukuarvot välillä -128 ja 127 ovat linkitettyinä. Tämä optimointi tehdään, jotta numeroiden käsittely olisi tehokkaampaa Javassa, koska tämän alueen luvut ovat yleisimmin käytettyjä. Muista, että pino-muisti toimii nopeammin kuin keon muisti, joten saamme nopeammat vasteet Integer Poolin ansiosta;
  • String Pool on alue keon muistissa, jossa identtiset merkkijonot tallennetaan.

Yhteenveto

Javassa kaikki välitetään arvon mukaan. Olioiden kohdalla välitetään viitteen kopio, mutta varsinainen olio keossa pysyy muuttumattomana (jos se on muuttumaton, kuten String).

Muuttujat pinossa tallentavat viitteitä olioihin, jotka sijaitsevat keossa. Tämä koskee kaikkia viitetyyppejä, mukaan lukien String.

1. Mikä on Integer Pool Javassa?

2. Kuinka data siirretään Javassa, viitteenä vai arvona?

question mark

Mikä on Integer Pool Javassa?

Select the correct answer

question mark

Kuinka data siirretään Javassa, viitteenä vai arvona?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

course content

Kurssisisältö

Java Laajennettu

Java Laajennettu

1. Syvällinen Java-rakenne
2. Metodit
3. Merkkijonon Jatkotaso
4. Luokat
5. Luokat Jatko

book
Datan Siirto Javassa

Miten tietoa siirretään Javassa?

Tiedät edellisestä kurssista, että on olemassa kaksi muistityyppiä - pino ja keko. Tarkastellaan, miten data tallennetaan näihin kahteen muistialueeseen:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String number = new String("170"); String word = new String("word"); int poolNumber = -4; } }

Olemme luoneet 3 erilaista muuttujaa. Alla on kaavio, joka havainnollistaa, miten ja minne ne tallennetaan muistiin:

Käydään läpi, mitä havaitsit kaaviossa:

  • Näemme String-kenttiä pino-muistissa, jotka ovat viitteitä keon muistissa oleviin arvoihin. Näin emme käytä keon muistia suoraan joka kerta. Sen sijaan pääsemme ensin käsiksi viitteeseen pino-muistissa, mikä on nopeampaa kuin keon muistin käyttäminen. Olet jo kohdannut viitteitä arvoihin oppiessasi String Pool -aiheesta;
  • Voit huomata, että int ei tallennu keon muistiin; sen arvo tallennetaan suoraan pino-muistiin. Tämä koskee kaikkia primitiivisiä tietotyyppejä (byte, short, int, long, float, double ja boolean). Näin ollen primitiiviset tietotyypit välitetään Javassa arvon mukaan. Kuitenkin String ei ole primitiivinen tietotyyppi, joten sen arvo tallennetaan keon muistiin;
  • Jokaiselle uudelle viitteelle luodaan uusi olio keon muistiin. Jos kuitenkin kahdella saman tyyppisellä muuttujalla on sama arvo, ne viittaavat samaan olioon keon muistissa;
  • Integer Pool on alue pino-muistissa, jossa kaikki kokonaislukuarvot välillä -128 ja 127 ovat linkitettyinä. Tämä optimointi tehdään, jotta numeroiden käsittely olisi tehokkaampaa Javassa, koska tämän alueen luvut ovat yleisimmin käytettyjä. Muista, että pino-muisti toimii nopeammin kuin keon muisti, joten saamme nopeammat vasteet Integer Poolin ansiosta;
  • String Pool on alue keon muistissa, jossa identtiset merkkijonot tallennetaan.

Yhteenveto

Javassa kaikki välitetään arvon mukaan. Olioiden kohdalla välitetään viitteen kopio, mutta varsinainen olio keossa pysyy muuttumattomana (jos se on muuttumaton, kuten String).

Muuttujat pinossa tallentavat viitteitä olioihin, jotka sijaitsevat keossa. Tämä koskee kaikkia viitetyyppejä, mukaan lukien String.

1. Mikä on Integer Pool Javassa?

2. Kuinka data siirretään Javassa, viitteenä vai arvona?

question mark

Mikä on Integer Pool Javassa?

Select the correct answer

question mark

Kuinka data siirretään Javassa, viitteenä vai arvona?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 2
some-alt