2017-10-15 7 views
1

En java si je surcharger les méthodes comme indiqué ci-dessousjava part de surcharge de la méthode même mémoire mémoire ou différente pour différents nethod

public void test (int a,int b) 
public int test(String str) 
public boolean test (float a) 

alors toutes les méthodes ci-dessus utilisera une même mémoire ou différents pour chaque test. Si elles partagent le même emplacement de mémoire, alors comment cela fonctionnera dans l'environnement multi-thread.

Merci

+1

ils sont trois méthodes complètement séparés - tout comme séparée comme si elles avaient d noms différents. – slim

Répondre

2

Il n'y a pas de mémoire étant allouée à une méthode en soi. La mémoire est allouée:

  • Pour une classe - une allocation partagée pour tous les membres static (une fois par classloader, pour être précis)
  • Pour une instance - pour ses instances/membres non statiques
  • Pour la méthode appel - chaque appel attribuera un cadre de pile séparée pour ses paramètres, etc.
  • pour les variables locales - pas de partage ici soit