`
文章列表
前言 一般情况下,JDK中提供了Client和Server两种类型的JVM,那JDK是在运行时是如何选择的呢。本文主要探讨默认情况下Windows和Solaris(Linux)是如何选择JVM种类的。 JVM.cfg文件 在JRE_HOME/lib/<arch>(i386)/下存在这个一个jvm.cfg文件,用于配置JVM的种类。 /OpenJDK7/hotspot/src/share/tools/launcher/java.c 下的ReadKnownVMs函数注释详细的说明了该文件的主要格式: /* * jvmcfg := { v ...
描述符与特征签名的区别 概念分析 在学习Java语言和JVM时,可能对字段(方法)的描述符(Descriptor)以及字段(方法)的特征签名(Signatures)这两个概念没有区别清楚。其中描述符是JVM中定义class文件字节码的概念,而特征签名在Java语言层面和java虚拟机层面都有定义,两者的定义并不相同。 1.字段(方法)的描述符 描述符java虚拟机层面的概念,是针对class文件字节码定义的。定义如下: 引用 A field descriptor represents the type of a class, instance, or local variable. It is ...
Java序列化安全机制 前言 上一篇最后我们提到采用java默认的序列化机制是存在安全漏洞的。第一种漏洞就是在网络中传播二进制流时被黑客截获,获取其中的一些敏感信息,比如账号密码以及上文提到的苹果的价格;另一种就是黑客截获到了这些信息后加以修改,再通过网络发送出去,比如恶意修改了苹果价格信息,那么销售商将会面临破产的危机。基于此此,java提供自定义序列化机制来避免第一种漏洞;采用反序列化的验证机制来避免第二种漏洞。另外,一定要理解上一篇文章中提到的序列化流的格式,即分为三部分:序列化头信息部分、类的描述部分以及属性域的值部分,下文中会多次提到。 自定义序列化 所谓java自定义序列化, jav ...
(Disclaimer:未经许可请勿转载。如需转载请先与我联系。) Java序列化的原理 前沿 欢迎进入JDK源码阅读之序列化专题!java序列化从JDK1.1版本就开始,是一项比较成熟的技术。对于初学者可能很容易就能学会如何编写序列化类,但是对其详细的原理以及一些细节上的技术了解还是比较少的。本专题将分三个部分从JDK源代码的角度向大家介绍java序列化相关的知识:     Part1:对序列化协议做出比较深入的探讨,最后总结出序列化的基本算法;     Part2:了解自定义序列化的方法及其原理,理解其在安全方面的重要作用;     Part3:了解java序列化的可重构性,有利于软件的 ...
Global site tag (gtag.js) - Google Analytics