Tôi đang bắt đầu với Lập trình hướng đối tượng (OOP) và muốn biết: ý nghĩa của việc xê-ri hóa theo cách nói của OOP là gì?
Tôi đang bắt đầu với Lập trình hướng đối tượng (OOP) và muốn biết: ý nghĩa của việc xê-ri hóa theo cách nói của OOP là gì?
Câu trả lời:
Tuần tự hóa là quá trình biến một đối tượng trong bộ nhớ thành một luồng byte để bạn có thể thực hiện các công việc như lưu trữ nó trên đĩa hoặc gửi qua mạng.
Deserialization là quá trình ngược lại: biến một luồng byte thành một đối tượng trong bộ nhớ.
Marshal
và Unmarshal
đồng nghĩa với Serialize
và Deserialize
.
abc
sẽ được tuần tự hóa thành 0x61 0x62 0x63
(ASCII) hoặc 0x00 0x61 0x00 0x62 0x00 0x63
(UTF16) - có hoặc không có những thứ như đầu cuối NUL hoặc độ dài được mã hóa.
Nói một cách đơn giản, Tuần tự hóa là một quá trình chuyển đổi một đối tượng thành luồng byte để nó có thể được truyền qua mạng hoặc được lưu trữ trong một bộ lưu trữ liên tục.
Deserialization hoàn toàn ngược lại - Lấy một luồng byte từ mạng hoặc bộ lưu trữ bền vững và chuyển đổi nó trở lại Object với cùng trạng thái .
Điều cần hiểu là làm thế nào các luồng byte đó được diễn giải hoặc thao tác để chúng ta có được cùng một đối tượng / cùng một trạng thái. Có nhiều cách khác nhau để đạt được điều đó. Một số trong số họ là -
Serializable interface
và ghi vào Object Stream.JSON
từ đầu, vì tôi không biết gì về nó
Giả sử tôi đang nói chuyện với bạn thân của tôi qua điện thoại và tôi đang kể cho anh ấy nghe về chú chó con mới của tôi.
Đây là vấn đề của tôi: chó con là một động vật có vú sống và thở. Làm thế nào tôi có nghĩa là để truyền đạt một con chó con qua đường dây điện thoại? Tôi không thể đặt con chó con của tôi vào máy thu điện thoại của tôi.
Vì vậy, thay vào đó, tôi sẽ phải truyền đạt một đại diện của con chó con qua điện thoại. Nói cách khác, sau đó tôi nối tiếp chú chó Rex của mình và tôi gửi cho nó phiên bản nối tiếp của Rex qua đường dây điện thoại:
{ "name":"Rex", "age":5, "favourite_food": pedigree_choice_cuts, "favourite_game": fetch_ball, "favourite_hobby": wagging_tail }
Đó là một đại diện hoàn hảo - một loạt các con chó của tôi.
Tuần tự hóa về cơ bản có nghĩa là biến con chó Rex của tôi thành một thứ khác - một đối tượng JSON - sau đó có thể được vận chuyển qua đường dây điện thoại dưới dạng một chuỗi 1 và 0. Bạn thân của tôi ở NYC sau đó có thể dịch lại các số 1 và 0 đó thành một đối tượng JSON - để anh ta có một đại diện hoàn hảo cho chú chó Rex của tôi.
Kiểm tra này, điều này sẽ cung cấp cho bạn một lời giải thích tốt:
http://en.wikipedia.org/wiki/Serialization
Tôi nghĩ rằng việc sử dụng phổ biến nhất của thuật ngữ tuần tự hóa phải thực hiện với việc chuyển đổi một đối tượng nhị phân thành biểu diễn XML (hoặc chuỗi khác) để nó có thể được lưu trữ trong cơ sở dữ liệu / tệp hoặc gửi qua mạng trong một cuộc gọi dịch vụ web. Deserialization là quá trình ngược lại - chuyển đổi một chuỗi XML / trở lại thành một đối tượng.
EDIT: Một thuật ngữ khác bạn có thể gặp là marshalling / unmarshalling. Marshalling về cơ bản là khái niệm tương tự như tuần tự hóa, và không sắp xếp lại cũng giống như khử lưu huỳnh.
Tuần tự hóa là quá trình chuyển đổi một đối tượng thành một luồng byte để lưu trữ đối tượng hoặc truyền nó vào bộ nhớ, cơ sở dữ liệu hoặc tệp. Mục đích chính của nó là lưu trạng thái của một đối tượng để có thể tạo lại nó khi cần thiết. Quá trình ngược lại được gọi là khử lưu huỳnh.
...
Hình minh họa này cho thấy toàn bộ quá trình tuần tự hóa
...
Thông qua việc tuần tự hóa, nhà phát triển có thể thực hiện các hành động như gửi đối tượng đến ứng dụng từ xa bằng Dịch vụ web, chuyển một đối tượng từ miền này sang miền khác, truyền đối tượng qua tường lửa dưới dạng chuỗi XML hoặc duy trì bảo mật hoặc cụ thể của người dùng thông tin trên các ứng dụng
Từ https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/con accept / subsialization /
(nhấn mạnh của tôi)
Tuần tự hóa là quá trình chuyển đổi dữ liệu không có thứ tự (chẳng hạn như một đối tượng) thành một chuỗi các mã thông báo có thể được sử dụng sau này để xây dựng lại dữ liệu gốc. Các hình thức nối tiếp thường là một chuỗi văn bản, nhưng không phải.
tuần tự hóa đang chuyển đổi một đối tượng thành chuỗi bit có thể lưu trữ.
để bạn có thể lưu chuỗi này vào một tệp, db hoặc gửi qua mạng.
sau đó bạn có thể giải tuần tự hóa nó cho đối tượng thực tế và sử dụng lại bất cứ khi nào bạn muốn.
Dịch vụ web và AJAX là ví dụ phổ biến nhất về tuần tự hóa. Các đối tượng được tuần tự hóa trước khi gửi phản hồi cho khách hàng.
tuần tự hóa không là gì ngoài việc chuyển đối tượng được hỗ trợ java sang dạng được hỗ trợ
(OR)
chuyển đổi biểu mẫu được hỗ trợ java sang biểu mẫu được hỗ trợ mạng .. phạm vi chính của việc tuần tự hóa không gì khác ngoài việc chuyển dữ liệu từ lớp này sang lớp khác ... chỉ các đối tượng được tuần tự hóa mà chúng ta có thể gửi qua mạng ..
Tuần tự hóa là quá trình chuyển đổi một đối tượng được hỗ trợ Java, C # hoặc bất kỳ (ngôn ngữ OOP) nào khác sang dạng có thể vận chuyển. Bằng cách này, nó được vận chuyển qua mạng hoặc được lưu trữ trên đĩa. Để một lớp được tuần tự hóa, nó phải thực hiện giao diện tuần tự hóa.
Tuần tự hóa đang biến dữ liệu thành một "chuỗi" byte tuyến tính.
Những người khác đã nói ít nhiều điều tương tự, nhưng tôi nhấn mạnh rằng các mô hình máy tính yêu cầu dữ liệu phù hợp với RAM một chiều được lưu trữ hoặc lưu trữ liên tục.
Hầu hết mọi thứ là "dữ liệu" vốn đã được tuần tự hóa (ngay cả khi bạn phải giảm mô hình trừu tượng thành mô hình tuyến tính); không tuần tự hóa là một kết nối mạng hoặc một máy dựa trên trạng thái phức tạp như trình phân tích cú pháp.
tuần tự hóa phải thực hiện với việc chuyển đổi một đối tượng nhị phân thành biểu diễn XML (hoặc chuỗi khác) để nó có thể được lưu trữ trong cơ sở dữ liệu / tệp hoặc được gửi qua mạng trong một cuộc gọi dịch vụ web. Deserialization là quá trình ngược lại - chuyển đổi một chuỗi XML / trở lại thành một đối tượng.
Khi khởi tạo (xây dựng) đối tượng thực tế (vật) từ một lớp (bản thiết kế), cần phải lưu đối tượng (vật) bằng cách tuần tự hóa nó (phá vỡ cấu trúc nguyên tử cơ bản của nó) vào một khoảng trống trong bộ nhớ. (Kiểu như Star Treks Transporter). Bạn chia nhỏ thứ đó thành luồng thông tin có thể được vận chuyển đi đâu đó và được lưu trữ. Sau đó, khi bạn muốn xây dựng lại thứ bạn chỉ cần kéo đối tượng được lưu trữ nguyên tử trở lại vào đối tượng. Khác với sự xúi giục.
Tuần tự hóa là quá trình chuyển đổi một đối tượng thành luồng dữ liệu nhị phân để nó có thể được lưu trữ trong một tệp hoặc gửi qua mạng nơi nó có thể được phục hồi trở lại cùng một đối tượng.
Tuần tự hóa là khi đối tượng (một đoạn bộ nhớ) được dịch ở dạng khi trạng thái của đối tượng có thể được lưu trong tệp (làm ví dụ).
Chỉ cần coi nó là làm bánh - đối tượng là bột, cookie - là bột nhào.
Vì vậy, bằng cách "tuần tự hóa", bạn có thể gửi cookie cho bạn bè của mình.
Một cái gì đó như thế :-)