Avatar billede dennish Nybegynder
05. januar 2004 - 17:45 Der er 5 kommentarer og
1 løsning

RMI hvordan fungerer det

HEj er der nogen der ved hvordan RMI paser sine objekter. Gøres det som pass by referene, copy eller value. Eller gøres det ud fra forskellige situationer.

Og hvad er det nu lige almindelige java går. Er det pass by reference ?
Avatar billede repsak Nybegynder
05. januar 2004 - 17:55 #1
mener almindelig Java er copy
Avatar billede Slettet bruger
05. januar 2004 - 18:25 #2
Java benytter pass by value. Har ikke hørt om pass by copy, tror du forveksler den med pass by value!

F.eks.:

class Point {
  int x;
  int y;
}

public void swapXY(Point p){
  int tmp = p.y;
  p.y = p.x;
  p.x = p.y
}

Når ovenstående metode returnerer er Point p blevet opdateret, idet p er en reference til et Point, MEN

public void swapPoints(Point p1, Point2) {
  Point tmp = p2;
  p2 = p1;
  p1 = p2;
}

har ingen effekt på p1 og p2 når metoden er returneret, idet p1 og p2 er kopier af referencerne der medgives som argumenter!

Uden at gøre mig til ekspert på rmi, mener jeg at der gælder følgende:

For at rmi kan returner et objekt, kræves at det er enten remote eller serializable. I første tilfælde får du en reference til en proxy for objektet, i andet tilfælde får du en kopi af den transitive lukning af objektets tilstand. Transitive lukning vil sige at vi også får tilstanden af alle objekter der refereres fra objektet, samt deres transitive lukning...
Avatar billede arne_v Ekspert
06. januar 2004 - 00:30 #3
"pass by copy" må være det samme som "pass by value"

simple data typer er i Java altid "pass by value"

objekter er lidt mere grumset - set fra en Java compiler teknisk synsvinkel
er de også "pass by value", men:
  - kald med object og "pass by value" i C++ har en hel anden betydning
  - java objekter er altid referancer og det kommer derved til at ligne
    C++ "by reference" lidt i semantik
så der er ihvertfald nogen som derfor foretrækker termen
"pass reference by value".

Kald af en RMI stub er et normalt kald ligesom alle andre men
objektet klones mellem stub og skeleton.

Det giver følgende opførsel:

                                        normal kald          RMI kald
ændring af simple data typer                -                    -
ændring af referencer til objekter          -                    -
ændring af objekter                          +                    -
Avatar billede arne_v Ekspert
23. januar 2004 - 22:23 #4
lukke tid ?
Avatar billede dennish Nybegynder
26. februar 2004 - 20:41 #5
lukker spørgsmål
Avatar billede arne_v Ekspert
26. februar 2004 - 21:56 #6
Nogen der har fortjent nogen point ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester