Nếu câu hỏi chỉ là so sánh == và equal() thì == là operator, equal() là method, quá đơn giản
trong java thì operator ko thể overloading đc, còn method thì có thể.
nâng cao hơn, trong java thì == dùng để so sánh giá trị, cái cần quan tâm là "giá trị" gì?
với primitive type thì giá trị là giá trị lưu trong memory luôn, còn với reference type thì là giá trị của reference, nghĩa là địa chỉ của memory.
còn method equal() thì tùy vào cách implement, default implement là calculate hashcode các giá trị của các properties bên trong (nếu có) và so sánh hashcode với nhau.
à 1 cái test nữa rất hay đc hỏi, chuyện gì xảy ra so sánh == 2 số kiểu Integer có giá trị giống nhau, với trường hợp 1 là 2 số 127, th 2 là 2 số 128?