Advertisement
jaVer404

level17.lesson10.home05

Oct 1st, 2015
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.80 KB | None | 0 0
  1. package com.javarush.test.level17.lesson10.home05;
  2.  
  3. /* Лишняя синхронизация
  4. synchronized существенно замедляет программу, поэтому убери избыточность synchronized внутри методов
  5. */
  6.  
  7. public class Solution {
  8.     char[] value;
  9.     int count;
  10.  
  11.     public Solution append(CharSequence s) {
  12.  
  13.             if (s == null) {
  14.  
  15.                     s = "null";
  16.  
  17.             }
  18.  
  19.             if (s instanceof String) {
  20.  
  21.                     return this.append((String) s);
  22.  
  23.             }
  24.  
  25.             if (s instanceof Solution) {
  26.  
  27.                     return this.appendThis((Solution) s);
  28.  
  29.             }
  30.         return this.append(s);
  31.     }
  32.  
  33.     public synchronized Solution appendThis(Solution s) {
  34.         //do something here....
  35.         return this;
  36.     }
  37.  
  38.     private static final java.io.ObjectStreamField[] serialPersistentFields =
  39.             {
  40.                     new java.io.ObjectStreamField("value", char[].class),
  41.                     new java.io.ObjectStreamField("count", Integer.TYPE),
  42.                     new java.io.ObjectStreamField("shared", Boolean.TYPE),
  43.             };
  44.  
  45.     private synchronized void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException {
  46.         java.io.ObjectOutputStream.PutField fields = s.putFields();
  47.  
  48.             fields.put("value", value);
  49.             fields.put("count", count);
  50.             fields.put("shared", false);
  51.  
  52.  
  53.             s.writeFields();
  54.  
  55.     }
  56.  
  57.     private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException {
  58.  
  59.             java.io.ObjectInputStream.GetField fields = s.readFields();
  60.             value = (char[]) fields.get("value", null);
  61.             count = fields.get("count", 0);
  62.  
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement