Trabalhar com objetos entre activities

Galera, como faço para trabalhar com objetos entre activities: Trabalhar com int, Double, String eu consigo através dos métodos:

intent.putExtra("nome", name);
intent.putExtra("age", age);

name = getIntent().getStringExtra("nome");
age = getIntent().getIntExtra("age" , 0);

Estou criando uma lista de clientes para um trabalho em particular e criei um vetor de clientes no “MainActivity”, eu até consegui enviar ele utilizando: intent.putExtra("clientes", clientes);, porém não consigo buscá-lo na Activity2. Comecei a estudar programação Mobile há 2 dias, por favor me ajudem!

Se quiserem ver o arquivo:


Eu já deixei as coisas preparadas, só falta aprender a pegar o Objeto/Lista de Objetos para a Activity1 e após isso voltar para a MainActivity

Sei que minha resposta está atrasada e provavelmente você ja resolveu o problema, mas deixo para quem pesquisar sobre o problema e cair aqui:

na MainActivity:

em vez de
Cliente[] clientes = new Cliente[15];

utilize:
ArrayList<Cliente> clientes = new ArrayList<>();

considerando que a substituição acima foi feita:
em vez de
if (clientes[0] == null)

utilize:
if clientes.isEmpty(); // => Se clientes estiver vazio

caso PRECISE que seja no máximo 15:
em vez de:
else if (clientes[14] != null)

utilize:
if(clientes.size == 15) // => se a quantidade de itens em clientes for igual a 15

para enviar o ArrayList:

Intent intent = new Intent(MainActivity.this, Activity1.class);

//considerando que estas variáveis do 2º parâmetro existem na sua MainActivity
intent.putExtra("nome", name;
intent.putExtra("age", age);
intent.putExtra("arrayClientes", clientes); //este é o ArrayList criado

startActivity(intent);

na Activity1:

crie o mesmo tipo de objeto:
ArrayList<Cliente> clientes = new ArrayList<>();

dentro do método onCreate() adicione:

Intent intent = getIntent();

// Em vez de getStringExtra ou  getIntExtra, utilize: (casting) getSerializableExtra
name = (String) intent.getSerializableExta("nome");
age = (int) intent.getSerializableExtra("age");
clientes = (ArrayList<Cliente>) intent.getSerializableExtra("arrayClientes");

Veja mais sobre ArrayList<>:
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

Veja mais sobre Intent:
https://developer.android.com/reference/android/content/Intent

Veja mais sobre Casting:
https://www.w3schools.com/java/java_type_casting.asp