javac -d 将生成的class文件到制定的目录下
在使用java命令时,-classpath 可以简写为-cp ,但是在javac不行,还是得乖乖的输入-classpath
-classpath有先后顺序的,不同的classpath存在相同的class名字的情况下,优先选择前者。
<java SE 6 全方位学习>
在jvm里,所有class的私有成员都不允许在其他类里访问,包括它的inner class。
而在java语言里inner class是可以访问父类的私有成员的
编译器自动给外部类添加一个默认权限的静态的方法(参数为这个外部类的对象),在这个静态方法中调用了外部类的一个私有方法。
内部类就能够访问到外部类的这个静态方法。从而实现了inner class 表面上看起来访问到了外部类的私有方法。
其实是间接的访问方式。
Java Unicode编码深入学习
Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。
UTF-8只是Unicode字符集存储的实现一种方式。之所以流行是因为UTF-8解决了存储的浪费问题,实现也非常简单,兼容ASCII码。
UTF-8的编码规则很简单,只有二条:
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
已知“严”的unicode是4E25(100111000100101),“严”的UTF-8编码需要三个字节,即格式是“1110xxxx 10xxxxxx 10xxxxxx”。从“严”的最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了,“严”的UTF-8编码是“11100100 10111000 10100101”,转换成十六进制就是E4B8A5。
汉字各种编码在线查询:http://bm.kdd.cc/index.asp
、、、、、、、、、、、、、、、、、、、
javac -encoding utf-8 Test.java
编译带有中文命名的java源文件,源文件Test.java编码为utf-8。
但是有一个文件输出的为“????”