What is black box testing? What is white box testing?

What is black box testing? What is white box testing?

Black-box testing - It examines the functionality of an application without interfering the internal working of the application.
White-box testing - It tests the overall internal structure of the application which includes its working.