Top 50 câu hỏi và trả lời phỏng vấn Java ( Phần 3)
Hướng dẫn này bao gồm các chủ đề JAVA như định nghĩa Java cơ bản, khái niệm OOP,Access specifiers, Collections, Exceptions, Threads, Serialization,...với các ví dụ để bạn sẵn sàng đối mặt với bất kỳ cuộc phỏng vấn JAVA nào một cách tự tin.
Trong hướng dẫn này, chúng tôi đã trình bày gần 50+ câu hỏi phỏng vấn Java cốt lõi quan trọng cho những người mới và ứng viên có kinh nghiệm.
Bài đăng này trên Câu hỏi phỏng vấn JAVA được chuẩn bị để giúp bạn hiểu các khái niệm cơ bản về lập trình Java cho mục đích phỏng vấn. Tất cả các khái niệm JAVA quan trọng được giải thích ở đây với các ví dụ để bạn dễ hiểu.
Câu hỏi phỏng vấn Java phổ biến nhất
Dưới đây là danh sách đầy đủ các câu hỏi phỏng vấn lập trình Java cơ bản và nâng cao quan trọng nhất và thường được hỏi với các câu trả lời chi tiết.
Q # 27) Giải thích các loại danh sách khác nhau có sẵn trong Collestions.
Trả lời: Các giá trị được thêm vào danh sách dựa trên vị trí chỉ mục và nó được sắp xếp theo vị trí chỉ mục.
Các loại danh sách là:
a) ArrayList:
- Lặp lại nhanh và truy cập ngẫu nhiên nhanh chóng.
- Là một Collections theo thứ tự (theo chỉ mục) và không được sắp xếp.
- Thực hiện Random Access Inteface
Thí dụ:
public class Fruits{
public static void main (String [ ] args){
ArrayList <String>names=new ArrayList <String>();
names.add (“apple”);
names.add (“cherry”);
names.add (“kiwi”);
names.add (“banana”);
names.add (“cherry”);
System.out.println (names);
}
}
Đầu ra:
[Apple, cherry, kiwi, banana, cherry]
Từ đầu ra, ArrayList duy trì thứ tự chèn , chấp nhận lặp phần tử và không được sắp xếp.
b) Vector:
Vector giống như ArrayList.
- Vector methods được đồng bộ hóa.
- Thread an toàn.
- Thực hiện truy cập ngẫu nhiên.
.
Thí dụ:
public class Fruit {
public static void main (String [ ] args){
Vector <String> names = new Vector <String> ( );
names.add (“cherry”);
names.add (“apple”);
names.add (“banana”);
names.add (“kiwi”);
names.add (“apple”);
System.out.println (“names”);
}
}
Đầu ra:
[cherry,apple,banana,kiwi,apple]
Vector cũng duy trì thứ tự chèn và chấp nhận lặp phần tử
c) LinkedList:
- Các yếu tố được liên kết đôi với nhau.
- Hiệu suất chậm hơn ArrayList.
- Lựa chọn tốt để chèn và xóa.
- Trong Java 5.0, nó hỗ trợ các phương thức hàng đợi phổ biến peek (), Pool (), Offer (), v.v.
Thí dụ:
public class Fruit {
public static void main (String [ ] args){
Linkedlist <String> names = new linkedlist <String> ( ) ;
names.add(“banana”);
names.add(“cherry”);
names.add(“apple”);
names.add(“kiwi”);
names.add(“banana”);
System.out.println (names);
}
}
Đầu ra:
[ banana,cherry,apple,kiwi,banana]
Duy trì thứ tự chèn và chấp nhận lặp phần tử
Q # 28) Giải thích về Set và các loại của Set trong Collections?
Trả lời: Set quan tâm đến tính duy nhất. Nó không cho phép trùng lặp. Ở đây, phương thức Equal () được sử dụng để xác định xem hai đối tượng giống nhau hay không.
a) HashSet:
- Unorder và Unsorted.
- Sử dụng hash code của đối tượng để chèn các giá trị.
- Sử dụng Set khi yêu cầu là không có phần tử lặp và không quan tâm đến thứ tự
Thí dụ:
public class Fruit {
public static void main (String[ ] args){
HashSet<String> names = new HashSet <=String>( ) ;
names.add(“banana”);
names.add(“cherry”);
names.add(“apple”);
names.add(“kiwi”);
names.add(“banana”);
System.out.println (names);
}
}
Đầu ra:
[banana, cherry, kiwi, apple]
Nó không tuân theo bất kỳ thứ tự chèn nào.Không cho phép lặp.
b) LinkedHashSet:
- Một phiên bản orderd của HashSet được gọi là LinkedHashSet.
- Duy trì một danh sách liên kết đôi của tất cả các thành phần trong đối tượng.
- Sử dụng khi thứ tự thêm được yêu cầu.
Thí dụ:
public class Fruit {
public static void main (String[ ] args){
LinkedHashSet<String>; names = new LinkedHashSet <String>( ) ;
names.add(“banana”);
names.add(“cherry”);
names.add(“apple”);
names.add(“kiwi”);
names.add(“banana”);
System.out.println (names);
}
}
Đầu ra:
[banana, cherry, apple, kiwi]
Nó duy trì thứ tự chèn. Không được phép lặp
c) TreeSet:
- Đây là một trong hai collections được sắp xếp.
- Sử dụng cấu trúc cây của Read Read-Black và đảm bảo rằng các phần tử sẽ theo thứ tự tăng dần.
- Chúng ta có thể xây dựng một TreeSet với hàm tạo bằng cách sử dụng một bộ so sánh
Thí dụ:
public class Fruits{
public static void main (String[ ]args) {
Treeset<String> names= new TreeSet<String>( ) ;
names.add(“cherry”);
names.add(“banana”);
names.add(“apple”);
names.add(“kiwi”);
names.add(“cherry”);
System.out.println(names);
}
}
Đầu ra:
[apple, banana, cherry, kiwi]
Treeset sắp xếp các phần tử theo thứ tự tăng dần. Không được phép lặp phần tử
Q # 29). Giải thích về Map và các loại Map.
Trả lời: Map quan tâm đến định danh duy nhất. Chúng ta có thể ánh xạ một khóa duy nhất đến một giá trị cụ thể. Đây là một cặp khóa - giá trị. Chúng ta có thể tìm kiếm một giá trị, dựa trên khóa. Giống như Set, Map cũng sử dụng phương thức Equal() để xác định xem hai khóa giống nhau hay khác nhau.
Map có các loại sau:
a) HashMap:
- Map không có thứ tự và không sắp xếp.
- Hashmap là một lựa chọn tốt khi chúng ta không quan tâm đến thứ tự.
- Nó cho phép một khóa null và nhiều giá trị null.
Thí dụ:
Public class Fruit{
Public static void main(String[ ] args){
HashMap<Sting,String> names =new HashMap<String,String>( );
names.put(“key1”,“cherry”);
names.put (“key2”,“banana”);
names.put (“key3”,“apple”);
names.put (“key4”,“kiwi”);
names.put (“key1”,“cherry”);
System.out.println(names);
}
}
Đầu ra:
{key2 =banana, key1=cherry, key4 =kiwi, key3= apple}
Các khóa trùng lặp không được phép trong Map.
Nó không duy trì bất kỳ thứ tự chèn nào và không được sắp xếp.
b) HashTable:
- Giống như vectơ, các phương thức của lớp được đồng bộ hóa.
- Thread an toàn và do đó làm chậm hiệu suất.
- Nó không cho phép bất thành phần nào null.
Thí dụ:
public class Fruit{
public static void main(String[ ]args){
Hashtable<Sting,String> names =new Hashtable<String,String>( );
names.put(“key1”,“cherry”);
names.put(“key2”,“apple”);
names.put(“key3”,“banana”);
names.put(“key4”,“kiwi”);
names.put(“key2”,“orange”);
System.out.println(names);
}
}
Đầu ra:
{ key2=apple, key1=cherry,key4=kiwi, key3=banana}
Khóa trùng lặp không được phép.
c) LinkedHashMap:
- Duy trì trật tự chèn.
- Chậm hơn HashMap.
- Có thể them phần tử nhanh hơn.
Thí dụ:
public class Fruit{
public static void main(String[ ] args){
LinkedHashMap<Sting,String> names =new LinkedHashMap<String,String>( );
names.put(“key1”,“cherry”);
names.put(“key2”,“apple”);
names.put(“key3”,“banana”);
names.put(“key4”,“kiwi”);
names.put(“key2”,“orange”);
System.out.println(names);
}
}
Đầu ra:
{key2 = apple, key1 = cherry, key4 = kiwi, key3 = Banana}
Khóa trùng lặp không được phép.
d) TreeMap:
- Là Sorted Map.
- Giống như Tree set, chúng ta có thể xây dựng một thứ tự sắp xếp với hàm tạo.
Thí dụ:
public class Fruit{
public static void main(String[ ]args){
TreeMap<Sting,String> names =new TreeMap<String,String>( );
names.put(“key1”,“cherry”);
names.put(“key2”,“banana”);
names.put(“key3”,“apple”);
names.put(“key4”,“kiwi”);
names.put(“key2”,“orange”);
System.out.println(names);
}
}
Đầu ra:
{key1=cherry, key2=banana, key3 =apple, key4=kiwi}
Nó được sắp xếp theo thứ tự tăng dần dựa trên khóa. Không được trùng lặp khóa
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!