ObjectInputStream 和 ObjectOutputStream 都是和对象 Serializable 有关。
创建 ObjectOutputStream 的过程。
阅读全文
抽象类,提供了一个 read 方法来读取字节。这个方法是一个抽象方法交由具体的子类来实现。
12345
public abstract class InputStream implements Closeable { // 对象要实现 InputStream 的类, // 需要实现下面的方法。 public abstract int read() throws IOException}
java 中关于文件操作的类
An abstract representation of file and directory pathnames.
1234567891011121314151617181920212223242526
public FileInputStream(File file) throws FileNotFoundException { // FileInputStream 类并没有存储 file 引用,只是使用了 // file.getPath() 来获得文件的存储路径。 String name = (file != null ? file.getPath() : null); SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkRead(name); } if (name == null) { throw new NullPointerException(); } if (file.isInvalid()) { throw new FileNotFoundException("Invalid file path"); } // 创建 FileDescriptor 对象, fd = new FileDescriptor(); fd.incrementAndGetUseCount(); this.path = name; // 打开文件 open(name);}private native void open(String name) throws FileNotFoundException
JVM 是如何实现 Java 语言的 对象系统呢?
使用 klass-oop 对象模型
深入探究JVM | klass-oop对象模型研究
123456
public class Hello{ private static native void say(); public static void main(String[] args){ say(); }}
// 不同平台所共享的入口java.c hotspot/src/share/tools/launcher
// 不同平台提供相应的实现java_md.c
win32
hotspot/src/os/windows/launcher
12345678
public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) map.set(this, value); else createMap(t, value);}
hadoop 官网
参考 JVM规范,6.5 Instructions 其中的指令集: