Cách phỏng vấn Java Developer bao đậu


“Thành công là kết quả của sự chuẩn bị kỹ càng”





Trước buổi phỏng vấn, bạn thường chuẩn bị những gì?





Ôn lại sơ bộ kiến thức, hỏi những người bạn cùng ngành, hay tham khảo từ những người phỏng vấn trước đó? 





Việc xem qua những câu hỏi phỏng vấn giúp bạn kiểm tra lại mình còn thiếu sót ở đâu, phần nào lâu rồi chưa có cơ hội xem lại. Lấp đầy những “kẽ hở li ti” là cách tuyệt vời để trau dồi cũng như nâng cao kiến thức. 





Theo kinh nghiệm của Gambaru, người phỏng vấn thường bắt đầu với những khái niệm cơ bản, sau đó tùy biến vào câu trả lời của bạn để hỏi nâng cao.





Mong muốn đầu tiên của người phỏng vấn đó chính là nền tảng kiến thức vững chắc của bạn.





Những câu hỏi thường gặp khi phỏng vấn Java Developer





Dưới đây là những câu hỏi thường gặp trong buổi phỏng vấn vị trí Java Developer:





1. Hướng đối tượng OOP





  • Hàm get/set trong Object để làm mục đích gì
  • Encapsulate Data
  • Dependency Injection
  • So sánh Abstract và Interface
  • Extend và Implement
  • Data Structure hay sử dụng
  • Khác nhau giữa Association, Aggregation và Composition (Câu hỏi nâng cao)
  • Vẽ Observer Pattern (Dựa trên level yêu cầu của vị trí)




Xem qua những câu hỏi phỏng vấn là cách giúp bạn kiểm tra nhanh kiến thức
Xem qua những câu hỏi phỏng vấn là cách giúp bạn kiểm tra nhanh kiến thức. Ảnh: Christina Morillo – Pexels




2. Java





  • String là bất biến? Đúng hay sai
  • So sánh Strong và Weak Reference, cho ví dụ cụ thể
  • Tại sao Java không hỗ trợ Multiple Inheritance
  • JDK, JRE và JVM
  • Equals () và == trong Java khác nhau như thế nào
  • Sự khác biệt giữa Heap và Stack Memory trong Java
  • Java String Pool
  • Final, Finally, Finalize
  • Cách chia sẻ biến trong Multi Threads (Nếu trong CV bạn có liệt kê dùng Threads)
  • Cách sửa lỗi khi memory leak (Nếu trong CV có đề cập vấn đề về bộ nhớ)
  • Số lượng tối thiểu Threads cần cho một Java Thread deadlock
  • Giải thích về cách hoạt động của ConcurrentHashMap




Thread Signalling, tìm lỗi đoạn code này
Ví dụ: Thread Signalling, tìm lỗi đoạn code này. Ảnh: Java Specialists




Static Locks, Code phía dưới có gì không ổn
Ví dụ: Static Locks, Code phía dưới có gì không ổn? Cách sửa. Ảnh: Java Specialists




3. SQL





  • Delete và Truncate statements
  • Drop và Truncate commands
  • Subsets SQL
  • Join trong SQL
  • Char và Varchar2 datatype trong SQL
  • Phân biệt Clustered and Non-Clustered Index trong SQL
  • ACID property trong database




4. HTTP





  • HTTP
  • Stateless
  • Stateful
  • Stateless, Session, Logout Stateless
  • Cookie và Session khác nhau ở điểm nào
  • Oauth2, JWT
  • Sự khác biệt giữa SOAP REST? Cái nào tốt hơn và tại sao
  • Put, Patch, Delete, Head
  • Các loại HTTP Status Code




5. Scaling system





Ví dụ: Có 1 server scheduler count down lượt chọn player của 1 game ABC, mỗi user sẽ có 5 lần chọn players mỗi lần user sẽ có 30 giây suy nghĩ để chọn (có thời gian count down).





Làm thế nào để scaling ra 3 nodes cho server scheduler này?





6. Tư duy Logic





Phỏng vấn thường có những bài Test về Logic
Phỏng vấn thường có những bài Test về Logic. Ảnh: Danial RiCaRoS – Unsplash




Ví dụ: 





  • Cho một non-empty list, trả về k phần tử thường gặp nhất.
  • Kết quả phải được sắp xếp theo tần số xuất hiện từ cao đến thấp, nếu có 2 phần tử cùng tần số thì trả về phần tử có thứ tự chữ cái thấp hơn (lower alphabetical order).




Ví dụ:





Input: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2 Output: [“i”, “love”]





Explanation: “i” and “love” are the two most frequent words.





Note that “i” comes before “love” due to a lower alphabetical order





Hoặc bạn có thể ôn thêm các ví dụ liên quan đến xử lý chuỗi hay xử lý random.





Và cũng như tất cả các vị trí khác, bạn hãy:





  • Tập trung liên kết giữa kinh nghiệm làm việc 2 năm gần đây nhất của bạn với những yêu cầu mà công ty đăng tuyển trong Job Description.
  • Đề cập về dự án mà bạn cảm thấy tâm đắc nhất, hãy luôn nhớ thử thách bạn trải qua trong quá trình làm việc càng khó khăn sẽ càng đề cao những thứ bạn gặt hái được. Tất nhiên, mọi thông tin nên được trung thực.
  • Chia sẻ những giải pháp và “bài học xương máu” trong quá trình làm việc hay quản lý dự án.
  • Chuyên sâu phần nào thì hãy đề cập đến vấn đề đó. Nếu thực sự không chuyên, hãy mạnh dạn xin lời khuyên từ người phỏng vấn. Điều này sẽ được đánh giá cao.




Đến đây, bạn tự đánh giá mình được bao nhiêu điểm trên thang điểm 10?





Hy vọng những chia sẻ trên của Gambaru sẽ giúp bạn có được sự chuẩn bị tốt nhất trước mỗi buổi phỏng vấn nhé!





Nguồn: GNT Leaders & HR