Discuss the below:
Q: Compare code of 2 similar Java programs and explain differences.
First code:
// DistanceConv.java
// Java program that, given a distance in metres outputs that distance in kilometres
// rounded to the nearest whole kilometre.
// For example, given 1100m the output will be 1km, and given 1900m the output will be 2km.
import java.io.*; // java Input/Output package
public class DistanceConv // declares class DistanceConv
{ 
 static double kilo; 
 static double meter;
public static void main( String[] args) // begin main method
 
 { 
 InputStreamReader stdin = new InputStreamReader(System.in); // class reads characters
 BufferedReader console =  new BufferedReader(stdin); // class buffereing character streams
 String s; // input distance
 
 System.out.println("Please Enter the distance in meters"); 
 
 try // prompt and input
 
 { 
 s = console.readLine(); // reading a string
 meter = Double.parseDouble(s); // parsing a double value from the string 
 } 
 
 catch(IOException ioex) // exeption handling
{ 
 System.out.println("Input error"); // error output if invalid data
 System.exit(1); // program terminates
 }
//conversion  
 kilo = converToKilo(meter); //calling the function to do the job 
 //output 
 System.out.println(meter + " is equivalent to " + kilo + " kilometers"); 
 
 } // end method main
private static double converToKilo(double meter) // method convert
 
 { 
 double temp; 
 temp = meter/1000; // every 1000 meters make a kilometer 
 return Math.round(temp); // Math.round rounds the decimal number to the nearest integer 
 
 } // end method convert	
 
} // end class DistanceConv
Second code:
// KilometresOutput.java
// Convert a given number of metres to the nearest kilometre
import java.util.Scanner; // program uses class Scanner to get an input
import java.lang.Math; // program also uses class Math to round a number to the nearest integer
public class KilometresOutput
{
 // main method begins program execution
 public static void main(String[] args) 
 {
 // create a Scanner to obtain input from command window
 Scanner input = new Scanner ( System.in );
 float myMetres; // has to be a float because otherwise when it is divided the non-integer part would be stripped.
 int myKilometres;
System.out.println( "\nThis program will convert a given number of metres to the nearest kilometre" );
 System.out.print( "\nPlease enter the number of metres:" ); //prompt
 myMetres = input.nextFloat(); // read how many metres to convert from user
 
 myKilometres = Math.round( myMetres / 1000 ); // convert metres to kilometres and round to the nearest whole km
System.out.println( myMetres + "m to the nearest Kilometre is: " + myKilometres + "Km" ); // give user the result
 
 } // end main
} // end class KilometreOutput