Câu hỏi phỏng vấn Net core
Câu hỏi

Giải thích sự khác biệt giữa Managed code và Unmanaged code trong .NET?

Câu trả lời

Managed code và Unmanaged code là hai khái niệm quan trọng trong .NET, chúng đại diện cho hai cách tiếp cận khác nhau trong việc thực thi và quản lý mã lệnh.

Managed Code

Managed code là mã lệnh được quản lý bởi Common Language Runtime (CLR) trong .NET Framework. Khi mã nguồn được biên dịch, nó không được chuyển thẳng thành mã máy, mà trở thành Intermediate Language (IL), còn được gọi là MSIL hoặc CIL. Khi chạy chương trình, CLR sẽ biên dịch IL thành mã máy tại thời điểm cần thiết (Just-In-Time compilation) và thực thi nó.

Managed code mang lại nhiều lợi ích như:

  • Bảo mật: CLR cung cấp các biện pháp bảo mật như kiểm tra buffer để ngăn chặn buffer overflow.
  • Quản lý bộ nhớ tự động: CLR thực hiện garbage collection, giúp giải phóng bộ nhớ không còn được sử dụng mà không cần sự can thiệp của lập trình viên.
  • Kiểm tra kiểu dữ liệu tại thời điểm chạy: CLR kiểm tra kiểu dữ liệu để đảm bảo tính an toàn của mã.
  • Xử lý ngoại lệ: CLR cung cấp cơ chế xử lý ngoại lệ mạnh mẽ.

Tuy nhiên, managed code cũng có nhược điểm:

  • Hiệu suất: Có thể chậm hơn một chút so với unmanaged code do quá trình quản lý thêm của CLR.
  • Kiểm soát hệ thống thấp: Lập trình viên có ít quyền kiểm soát trực tiếp đ...
middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Lợi ích của việc biên dịch rõ ràng (AOT) là gì?

senior

Khi sử dụng DI (Dependency Injection) trong Controller, tôi có nên gọi IDisposable trên bất kỳ dịch vụ nào được inject không?

entry

BoxingUnboxing là gì ?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào