Trying to write an equals method for a class containing array of objects
It depends on what is exactly possible in your class - can you override class, can some fields be null at any point? For example retrofit creates classes using reflection and some classes can be very unexpectedly null unless set in constructor without parameters.
Many IDEs have generators, they do this really well.
If you override equals, you really should override hashCode too:
https://stackoverflow.com/questions/2265503/why-do-i-need-to-override-the-equals-and-hashcode-methods-in-java


I included equals generated by Android Studio - 2 possibilities, depending on if you are okay with subclasses too (hashcodes both same).

    @Override
    public boolean equalsV1(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        College college = (College) o;
        return Arrays.equals(student, college.student) &amp;&amp;
                Arrays.equals(teacher, college.teacher);
    }

    @Override
    public boolean equalsV2(Object o) {
        if (this == o) return true;
        if (!(o instanceof College)) return false;
        College college = (College) o;
        return Arrays.equals(student, college.student) &amp;&amp;
                Arrays.equals(teacher, college.teacher);
    }

    @Override
    public int hashCode() {
        int result = Arrays.hashCode(student);
        result = 31 * result + Arrays.hashCode(teacher);
        return result;
    }



You can notice, that there are static methods for arrays in Array class.
Code is trying to exit as soon as it is sure, that equality isn't there rather than your approach, where code runs till the end and maybe it will set equals to true along the way, which has to run longer.
You don't need to use getters, you can use fields directly since it's accessing fields of different instance, but same class.
In College class it's fine, but in Student your class would crash if name is null. It shouldn't happen as even if your empty constructor you set it to something. But sadly in java I can still create Student class and pass null myself (would be good to do null check there). So just to be safe, equals should be able to handle that. There's method for that to make it easier - Objects.equals(name, other.name) rather than name.equals(other.name). First one will work fine and return false when name is null. Second one will raise NullPointerException. 
equals shouldn't ever throw Exception. If you aren't sure to guarantee that, it might be better to just surround code in try-catch and return false on exception.
Unless it's exercise, try to rely on these generators. They are pretty good and worked well for me. 
Now I switched to kotlin, that has data classes, which automatically have equals and hashCode based on all class properties already saves work and lines of code!