什么是流 JAVA程序通过流来完成输入/输出。流是生产或消费信息的抽象,流通过JAVA的输入输出与物理设备链接,尽管与它们链接的物理设备不尽相同,所有流的行为具有相同的方式。这样就意味一个输入流能够抽象多种不同类型的输入:从磁盘文件、从键盘或从网络套接字;…
深入理解JAVA IO系列一:File详解
简介javaIO 从1.4版本开始JAVA引入了NIO,用来提升I/O性能。I/O操作类在包java.io下,大概有将近80个类,这些类可以分为如下四组: 基于字节操作的I/O接口:InputStream和OutputStream 基于字符操作的I…
java序列化详解2
上一篇文章我们了解了什么是序列化以及如何实现序列化,下面我们来继续看看序列化中的其他问题。 序列化静态变量 默认实现Serializable接口的序列化是对于一个类的非static,非transient的实例变量进行序列化与反序列化。刚刚上面也说了,如果要…
java序列化详解
什么是序列化 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。 将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象…
java代理模式详解
什么是代理 代理就是代理方从被代理方获取某些权限,从而为被代理方服务,例如: 我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们…
java类加载详解
JAVA源码编译由三个过程组成:1. 源码编译机制 2. 类加载机制 3. 类执行机制 我们这里主要介绍类加载机制。 一、源码编译 代码编译由JAVA源码编译器来完成。主要是将源码编译成字节码文件(class文件)。字节码文件格式主要分为两部分:常量池和方…
java反射详解
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。 反射机制的优点与缺点 为什么要用反射机制?直接…
java反射传参时int被装箱Integer的解决办法
java在将int类型的数据传递给Object的对象时会自动装箱为Integer对象,从而在获取数据的class对象时获取的是Integer.class,而不是int.class==Integer.TYPE。 java反射传参时int被装箱Integer实…
java反射无法获取方法参数的真正名字
java的变量名,函数名等在编译时并不会按照程序员自己给的名字编译,相反,编译器会一一做替换,比如你的public void fun( String str);中的变量名str在编译之后就不叫str了,而可能是arg0,arg1. parameter反射实…
类名.class, class.forName(), getClass()区别及ClassLoader.getSystemClassLoader().loadClass()
在反射中,我们经常见到类名.class和Class.forName(),以及getClass(),以及加载类的ClassLoader.getSystemClassLoader().loadClass()方法,下面我们来研究一下他们之间的区别。 什么是cla…