Find the greatest gcd among the pairs of two equal sized arrays and prints the sum of that pair
int gcd,sum,maxgcd=0,maxsum=0;



You don't need to declare gcd and sum yet.  

    int maxGcd = 0;
    int maxSum = 0;


It's also generally better not to initialize more than one variable per line.  It's not a functional difference.  It's a readability thing.  

The Java standard is to capitalize the second and later words.  


            sum = A[A_i] + B[B_i];
            gcd = gcdcalc(A[A_i], B[B_i]);



This could be 

            int sum = A[A_i] + B[B_i];
            int gcd = gcdcalc(A[A_i], B[B_i]);


You don't use these outside the current iteration.  So you can declare and initialize them at the same time.  


            if(maxgcd == gcd)
            {
                if(maxsum &lt; sum)
                    maxsum = sum;



This could be 

            else if (maxgcd == gcd &amp;&amp; maxsum &lt; sum)
            {
                maxsum = sum;


If the maxgcd is less than gcd, then they won't be equal.  So we don't need to check both.  The else makes it so that we only check for equality if not less than.  

You don't need two if statements.  One statement with two clauses is sufficient.  Due to the way that short circuit comparisons work, this will be the same efficiency as the original code.  

I prefer to have a space between the if and the (.  I find it easier to see that it is an if and not a method call that way.  

I would encourage you to add more vertical whitespace.  Again, I find breaking up the statements into logical groups makes it easier to read.  


   if(y == 0)
   {
       return x; 
   }
   return gcdcalc(y, x%y);



This could be just 

   return (y == 0) ? x : gcdcalc(y, x%y);


Same efficiency, just a bit terser.  

If you find yourself trying to wring out every bit of efficiency, there is an iterative version of this that is probably faster.