Tuần tự hóa được sử dụng để duy trì trong Java. Có thể ổn khi duy trì một vài đối tượng sử dụng tuần tự hóa. Nhưng, đối với một số lượng lớn các đối tượng, ORM, Cơ sở dữ liệu, vv có thể tốt hơn. Có vẻ như tuần tự hóa chỉ hữu ích cho các công việc nhỏ. Có lẽ tôi đã sai lầm. Vì vậy, xin vui lòng cho tôi biết những lợi thế của tuần tự hóa so với các phương pháp không tuần tự hóa là gì? Khi nào nên sử dụng và khi nào nên tránh?
Câu hỏi này xuất hiện trong đầu tôi sau khi xem bài viết của DZone Is Object serialization Evil?
Và đây là những dòng dẫn đến câu hỏi của tôi:
Nếu bạn nhìn vào Java và các đối tượng phiên của nó, tuần tự hóa đối tượng thuần túy được sử dụng. Giả sử rằng một phiên ứng dụng khá ngắn, có nghĩa là nhiều nhất là vài giờ, việc tuần tự hóa đối tượng là đơn giản, được hỗ trợ tốt và được xây dựng trong khái niệm Java của phiên. Tuy nhiên, khi sự tồn tại của dữ liệu kéo dài trong một khoảng thời gian dài hơn, có thể là vài ngày hoặc vài tuần và bạn phải lo lắng về các bản phát hành mới của ứng dụng, việc tuần tự hóa nhanh chóng trở thành xấu xa. Như bất kỳ nhà phát triển Java giỏi nào cũng biết, nếu bạn có kế hoạch tuần tự hóa một đối tượng, ngay cả trong một phiên, bạn cần một ID tuần tự hóa thực sự (serialVersionUID), không chỉ là 1L và bạn cần triển khai giao diện Nối tiếp. Tuy nhiên, hầu hết các nhà phát triển không biết các quy tắc thực sự đằng sau quá trình khử lưu huỳnh Java. Nếu đối tượng của bạn đã thay đổi, không chỉ thêm các trường đơn giản vào đối tượng, có thể Java không thể giải tuần tự hóa đối tượng một cách chính xác ngay cả khi ID tuần tự hóa không thay đổi. Đột nhiên, bạn không thể truy xuất dữ liệu của mình nữa, điều này vốn đã xấu.
Bây giờ, có thể các nhà phát triển đọc điều này có thể nói rằng họ sẽ không bao giờ viết mã có vấn đề này. Điều đó có thể đúng, nhưng còn một thư viện mà bạn sử dụng hoặc một số nhà phát triển khác không còn được sử dụng bởi công ty của bạn thì sao? Bạn có thể đảm bảo rằng vấn đề này sẽ không bao giờ xảy ra? Cách duy nhất để đảm bảo đó là sử dụng một phương thức tuần tự hóa khác.
1L
" không chính xác.