Java вызывает перегруженные методы [дубликаты]

На этот вопрос уже есть ответ здесь:

Как JVM находит метод (параметр с наиболее близким соответствием) для вызова в случае перегрузки функции 6 ответов

Рассмотрим этот сегмент кода

class StockServer { 

   StockServer(String company, int Shares,double currentPrice, double cashOnHand) {}

   double buy(int numberOfShares, double pricePerShare) { 
        System.out.println("buy(int,double)"); 
        return 3.0;
   } 

   float buy(long numberOfShares, double pricePerShare) {     
        System.out.println("buy(long,double)");
        return 3.0f; 
   } 
}

Если я выполню эти строки кода,

StockServer a = new StockServer("",2,2.0,2);
byte b=5;
a.buy(b,2);

Результаты будут: купить (int, double)

Я хочу знать, как компилятор решает, какой метод выполнить?

Ответы на вопрос(1)

Ваш ответ на вопрос