Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1162 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Les pointeurs en Java

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Les pointeurs en Java

n°1323075
Profil sup​primé
Posté le 10-03-2006 à 21:01:00  answer
 

Voila je programme en C++ et je me suis mis au Java et je suis surpris qu il n y ait pas de pointeur, je voudrai savoir comment remplacer les pointeurs pour passer des objets a une fonction et que cette fonction les modifies.
Merci.

mood
Publicité
Posté le 10-03-2006 à 21:01:00  profilanswer
 

n°1323077
Taz
bisounours-codeur
Posté le 10-03-2006 à 21:02:55  profilanswer
 

ça fait plaisir de voir que tu n'as pas été plus loin que 'int i = 2; i = 4 * 3;' dans ton apprentissage du java ...

n°1323078
sircam
I Like Trains
Posté le 10-03-2006 à 21:03:03  profilanswer
 

Beh heu... C'est un peu le contraire. Les pointeurs n'apparaissent pas tels quels, à mon eternel regret, mais tu peux considérer qu'ils sont bien là.
 
Si tu passes un object à une méthode, ce dernier sera modifiable par la méthode (sauf cas immutables).


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1323081
Profil sup​primé
Posté le 10-03-2006 à 21:10:33  answer
 

Merci, j ai pas encore fais un seul programme je me suis contenté de lire et j ai pas encore fini.

n°1323082
kadreg
profil: Utilisateur
Posté le 10-03-2006 à 21:12:04  profilanswer
 

Par contre, ce qui a dégagé, c'est l'arithmétique de pointeur, et ça, bon vent :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1323154
esox_ch
Posté le 10-03-2006 à 23:58:32  profilanswer
 

Mouais ... Le fait que java ne te permette pas de faire joujou avec les pointeurs ... moi je dis que c'est pas plus mal .. ça te permet de te concentrer sur des trucs plus importants que de faire joujou avec les trucs de bas niveau .. Apres niveau perf y a des pertes c'est sur ... mais avec les vm actuelles ... bof ... c'est plus aussi tragique que ça a peu l'etre auparavant ..

n°1323363
Profil sup​primé
Posté le 11-03-2006 à 16:41:39  answer
 

Sniff, mes pointeurs ils vont tellement me manquer.

n°1323399
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-03-2006 à 18:40:52  profilanswer
 

mais qu'est ce qu'on en a à faire des pointeurs enfin ! au contraire tu devrais etre content, t'auras plus à te faire chier avec l'alloc/désalloc, l'arithmétique de pointeur, et tout ! si vraiment tu n'arrives pas à faire sans pointeur (gage assuré de mauvaises pratiques de programmation), alors apprend le C# qui te permet d'utiliser des pointeurs en mode unsafe.
mais bon... [:kiki]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1323403
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2006 à 18:54:13  profilanswer
 

sircam a écrit :

Beh heu... C'est un peu le contraire. Les pointeurs n'apparaissent pas tels quels, à mon eternel regret.


[:petrus dei]
 
Tu peux expliquer pourquoi tu regrettes que tout soit passé par référence dans la majorité des langages modernes [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1323404
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-03-2006 à 18:57:09  profilanswer
 

<bk> les pointeurs proviennent de l'esprit tortueux du malin, qui a décidé que la programmation n'était pas assez compliquée et qu'il fallait un truc en plus pour faire chier le pauvre pisseur de code programmeur </bk>


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 11-03-2006 à 18:57:09  profilanswer
 

n°1323406
Profil sup​primé
Posté le 11-03-2006 à 19:01:39  answer
 

Je programme en c++ j utilise delete pour les pointeurs j avais pas envi d apprendre a malloc, et moi j aime bien ce qui est compliquer, en plus ils sont super utile les pointeurs en C je me demande comment on fai pour vivre sans.

n°1323408
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2006 à 19:03:41  profilanswer
 


Réfléchis une dizaine de secondes au rôle des pointeurs en C/C++, réfléchis 10s de plus pour savoir comment s'en débarasser (hint: le C++ avait commencé, mais au final l'implémentation de la solution était pire que le problème).
 
Si ça te suffit pas pour trouver... arrête tout de suite [:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1323410
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-03-2006 à 19:08:07  profilanswer
 


ah oui, c'est sur, tu préferes utiliser delete que malloc()... sauf que l'équivalent C de delete, c'est free(). en C++, malloc() est encapsulé dans new. bon, pas grave...
et pour ton info, en C++, on a tendance à ne plus trop utiliser les pointeurs, au profit des références. références qui sont en fait implémentées en natif dans tout langage moderne. en Java, chaque variable (ou presque, j'omets les types natifs) est une référence. il en est de même en C# ou autre
 
 
juste une question : que fais tu en C++ qui ne pourrait être réalisé sans pointeur ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1323414
++fab
victime du syndrome IH
Posté le 11-03-2006 à 19:12:40  profilanswer
 

masklinn a écrit :

Réfléchis une dizaine de secondes au rôle des pointeurs en C/C++, réfléchis 10s de plus pour savoir comment s'en débarasser (hint: le C++ avait commencé, mais au final l'implémentation de la solution était pire que le problème).


Quelle est la solution que le C++ a essayé d'implémenter ? Je suis curieux la ...
Et en quoi est-ce qu'elle était pire ?

n°1323417
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2006 à 19:14:18  profilanswer
 

++fab a écrit :

Quelle est la solution que le C++ a essayé d'implémenter ? Je suis curieux la ...


Les références [:spamafote]  

++fab a écrit :

Et en quoi est-ce qu'elle était pire ?


Parce qu'on se retrouve avec tout un bordel et une syntaxe à la con, au lieu d'avoir une hydre à une tête on a une hydre à deux têtes [:spamafote]
 
Et que les références C++ sont moins puissantes/pratiques que les pointeurs C pour un certain nombre d'utilisations (genre récupérer une référence sur une fonction [:petrus75])

Message cité 1 fois
Message édité par masklinn le 11-03-2006 à 19:15:28

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1323425
++fab
victime du syndrome IH
Posté le 11-03-2006 à 19:33:22  profilanswer
 

masklinn a écrit :

Les références [:spamafote]


Ce n'est pas une solution de remplacement. C'est une solution parfois alternative seulement. Gardes aussi à l'esprit que la compatibilité avec C doit être "aussi bonne que possible".
 

Citation :

Parce qu'on se retrouve avec tout un bordel et une syntaxe à la con, au lieu d'avoir une hydre à une tête on a une hydre à deux têtes [:spamafote]


Le truc, c'est que les références nulles, ça n'existe pas en C++ (sauf si c'est machiavel qui code) ...
Après, je te retourne l'histoire de l'hydre : en C++, les types user-defined et fondamentaux sont utilisables de la même manière, en Java non, les uns passent par référence, les autres par valeur. Qui a deux têtes dans l'histoire ? :)
 

Citation :

Et que les références C++ sont moins puissantes/pratiques que les pointeurs C pour un certain nombre d'utilisations (genre récupérer une référence sur une fonction [:petrus75])


Oui, je vois ce que tu veux dire. Même si ton exemple me parait un peu vague, je pense que par fonction, tu voulais dire rvalue.

n°1323429
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-03-2006 à 19:41:54  profilanswer
 

++fab a écrit :


Après, je te retourne l'histoire de l'hydre : en C++, les types user-defined et fondamentaux sont utilisables de la même manière, en Java non, les uns passent par référence, les autres par valeur. Qui a deux têtes dans l'histoire ? :)


non mais ça c'est une connerie monumentale de Java d'avoir laissé des types primitifs :o
C# roulaize pour ça, il n'y a pas de types primitifs (ils sont boxés automatiquement, ou ce sont des alias, les avis divergent à ce sujet)


---------------
J'ai un string dans l'array (Paris Hilton)
n°1323431
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2006 à 19:45:36  profilanswer
 

++fab a écrit :

Citation :

Parce qu'on se retrouve avec tout un bordel et une syntaxe à la con, au lieu d'avoir une hydre à une tête on a une hydre à deux têtes [:spamafote]


Le truc, c'est que les références nulles, ça n'existe pas en C++ (sauf si c'est machiavel qui code) ...
Après, je te retourne l'histoire de l'hydre : en C++, les types user-defined et fondamentaux sont utilisables de la même manière, en Java non, les uns passent par référence, les autres par valeur. Qui a deux têtes dans l'histoire ? :)


Hum, non, le seul truc passé par recopie (par valeur) en Java ce sont les "primitive types", qui en plus d'être lourdement (et de plus en plus) critiqués ne sont pas des objets, et ne forme qu'une partie des built-ins Java.
 
La dychotomie passage par référence/valeur en Java est parallèle à la dychotomie "primitive types"/objects [:spamafote]  
 
Après, Java le langage (pour le séparer de Java la plateforme, Java la VM, ...) est imo un langage pourri, donc bon...

++fab a écrit :

Oui, je vois ce que tu veux dire. Même si ton exemple me parait un peu vague, je pense que par fonction, tu voulais dire rvalue.


Non, je voulais bel et bien dire fonction, prendre une fonction et la trimballer en tant qu'argument d'autres fonctions [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1323433
++fab
victime du syndrome IH
Posté le 11-03-2006 à 19:51:11  profilanswer
 

masklinn a écrit :

Hum, non, le seul truc passé par recopie (par valeur) en Java ce sont les "primitive types", qui en plus d'être lourdement (et de plus en plus) critiqués ne sont pas des objets, et ne forme qu'une partie des built-ins Java.


Oui, c'est ce que je voulais dire, désolé si je ne connais pas le vocabulaire Java :)
 

Citation :

La dychotomie passage par référence/valeur en Java est parallèle à la dychotomie "primitive types"/objects [:spamafote]


On est d'accord.
 

Citation :

Après, Java le langage (pour le séparer de Java la plateforme, Java la VM, ...) est imo un langage pourri, donc bon...

C'est pas moi qui l'ai dit ! :)
 

Citation :

Non, je voulais bel et bien dire fonction, prendre une fonction et la trimballer en tant qu'argument d'autres fonctions [:spamafote]

Bon, alors je ne vois pas le problème, mais ce n'est peut-être pas très grave :)

n°1323482
Profil sup​primé
Posté le 11-03-2006 à 21:38:36  answer
 

J'ai pas tout lu mias, je trouve aussi que les référence c'est pas tres bien, j'ai souvent des problemes qu'en je veux m'en servir, et je peux refaire tout mes programmes sans pointeurs mais ce sera moins bien.

n°1323488
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2006 à 21:43:27  profilanswer
 

Ok lol, quand tu auras des exemples de limitations liés à l'utilisation de références et non de pointeurs en Java, C#, Python, Ruby, Lisp, Smalltalk tu nous en fais part ok?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1323489
Profil sup​primé
Posté le 11-03-2006 à 21:52:11  answer
 

J'ai pas dit que les reference nous limitais mais que c'etait plus chiant que les pointeurs, ce n'est que mon avis rien d'autre.

n°1323490
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2006 à 22:00:00  profilanswer
 

Mais en quoi c'est plus chiant nom de dieu [:mlc]
 
Donne des exemples [:mlc]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1323491
push
/dev/random
Posté le 11-03-2006 à 22:04:28  profilanswer
 

masklinn a écrit :

Hum, non, le seul truc passé par recopie (par valeur) en Java ce sont les "primitive types", qui en plus d'être lourdement (et de plus en plus) critiqués ne sont pas des objets, et ne forme qu'une partie des built-ins Java.


Tant qu'à continuer dans l'enculage de mouche sur ce beau topic, en Java tout les passages se font par valeur.
 
Sun> In Java methods, arguments are passed by value. When invoked, the method receives the value of the variable passed in. When the argument is of primitive type, pass-by-value means that the method cannot change its value. When the argument is of reference type, pass-by-value means that the method cannot change the object reference, but can invoke the object's methods and modify the accessible variables within the object.

Message cité 1 fois
Message édité par push le 11-03-2006 à 22:47:20
n°1323492
Profil sup​primé
Posté le 11-03-2006 à 22:06:33  answer
 

Deja il n y a pas de refenrece null...

n°1323494
push
/dev/random
Posté le 11-03-2006 à 22:13:31  profilanswer
 


Bein en l'occurence en Java si, parceque qu'une référence en Java c'est un "pointeur".
 
Sun>The reference values (often just references) are pointers to these
objects, and a special null reference, which refers to no object.

 
C++> A reference shall be initialized to refer to a valid object or
function.  [Note: in particular, a null reference cannot exist in a
well-defined program, because the only way to create such a
reference would be to bind it to the "object" obtained by
dereferencing a null pointer, which causes undefined behavior.

 
Java reference != C++ reference


Message édité par push le 11-03-2006 à 22:14:00
n°1323495
Profil sup​primé
Posté le 11-03-2006 à 22:14:59  answer
 

Je parlait pour le c++ et je ne parle presque pas anglais, je commence tout juste le java.

n°1323496
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2006 à 22:16:12  profilanswer
 

push a écrit :

Tant qu'à continuer dans l'enculage de mouche sur ce beau topic, en Java tout les passages sont font par valeur.
 
Sun> In Java methods, arguments are passed by value. When invoked, the method receives the value of the variable passed in. When the argument is of primitive type, pass-by-value means that the method cannot change its value. When the argument is of reference type, pass-by-value means that the method cannot change the object reference, but can invoke the object's methods and modify the accessible variables within the object.


J'veux la source, parce que la sémantique du pass-by-value, c'est que la fonction reçoit une copie de l'argument, en java quand on transmet autre chose qu'un type primitif il n'y a pas construction d'un nouvel objet, juste transmission de la référence vers un objet existant (si tous les objets étaient copiés le coût d'appel des fonctions serait prohibitif), donc la sémantique est bel et bien celle du pass-by-ref
 
 [:mlc]
 
T'étais tout seul sur le coup alors, tous les autres parlaient de références dans un langage basé dessus [:spamafote]

Message cité 3 fois
Message édité par masklinn le 11-03-2006 à 22:17:53

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1323500
push
/dev/random
Posté le 11-03-2006 à 22:34:47  profilanswer
 

masklinn a écrit :

J'veux la source, parce que la sémantique du pass-by-value, c'est que la fonction reçoit une copie de l'argument, en java quand on transmet autre chose qu'un type primitif il n'y a pas construction d'un nouvel objet, juste transmission de la référence vers un objet existant (si tous les objets étaient copiés le coût d'appel des fonctions serait prohibitif), donc la sémantique est bel et bien celle du pass-by-ref


Bein oui c'est ce qui est dit, sauf que c'est bien une référence à la java qui est passée par valeur et donc recopiée, le pass-by-ref sur une reference java n'a pas beaucoup de sens.


Message édité par push le 11-03-2006 à 22:46:07
n°1323507
push
/dev/random
Posté le 11-03-2006 à 22:43:30  profilanswer
 

Mais bon je vois que certains parlent de pass-by-ref aussi dans ce cas, ça sent encore le conflit sémantique entres programmeurs Java/C++ tout ça, comme l'histoire des méthodes/fonctions.

n°1323508
benou
Posté le 11-03-2006 à 22:44:59  profilanswer
 

masklinn a écrit :

juste transmission de la référence


c'est à dire une copie de la valeur binaire de la référence (le pointeur quoi, l'adresse mémoire de l'objet) sur la pile d'appel.
 
C'est ce qu'il veut dire quand il dit que tout les appels de méthode en java se font par copie des paramètres : dans tous les cas c'est une copie binaire du paramètre (qu'il soit type primitif ou référence).


---------------
ma vie, mon oeuvre - HomePlayer
n°1323532
nraynaud
lol
Posté le 12-03-2006 à 00:12:54  profilanswer
 

masklinn a écrit :

la sémantique est bel et bien celle du pass-by-ref


niet, la variable représente une référence, et cette référence est copiée lors du passage, tu ne peux donc pas ré-affecter une variable locale dans une fonction appellée : passage par valeur.

n°1323538
masklinn
í dag viðrar vel til loftárása
Posté le 12-03-2006 à 00:52:56  profilanswer
 

nraynaud a écrit :

niet, la variable représente une référence, et cette référence est copiée lors du passage, tu ne peux donc pas ré-affecter une variable locale dans une fonction appellée : passage par valeur.


Modifier l'objet reçu en paramètre modifie l'objet local envoyé : pas passage par valeur


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1323540
push
/dev/random
Posté le 12-03-2006 à 01:00:39  profilanswer
 
n°1323547
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-03-2006 à 02:01:25  profilanswer
 


k, lol
 
 
k, lol
bon maintenant les arguments ?
 
edit: je parle des arguments qui viendront étayer tes affirmations, pas des arguments passés aux fonctions [:el g]


Message édité par Harkonnen le 12-03-2006 à 02:02:10

---------------
J'ai un string dans l'array (Paris Hilton)
n°1323550
gocho
Posté le 12-03-2006 à 02:11:47  profilanswer
 

kadreg a écrit :

Par contre, ce qui a dégagé, c'est l'arithmétique de pointeur, et ça, bon vent :o


 
z'entendez quoi par arithmetique du pointeur? [:petrus75]
 

Harkonnen a écrit :

<bk> les pointeurs proviennent de l'esprit tortueux du malin, qui a décidé que la programmation n'était pas assez compliquée et qu'il fallait un truc en plus pour faire chier le pauvre pisseur de code programmeur </bk>


[:chrisbk]


---------------
Mon feedback
n°1323565
nraynaud
lol
Posté le 12-03-2006 à 08:32:33  profilanswer
 

masklinn a écrit :

Modifier l'objet reçu en paramètre modifie l'objet local envoyé : pas passage par valeur


nan, parce que la partie "locale" c'est que la référence, le reste est sur le tas.
 
Le passage par référence te permet de modifier la frame locale de la pile d'appel, là c'est pas le cas.

n°1323576
powel42
Posté le 12-03-2006 à 09:21:26  profilanswer
 


 
En fait il y en a, mais t'as pas besoin de savoir qu'ils existent :D  ;)  
Plus sérieusement si t'as fait du C++, tu devrai comprendre très vite comment ça marche. Sinon poste une question avec un exemple concret, car là on a l'impréssion (sans vouloir te froisser) que t'as juste la flemme d'apprendre (ce que je comprends tout à fait au passage  :D ).


Message édité par powel42 le 12-03-2006 à 10:16:08
n°1323727
Profil sup​primé
Posté le 12-03-2006 à 16:19:02  answer
 

C'est pas que j'ai la flemme c'est que j'ai pas le temps, je me suis arreter quand ils disaient qu'il n'y avait pas de pointeur en Java,ce qui m'a surpris.

n°1323745
Profil sup​primé
Posté le 12-03-2006 à 17:02:34  answer
 

C'est toujours plus hype de faire du pointeur  :o  
Le passage aux pointeurs est souvent un moment délicat dans l'apprentissage du noob. C'est un peu comme un rituel d'intégration  :o  
 
"Passe ton Ada et ton C++ d'abord !   :D "
 
 

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Les pointeurs en Java

 

Sujets relatifs
Lancer navigateur web à partir d'un programme java[C++] Les différents types de pointeurs sur fonction ?
[Java/Jdom] Copie d'un element vers un nouveau documentPointeurs, gestion de la memoire (Pascal)
[Java] Interrupteur dans cellule de tablede java vers c++
Pb: telechargement plugin java en html lors du lancement d'une appletIHM de c++ en JAVA
[Java] Gestionnaire des taches windows en java....java et pointeurs sur fonction
Plus de sujets relatifs à : Les pointeurs en Java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR