The class android.support.design.widget.CollapsingToolbarLayout is used to wrap android.support.v7.widget.Toolbar to make the Toolbar collapsable and more beautiful. Generally, CollapsingToolbarLayout contains two child components, one is ImageView the other is Toolbar.
android.support.design.widget.AppBarLayout is used to wrap android.support.v7.widget.Toolbar component. It can make the Toolbar avoid being overlapped by ListView or RecyclerView controls in the screen.
Android material design is a new design pattern which google recommends. And Google provides some built-in widgets in it’s design support library to follow this pattern. android.support.v7.widget.Toolbar is just one commonly used widget in that library, it behaves like ActionBar, and google suggests you use Toolbar to replace ActionBar in your android app.