java实例化的几种方式
直接new调用了构造
通过反射调用了构造
clone没有调用构造,但必须实现Cloneable接口,java通过native方法实现
反序列化没有调用构造,通过调用MethodAccessorGenerator#generateSerializationConstructor生成一个新的构造对象,该构造对象不会调用构造方法
通过Unsafe类的allocateInstance()方法没有调用构造,只分配内存空间
java的序列化和反序列化Serializable原理
背景实现Serializable接口就能把对象序列化反序列化出去,那么原理是什么呢?带着以下问题一探究竟
为什么实现这个接口就能序列化和反序列化呢?
序列化和反序列化的内容是什么呢,可以自定义吗?
为什么实现这个接口就能序列化和反序列化呢
java序列化代码 123456789public static void main(String[] args) throws IOException { Object o = new Serializable() { String strValue = "这是内容"; Integer intValue = 999; }; File file = new File(System.getProperty("java.io.tmpdir"), "serializable/"); ObjectOutputStream objectOutputStream = new ObjectOutputStream( ...
环境变量
main方法参数使用:java 类名 【参数1】 【参数2】 【参数3】 .。。。
123public static void main(String[] args) { System.out.println(args);}
System.getenv获取系统环境变量同 linux 下 export
System.getProperty获取java程序变量通过 java -Dk=v配置