ディープコピーとシャローコピーについて混乱してしまっているのですが

配列の場合
1 イコールで結ぶ → シャロー
2 System.arraycopyを使う → シャロー
3 中身をひとつひとつコピーする → ディープ

コレクションの場合
1 イコールで結ぶ → シャロー
2 cloneを使う → シャロー
3 中身をひとつひとつコピーする → ディープ
4 new ArrayList(list)などと書く → ディープ

でよろしいでしょうか?
またこれ以外にもディープコピーする方法はあるのでしょうか?