今天相查ServerSocketChannel的accept()的实现源码,过程如下图
得到// Compiled from ServerSocketChannelImpl.java (version 1.7 : 51.0, super bit)
class sun.nio.ch.ServerSocketChannelImpl extends java.nio.channels.ServerSocketChannel implements sun.nio.ch.SelChImpl {
// Field descriptor #202 Lsun/nio/ch/NativeDispatcher;
private static sun.nio.ch.NativeDispatcher nd;
// Field descriptor #196 Ljava/io/FileDescriptor;
private final java.io.FileDescriptor fd;
// Field descriptor #25 I
private int fdVal;
// Field descriptor #27 J
private volatile long thread;
// Field descriptor #29 Ljava/lang/Object;
private final java.lang.Object lock;
// Field descriptor #29 Ljava/lang/Object;
private final java.lang.Object stateLock;
// Field descriptor #25 I
private static final int ST_UNINITIALIZED = -1;
// Field descriptor #25 I
private static final int ST_INUSE = 0;
// Field descriptor #25 I
private static final int ST_KILLED = 1;
// Field descriptor #25 I
private int state;
// Field descriptor #197 Ljava/net/InetSocketAddress;
private java.net.InetSocketAddress localAddress;
// Field descriptor #38 Z
private boolean isReuseAddress;
// Field descriptor #199 Ljava/net/ServerSocket;
java.net.ServerSocket socket;
// Field descriptor #38 Z
static final synthetic boolean $assertionsDisabled;
// Method descriptor #223 (Ljava/nio/channels/spi/SelectorProvider;)V
// Stack: 3, Locals: 2
ServerSocketChannelImpl(java.nio.channels.spi.SelectorProvider arg0) throws java.io.IOException;
0 aload_0 [this]
1 aload_1 [arg0]
2 invokespecial java.nio.channels.ServerSocketChannel(java.nio.channels.spi.SelectorProvider) [366]
5 aload_0 [this]
6 lconst_0
7 putfield sun.nio.ch.ServerSocketChannelImpl.thread : long [328]
10 aload_0 [this]
11 new java.lang.Object [162]
14 dup
15 invokespecial java.lang.Object() [345]
18 putfield sun.nio.ch.ServerSocketChannelImpl.lock : java.lang.Object [332]
21 aload_0 [this]
22 new java.lang.Object [162]
25 dup
26 invokespecial java.lang.Object() [345]
29 putfield sun.nio.ch.ServerSocketChannelImpl.stateLock : java.lang.Object [333]
32 aload_0 [this]
33 iconst_m1
34 putfield sun.nio.ch.ServerSocketChannelImpl.state : int [327]
37 aload_0 [this]
38 iconst_1
这样乱七八糟的东西,我怎么做才能看java代码?求大侠帮忙