jdk的Modifier类中toString(int i)方法中是如何比较的 比如i=256怎么比较得到修饰符为 public static native我看不懂源代码,主要对0x00000001这些个数字不理解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 每个数字位都对应特殊意思。它的toString已经很清楚啊 public static String toString(int mod) { StringBuffer sb = new StringBuffer(); int len; if ((mod & PUBLIC) != 0) sb.append("public "); if ((mod & PROTECTED) != 0) sb.append("protected "); if ((mod & PRIVATE) != 0) sb.append("private "); /* Canonical order */ if ((mod & ABSTRACT) != 0) sb.append("abstract "); if ((mod & STATIC) != 0) sb.append("static "); if ((mod & FINAL) != 0) sb.append("final "); if ((mod & TRANSIENT) != 0) sb.append("transient "); if ((mod & VOLATILE) != 0) sb.append("volatile "); if ((mod & SYNCHRONIZED) != 0) sb.append("synchronized "); if ((mod & NATIVE) != 0) sb.append("native "); if ((mod & STRICT) != 0) sb.append("strictfp "); if ((mod & INTERFACE) != 0) sb.append("interface "); if ((len = sb.length()) > 0) /* trim trailing space */ return sb.toString().substring(0, len-1); return ""; }它是按位与操作的 就是这个位与操作弄不清楚,是多少进制的比如 上面代码中mod=265 PUBLIC=0x00000001 PRIVATE=0x00000002 。。计算的就是 265&0x00000001 265&0x00000002就是想知道要把265转化成什么进制 当然是二进制,因为&操作比较的就是二进制。256 & 0x00001 就是 二进制的 100 & 1 == 0 ,所以它不是public的256 & PRIVATE → 100 & 2 == 0,也不是private的256 & NATIVE → 100 & 100 == 100,说明它代表native这样就是Java中最基本的按位与而已。 每一个二进制位表示一个意思,可以组合成很多种形式,这是一种很实用的技巧,呵呵。使用 (num & op) != 0 可以判断是否具有这一二进制位的值。 高分求“学生信息管理系统”的源代码 用Swing做的 字符串转换成char数组 特殊字符串替换问题 javascript嵌入java代码 过生日喽,散分了,来者有份! 我下载了Microsoft SDK for Java4.0来对注册表操作,碰到一些问题,请教 一个小应用程序,为何用appletviewer没有任何结果? applet问题 java.io.IOException: Not an ISO 8859_1 character:星 Socket疑难求助 继承小问题 百思不得其解,如何判断两个长方形是否有部分重叠呢?
public static String toString(int mod) {
StringBuffer sb = new StringBuffer();
int len; if ((mod & PUBLIC) != 0) sb.append("public ");
if ((mod & PROTECTED) != 0) sb.append("protected ");
if ((mod & PRIVATE) != 0) sb.append("private "); /* Canonical order */
if ((mod & ABSTRACT) != 0) sb.append("abstract ");
if ((mod & STATIC) != 0) sb.append("static ");
if ((mod & FINAL) != 0) sb.append("final ");
if ((mod & TRANSIENT) != 0) sb.append("transient ");
if ((mod & VOLATILE) != 0) sb.append("volatile ");
if ((mod & SYNCHRONIZED) != 0) sb.append("synchronized ");
if ((mod & NATIVE) != 0) sb.append("native ");
if ((mod & STRICT) != 0) sb.append("strictfp ");
if ((mod & INTERFACE) != 0) sb.append("interface "); if ((len = sb.length()) > 0) /* trim trailing space */
return sb.toString().substring(0, len-1);
return "";
}它是按位与操作的
比如 上面代码中mod=265 PUBLIC=0x00000001 PRIVATE=0x00000002 。。
计算的就是 265&0x00000001 265&0x00000002
就是想知道要把265转化成什么进制
256 & 0x00001 就是 二进制的 100 & 1 == 0 ,所以它不是public的
256 & PRIVATE → 100 & 2 == 0,也不是private的256 & NATIVE → 100 & 100 == 100,说明它代表native
这样就是Java中最基本的按位与而已。