1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Kiến thức cần biết về .NET pdf

6 426 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiến thức cần biết về .NET
Thể loại Bài viết
Định dạng
Số trang 6
Dung lượng 187,78 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Interface dùng để gom các hành động cần được hiện thực , các khả năng của một đối tượng ví dụ con người và xe cộ cùng có khả năng đi lại, nhưng con người không cùng tính chất với xe cộ

Trang 1

Kiến thức cần biết về NET Bài viết này trình bày một số kiến thức về NET mà các lập trình viên cần nắm được để phục vụ cho công việc của mình được tốt hơn

1 Sự khác nhau giữa các lớp Trace và Debug?

- Trace dùng để theo dõi các hành động xảy ra Nó hoạt động trong các đóng gói

cả Debug lẫn Release Trace là khả năng của chương trình tự đưa ra các thông tin về hành động của mình

- Debug dùng để tìm và sửa các lỗi trong chương trình Nó chỉ hoạt động trong đóng gói Debug

2 Sự khác nhau giữa static readonly và const?

- Static readonly là hằng số được khởi tạo khi thực thi chương trình

- Const là hằng số được khởi tạo khi biên dịch chương trình

3 Sự khác nhau giữa String và StringBuilder?

- String là lớp không thay đổi Mọi phương thức sẽ tạo ra một biến String mới

- StringBuilder là lớp thay đổi Các phương thức của biến sẽ ảnh hưởng đến đến biến

StringBuilder hiện tại

4 Sự khác nhau giữa “” và String.Empty?

- “” sẽ tạo thêm 1 đối tượng khi làm việc với nó (so sánh, copy…)

- String.Empty không tạo đối tượng nào cả String.Emtpy nằm trong mscorlib

Khi kiểm tra 1 String có rỗng hay không nên dùng String.Length == 0 để có tốc độ nhanh nhất

5 Có thể gán một struct bằng null hay không?

- Có thể nếu bạn lập trình với C# 2.0 Ví dụ: int? var = 1; var = null;

6 Sự khác nhau giữa == và phương thức Equals?

- == so sánh theo kiểu giá trị

- Equals so sánh theo kiểu tham chiếu

7 Sự khác nhau giữa throw và throw ex?

Trang 2

- throw đế đưa lại toàn bộ các tầng theo dõi của lỗi ra

- throw ex bỏ bớt các tầng theo dõi bên dưới phương thức gọi throw ex

8 Connection Pooling dùng để làm gì?

- Cho phép tăng tốc độ của các ứng dụng Web bằng cách dùng lại các kết nối thay vì tạo các kết nối mới với mỗi yêu cầu

9 .NET có hỗ trợ thừa kế từ nhiều lớp hay không (multiple inheritance)? Tại sao?

- Không Vì sẽ không hiểu được khi gọi 1 phương thức mà 2 lớp cha cùng override nó

10 Sự khác nhau giữa abstract class và interface?

- Có thể thừa kế từ nhiều interface nhưng chỉ có thể thừa kế từ 1 abstract class

- Có thể viết sẵn các thực thi trong Abstract class, nhưng interface thì không

- Interface dùng để gom các hành động cần được hiện thực , các khả năng của một đối tượng (ví

dụ con người và xe cộ cùng có khả năng đi lại, nhưng con người không cùng tính chất với xe cộ), còn abstract class cho các lớp thừa kế cùng 1 loại, tính chất hay trạng thái (ví dụ đàn ông, phụ

nữ, trẻ con, người già đều là con người)

- Abstract class có tốc độ thực thi nhanh hơn interface

- Thêm 1 tính năng mới vào interface sẽ phá vỡ toàn bộ các lớp hiện thực, còn abstract thì không

11 Hàm GetHasCode() trong System.Object dùng để làm gì?

- Trả về giá trị của một đối tượng Chú ý hàm này mặc định không trả về giá trị duy nhất hoặc không đổi Hàm này có thể override

12 Sự khác nhau giữa DataSet và DataReader?

- DataSet có thể đọc và ghi trong khi DataReader chỉ có thể đọc

- DataSet có thể chứa nhiều bảng còn DataReader chỉ có thể chứa 1 bảng

- DataSet làm việc ở chế độ không kết nối còn DataReader làm việc ở chế độ kết nối

- DataSet có thể di chuyển tới và trở lại còn DataReader thì chỉ có thể di chuyển tới

- DataSet truy cập chậm hơn DataReader

13 Sự khác nhau giữa các phuơng thức Copy và Clone?

- Clone chỉ copy cấu trúc trong khi Copy copy cả cấu trúc lẫn dữ liệu

14 Sự khác nhau giữa Dispose, Destructor và Finalize?

- Destructor sẽ được chuyển thành Finalize khi biên dịch Hàm Finalize được gọi bởi NET

Trang 3

Runtime và chúng ta không thể đoàn được nó được gọi khi nào, nhưng nó chắc chắn sẽ được gọi

- Dispose sẽ giải phóng bộ nhớ ngay khi nó được gọi Lưu ý nếu lớp nào override Dispose mà quên gọi thì các đối tượng sẽ không tự giải phóng bộ nhớ

15 Serialization là gì?

- Là sự chuyển chuyển đối tượng thành 1 luồng các bytes

16 Sự khác nhau giữa XmlSerializer, BinaryFormatter và SoapFormatter?

- XmlSerializer dùng cho dịch vụ Web

- BinaryFormatter/SoapFormatter dùng cho Remoting

- SoapFormatter dùng để tuần tự hóa 1 đối tượng thành SOAP

- BinaryFormatter dùng để tuần tự hóa 1 đối tượng thành dạng nhị phân

- XmlSerializer chỉ chuyển đổi các tính chất public còn BinaryFormatter/SoapFormatter chuyển đổi cả public lẫn private

17 Sự khác nhau giữa overriding và shadowing?

- Overriding cung cấp sự hiện thực mới của 1 hàm ở lớp thừa kế nhưng không thay đổi số biến, kiểu trả về, mức truy cập còn shadowing thì có thể thay đổi (từ khóa new trong C#)

18 Sự khác nhau giữa class, object, struct và interface?

- Class là cấu trúc dữ liệu định nghĩa bởi người dùng chứa các tính chất và phương thức Object

là một trường hợp cụ thể của class Class không chiếm bộ nhớ, còn Object được tạo trong bộ nhớ

- Class là cấu trúc dữ liệu định nghĩa bởi người dùng chứa các tính chất và phương thức Struct là kiểu giá trị được lưu trữ trong stack còn class là kiểu tham chiếu (các object) được lưu trữ trong heap

- Khi struct được khởi tạo không bằng hàm khởi tạo người dùng sẽ phải khởi tạo tất cả các Fields trước khi sử dụng nó

- Interface là một hợp đồng gồm một nhóm các phương thức cần được hiện thực

19 Sự khác nhau giữa Property và Field?

- Property dùng để quản lý sự truy cập đến Field Dùng Property để đảm bảo Field không bị gán các giá trị không hợp lệ

20 Sự khác nhau giữa static Method, static constructor với method và constructor thông thường?

- Static method có thể gọi mà không cần khởi tạo biến Static constructor chỉ được gọi đúng một lần khi object đầu tiên được khởi tạo

21 Các biến tĩnh và chỉ dẫn chương trình được lưu ở đâu?

- Ở 1 vùng bộ nhớ đặc biệt gọi là Permanent Storage area

22 Sự khác nhau giữa stack và heap?

- Stack và heap là các vùng bộ nhớ Heap nằm giữa stack và Permanent Storage area, và độ lớn

có thể thay đổi khi thực thi chương trình

Trang 4

23 Sự khác nhau giữa Boxing and Un-Boxing?

- Boxing là chuyển đổi kiểu giá trị thành kiểu tham chiếu Un-Boxing ngược lại

24 Mục đích của thừa kế (inheritance)?

- Để tái sử dụng

25 Mục đích của đa hình (poymophism)?

- Một hành động có thể xảy ra theo nhiều cách khác nhau

26 Sự khác nhau giữa Compile Time Polymorphism và Run Time Polymorphism?

- Compile Time Polymorphism - ví dụ Overloading, một hàm có thể có nhiều cách biểu diễn

- Run Time Polymorphism - ví dụ Overriding, một hàm có thể có nhiều cách xử lý

27 Sự khác nhau giữa delegate và event?

- delegate là một lớp (class) đại diện cho hàm con trỏ kiểu an toàn hoặc hàm gọi (call backs) chỉ đến địa chỉ tham chiếu của một (hay nhiều) hàm Con trỏ hàm chứa trong delegate được gắn vào một đối tượng đích (target) và khi delegate được kích hoạt phương thức sẽ được gọi ở đối tượng đích Sự hữu ích của delegate không nằm ở chỗ giữ địa chỉ tham chiếu của các hàm mà để định nghĩa và dùng các tên hàm khi runtime thay vì compile time

- event cho phép xác định một delegate sẽ được gọi khi có sự xuất hiện của “sự kiện” nào đó event là một modifier trong khi delegate là một lớp event cho phép một delegate được khai báo trong interface

29 AppDomain là gì?

- Là một miền riêng biệt lưu trữ code và dữ liệu cho một application Một process có thể chứa nhiều AppDomains

Khi bạn copy một DLL mới vào bin, ASP.NET runtime sẽ không thể đưa nó vào một

AppDomain đang chạy.Nó sẽ dừng từ từ AppDomain cũ (dừng hẳn khi nó dừng tất cả các requests) và mở một AppDomain mới

30 Sự khác nhau giữa publish và published interfaces

- publish interface là interface mà bạn có thể sửa tất cả những code nào dùng nó còn published interface là interface mà bạn không thể sửa code dùng nó

31 Sự khác nhau giữa try{}catch{} và try{}catch{Exception ex}?

- Chúng giống hệt nhau

32 Sự khác nhau giữa 1/0; và try{1/0;} catch {throw;}

- Chúng giống hệt nhau Vì vậy nếu không xử lý catch thì đừng catch

33 Sự khác nhau giữa Remoting và Web service?

- Web service không có trạng thái, không cần biết đến client chỉ sử dụng trên HTTP, hỗ trợ không đồng nhất các môi trường, tốc độ chậm hơn Remoting

- Remoting có trạng thái kết nối, hỗ trợ nhiều giao thức hơn HTTP, TCP…, đòi hỏi môi trường đồng nhất, tốc độ nhanh đặc biệt khi dùng trên TCP

Trang 5

34 Sự khác nhau giữa error và exception?

- Error là lỗi của chương trình còn exception là lỗi chương trình được phát hiện và có thể xử lý

35 Sự khác nhau giữa Procedure và OO?

- Procedure gồm các hàm và các biến, tất cả các hàm đều có thể truy cập đến tất cả các biến Không thể quản lý các biến

- OO gom hàm và biến vào các đơn vị object Các hàm và biến được quản lý trong nội bộ object Các object tương tác với nhau thông qua các interfaces

36 CLR, CTS, CLS, MSIL, JIT, PE, GAC là viết tắt của những gì?

- Là Common Language Runtime: môi trường để chạy các ứng dụng NET

- Là Common Type System: mô tả các loại dữ liệu trong NET

- Là Common Language Specification: mô tả các quy định và chuẩn cho các ngôn ngữ trong .NET

- Là Microsoft Intermediate Language: ngôn ngữ thông dịch của NET

- Là Just In Time: trình biên dịch MSIL thành mã máy

- Là Portable Executable: file chứa MSIL

- Là Global Assembly Cache: nơi lưu trữ các Asembly dùng chung

37 Các mâu thuẫn giữa OO và RDBMS?

- Cấu trúc cấp bậc trong OO có thể là vô tận trong khi ở RDBMS chỉ có 4 loại table, row,

column, cell

- Các đối tượng trong OO bản thân là phân biệt trong khi trong RDBMS cần phải có primary-key

- Các đối tượng trong OO có thể tham chiếu đến nhau rất đơn giản nhưng trong RDBMS thì phức tạp thông qua JOIN

- Sự thừa kế trong OO là đơn giản trong khi trong RDBMS hầu như không có khái niệm đó Một bảng cần chứa tất cả các tính chất, có khi là thừa

- Các đối tượng trong OO có thể có các hành động tác động đến tối tương khác.trong RDBMS thì phức tạp thông qua TRIGGER

- Khả năng truy cập trong OO là hạn chế trong khi ở RDBMS là không giới hạn

38 Sự khác nhau giữa Response.Redirect và Server.Transfer

- Response.Redirect đơn thuần là chuyển bạn đến một trang mới giống như bạn gõ địa chỉ trang

đó trên browser và request đến server

- Server.Transfer cũng chuyển bạn đến trang mới nhưng ở phía server, làm giảm request đến server, giữa nguyên URL của bạn và có thể chuyển cả các query string và biến trên form đên địa chỉ mới, chỉ thực hiện giữa các trang trên cùng 1 host

39 Vai trò của ASPX page và ASPX page code-behind trong MVC

- ASPX page là View còn ASPX page code-behind là Controller

40 Làm thế nào để try/catch trên toàn bộ 1 ASPX page

- Dùng Page_Error event

Trang 6

41 Sự khác nhau giữa Cohesion và Coupling

- Cohesion là sự liên kết giữa các thành phần trong một module Một thiết kế tốt nên có sự liên kết giữa các thành phần thật chặt chẽ

- Coupling là sự kết nối giữa các module với nhau Một thiết kế tốt nên có sự kết nối thật lỏng lẽo giữa các module

42 Refractoring là gì?

- Là sự thiết kế lại cấu trúc của code bằng cách thay đổi cấu trúc bên trong mà không ảnh hưởng đến các hành vi bên ngoài (interface) của đoạn code (module, system) đó

43 Phân biệt HttpApplication, Session, ViewSate và HttpContext?

- Cả 4 thành phần trên đều dùng để lưu dữ liệu của một Web Application

- HttpApplication có tác dụng trong toàn bộ quá trình thực thi của Web Application

- Session có tác dụng trong 1 lần ghé thăm (visit) của người dùng Nó kết thúc khi gặp timeout

- ViewState có tác dụng trong trong 1 trang web

- HttpContext có tác dụng trong 1 request

 

Ngày đăng: 22/12/2013, 22:16

TỪ KHÓA LIÊN QUAN

w