Difference Between Implicit Wait and Explicit Wait

Implicit Wait – 

An implicit wait is to tell WebDriver to stop the DOM for a certain amount of time. The default setting is 0. 

Syntax – driver.manage().timeouts().Implicitly Wait(10, TimeUnit.SECONDS);

Explicit Wait - 

An explicit waits is code you define to wait for a certain condition to occur before proceeding further in the code.

Syntax - 

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//[@id='Subbu']")));