{"id":252755,"date":"2015-03-10T16:50:03","date_gmt":"2015-03-10T12:50:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=252755"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=252755","title":{"rendered":"\u0418\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0438\u0440\u0443\u0435\u043c\u043e\u0435"},"content":{"rendered":"<p>     \t\u0418\u0434\u0435\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u043f\u0438\u043a\u0430 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0438\u0437 <a href=\"http:\/\/habrahabr.ru\/post\/250029\/#comment_8272049\">\u044d\u0442\u043e\u0433\u043e<\/a> \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f.<\/p>\n<p>  \u0418\u0442\u0430\u043a \u0438\u043c\u0435\u0435\u043c: \u043a\u043b\u0430\u0441\u0441 \u0431\u0435\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u0432, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. \u041d\u0430 Java \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0439\u0442\u043a\u043e\u0434\u043e\u043c. \u0418\u0434\u0435\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u0432\u0430\u0442\u044c NEW, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c &lt;init&gt;. \u041d\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044c, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f JVM <a href=\"https:\/\/docs.oracle.com\/javase\/specs\/jvms\/se7\/html\/jvms-4.html#jvms-4.10.1.9.new\">\u0433\u043e\u0432\u043e\u0440\u0438\u0442<\/a> \u0447\u0442\u043e \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, <a name=\"habracut\"><\/a><\/p>\n<p>  \u042f \u0432\u0437\u044f\u043b <a href=\"http:\/\/asm.ow2.org\/\">ASM<\/a> \u0438 \u043d\u0430\u0447\u0430\u043b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b.<\/p>\n<h3>\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u00ab\u0432 \u043b\u043e\u0431\u00bb<\/h3>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u044e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0435\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430:  <\/p>\n<pre><code class=\"java\">MethodVisitor methodVisitor = classVisitor.visitMethod(ACC_PUBLIC | ACC_STATIC,                                                        FACTORY_METHOD_NAME,                                                        Type.getMethodDescriptor(Type.getObjectType(classToInstantiateInternalName)),                                                        null,                                                        null); methodVisitor.visitCode(); methodVisitor.visitTypeInsn(NEW, classToInstantiateInternalName); if (invokeObjectConstructor) {     methodVisitor.visitInsn(DUP);     methodVisitor.visitMethodInsn(INVOKESPECIAL, Type.getInternalName(Object.class), &quot;&lt;init&gt;&quot;, Type.getMethodDescriptor(Type.VOID_TYPE), false); } methodVisitor.visitInsn(ARETURN);  methodVisitor.visitMaxs(1, 0); methodVisitor.visitEnd(); <\/code><\/pre>\n<p>  \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438, \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0437 \u0432\u044b\u0437\u043e\u0432\u0430 &lt;init&gt; \u0438\u043b\u0438 \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c &lt;init&gt; \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Object). \u041a\u0430\u043a \u0438 \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c \u044d\u0442\u043e \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u0432 \u043e\u0431\u043e\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c VerifyError, \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c \u00abExpecting to find object\/array on stack\u00bb (\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 <i>type uninitialized<\/i>), \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u00abCall to wrong initialization method\u00bb.<\/p>\n<h3>\u0413\u0434\u0435-\u0442\u043e \u044f \u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b<\/h3>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u0442\u043e \u0442\u0430\u043c \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0447\u0442\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u0443\u043f\u0435\u0440\u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e Serializable. \u042d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 ObjectStreamClass, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0430\u0433\u0438\u044e \u0432 \u0432\u0438\u0434\u0435 sun.reflect.ReflectionFactory.newConstructorForSerialization(). \u041f\u043e\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c:  <\/p>\n<pre><code class=\"java\">Constructor&lt;Object&gt; objCons = Object.class.getConstructor(); Constructor&lt;?&gt; c = sun.reflect.ReflectionFactory.getReflectionFactory().newConstructorForSerialization(noConstructorClass, objCons); Object instance = c.newInstance(); logger.info(&quot;Instance: {}&quot;, instance); <\/code><\/pre>\n<p>  \u0418 \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e!<\/p>\n<h3>\u0418\u043c\u043f\u043e\u0440\u0442\u043e\u0437\u0430\u043c\u0435\u0449\u0435\u043d\u0438\u0435<\/h3>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 ReflectionFactory \u0438 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u043d\u0443\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0432 \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u044f\u0445. \u041f\u043e\u043a\u043e\u043f\u0430\u0432\u0448\u0438\u0441\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 OpenJDK \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0432 \u0438\u0442\u043e\u0433\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0441\u044e \u0433\u0440\u044f\u0437\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0448\u0430\u043c\u0430\u043d\u0438\u0432 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 OpenJDK \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0431\u0430\u0439\u0442\u043a\u043e\u0434 \u0438 \u0432\u0438\u0434\u0438\u043c \u00ab\u0444\u0438\u0433\u0443\u00bb, \u0442\u0430\u043c \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u0434 \u0447\u0442\u043e \u0438 \u0443 \u043d\u0430\u0441, \u043d\u043e \u0442\u0443\u0442 \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0411\u0430\u0439\u0442\u043a\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre> public class sun.reflect.GeneratedSerializationConstructorAccessor1 extends sun.reflect.SerializationConstructorAccessorImpl {                      public sun.reflect.GeneratedSerializationConstructorAccessor1();                                                                                    Code:                                                                                                                                                0: aload_0                                                                                                                                        1: invokespecial #36                 \/\/ Method sun\/reflect\/SerializationConstructorAccessorImpl.&quot;&lt;init&gt;&quot;:()V                                      4: return                                                                                                                                                                                                                                                                                      public java.lang.Object newInstance(java.lang.Object[]) throws java.lang.reflect.InvocationTargetException;                                         Code:                                                                                                                                                0: new           #6                  \/\/ class com\/example\/test\/classes\/NoConstructor                                                              3: dup                                                                                                                                            4: aload_1                                                                                                                                        5: ifnull        24                                                                                                                               8: aload_1                                                                                                                                        9: arraylength                                                                                                                                   10: sipush        0                                                                                                                               13: if_icmpeq     24                                                                                                                              16: new           #22                 \/\/ class java\/lang\/IllegalArgumentException                                                                 19: dup                                                                                                                                           20: invokespecial #29                 \/\/ Method java\/lang\/IllegalArgumentException.&quot;&lt;init&gt;&quot;:()V                                                   23: athrow                                                                                                                                        24: invokespecial #12                 \/\/ Method java\/lang\/Object.&quot;&lt;init&gt;&quot;:()V                                                                     27: areturn                                                                                                                                       28: invokespecial #42                 \/\/ Method java\/lang\/Object.toString:()Ljava\/lang\/String;                                                    31: new           #22                 \/\/ class java\/lang\/IllegalArgumentException                                                                 34: dup_x1                                                                                                                                        35: swap                                                                                                                                          36: invokespecial #32                 \/\/ Method java\/lang\/IllegalArgumentException.&quot;&lt;init&gt;&quot;:(Ljava\/lang\/String;)V                                 39: athrow                                                                                                                                        40: new           #24                 \/\/ class java\/lang\/reflect\/InvocationTargetException                                                        43: dup_x1                                                                                                                                        44: swap                                                                                                                                          45: invokespecial #35                 \/\/ Method java\/lang\/reflect\/InvocationTargetException.&quot;&lt;init&gt;&quot;:(Ljava\/lang\/Throwable;)V                     48: athrow                                                                                                                                      Exception table:                                                                                                                                     from    to  target type                                                                                                                               0    24    28   Class java\/lang\/ClassCastException                                                                                                0    24    28   Class java\/lang\/NullPointerException                                                                                             24    27    40   Class java\/lang\/Throwable                                                                                              } <\/pre>\n<p>  \u0422\u0430\u043c \u043c\u043d\u043e\u0433\u043e \u043c\u0443\u0441\u043e\u0440\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u044d\u0442\u043e 0, 3, 24, 27  <\/div>\n<\/div>\n<p>  \u0412 \u043f\u043e\u043f\u044b\u0442\u043a\u0430\u0445 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c sun.reflect.SerializationConstructorAccessorImpl \u0438 \u0432\u0438\u0434\u0438\u043c \u0442\u0430\u043c:  <\/p>\n<blockquote><p>Java serialization (in java.io) expects to be able to instantiate a class and invoke a no-arg constructor of that class&#8217;s first non-Serializable superclass. This is not a valid operation according to the VM specification; one can not (for classes A and B, where B is a subclass of A) write \u00abnew B; invokespecial A()\u00bb without getting a verification error.<\/p>\n<p>  In all other respects, the bytecode-based reflection framework can be reused for this purpose. This marker class was originally known to the VM and verification disabled for it and all subclasses, but the bug fix for 4486457 necessitated disabling verification for all of the dynamically-generated bytecodes associated with reflection. This class has been left in place to make future debugging easier.<\/p><\/blockquote>\n<p>  \u0412\u043e\u0442 \u043e\u043d, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0441\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0434\u0443\u043d\u0441\u0442\u0432\u0430 ReflectionFactory.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u043b\u043e \u0437\u0430 \u043c\u0430\u043b\u044b\u043c, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 (\u043a\u0441\u0442\u0430\u0442\u0438 \u0431\u0430\u0433 4486457, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 MagicAccessorImpl) \u0438 \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435. \u0418 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043f\u0440\u0438\u0447\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043e\u0431\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043a\u0430\u043a \u0441 \u0432\u044b\u0437\u043e\u0432\u043e\u043c &lt;init&gt; \u043e\u0442 Object \u0442\u0430\u043a \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e <i>type uninitialized<\/i> \u044d\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u0430 \u0431\u0430\u0439\u0442\u043a\u043e\u0434\u0430, \u0430 \u043d\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 <a href=\"https:\/\/bitbucket.org\/AmShegar\/javabytecodefun\">Bitbucket<\/a>. \u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0435\u0441\u0442\u044c \u0442\u0435\u0441\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442.    \t\t\t\t<\/p>\n<div class=\"polling\">\n<form action=\"\/json\/polling\/\" class=\"poll\" method=\"post\">\n<div class=\"poll_title\">\u0410 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0431\u0430\u0433\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435?<\/div>\n<p>  \t\t<input type=\"hidden\" name=\"post_id\" value=\"252621\"\/> \t\t<input type=\"hidden\" name=\"polling_question_id\" value=\"13281\"\/>  \t\t<\/p>\n<table class=\"answer\">\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv65717\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"65717\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv65717\">\u0414\u0430, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0431\u0430\u0439\u0442\u043a\u043e\u0434<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv65719\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"65719\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv65719\">\u0414\u0430, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv65721\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"65721\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv65721\">\u0414\u0430, \u043a\u043e\u0434 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 (JSP, scripting, etc.)<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"checkbox\" id=\"vv65723\" \t\t\t\t\t\tclass=\"checkbox js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"65723\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv65723\">\u041d\u0435\u0442, \u0443 \u043d\u0430\u0441 \u0431\u0430\u0433\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b<\/label> \t\t\t\t<\/td>\n<\/tr>\n<\/table>\n<p class=\"total\">\u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b\u043e 18 \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u043e\u0441\u044c 8 \u0447\u0435\u043b\u043e\u0432\u0435\u043a.<\/p>\n<\/p><\/form>\n<p class=\"for_users_only_msg\">\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a href=\"https:\/\/habrahabr.ru\/auth\/login\/\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<\/p><\/div>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/252621\/\"> http:\/\/habrahabr.ru\/post\/252621\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t\u0418\u0434\u0435\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u043f\u0438\u043a\u0430 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0438\u0437 <a href=\"http:\/\/habrahabr.ru\/post\/250029\/#comment_8272049\">\u044d\u0442\u043e\u0433\u043e<\/a> \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f.<\/p>\n<p>  \u0418\u0442\u0430\u043a \u0438\u043c\u0435\u0435\u043c: \u043a\u043b\u0430\u0441\u0441 \u0431\u0435\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u0432, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. \u041d\u0430 Java \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0439\u0442\u043a\u043e\u0434\u043e\u043c. \u0418\u0434\u0435\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u0432\u0430\u0442\u044c NEW, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c &lt;init&gt;. \u041d\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044c, \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f JVM <a href=\"https:\/\/docs.oracle.com\/javase\/specs\/jvms\/se7\/html\/jvms-4.html#jvms-4.10.1.9.new\">\u0433\u043e\u0432\u043e\u0440\u0438\u0442<\/a> \u0447\u0442\u043e \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-252755","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=252755"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/252755\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=252755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=252755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=252755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}