一些基础的东西
来源:互联网 发布:矩阵ppt 编辑:程序博客网 时间:2024/04/29 02:46
1 Java寻找class的文件原理
javac -classpath yourpath *.java
java -classpath yourpath *.class
也许很多人都能看懂,设置classpath的目的就是告诉编译器去哪里寻找你的class文件. 不过至少笔者今日才弄懂JVM去查询类的原理,编译器加载类要依靠classloader, 而classloader有3个级别,从高到低分别是BootClassLoader(名字可能不准确) , ExtClassLoader, AppClassLoader.
这3个加载器分别对应着编译器去寻找类文件的优先级别和不同的路径:
BootClassLoader对应jre/classes路径,是编译器最优先寻找class的地方
ExtClassLoader对应jre/lib/ext路径,是编译器次优先寻找class的地方
AppClassLoader对应当前路径,所以也是编译器默认找class的地方
2. Java中汉字转为unicode编码的方法
JDK工具包里,已经包含了这样的工具:native2ascii.exe(在bin目录下)。转换方法:
把要转换的汉字写入一个纯文本文件,比如1.txt (Word不是纯文本格式),然后在命令行(cmd.exe)方式下键入命令 native2ascii.exe 1.txt 回车即可得到unicode的汉字编码.
3 类的嵌入
(1)类可以嵌入另一个类中,但不能嵌入接口中。
(2)在静态方法或其他方法中,不能直接创建内部类对象,需通过手段来取得。
手段有两种:
class A {
class B {
}
B getB() {
B b = new B();
return b;
}
}
static void m() {
A a = new A();
A.B ab = a.getB(); // 或者是 A.B ab = a.new B();
}
(3)一个类继承了另一个类的内部类,因为超类是内部类,而内部类的构造方法不能自动被调用,这样就需要在子类的构造方法中明确的调用超类的构造方法。接上例:
class C extends A.B {
C() {
new A().super(); // 这一句就实现了对内部类构造方法的调用。
}
}
构造方法也可这样写:
C(A a) {
a.super();
} // 使用这个构造方法创建对象,要写成C c = new C(a); a是A的对象。
4 finalize
若在初始化过程中需要覆盖(取消)finalize(),请记住调用super.finalize()(若Object属于我们的直接超类,则无此必 要)。在对finalize()进行覆盖的过程中,对super.finalize()的调用应属于最后一个行动,而不应是第一个行动,这样可确保在需要 基础类组件的时候它们依然有效。
- 一些基础的东西
- 一些基础的东西
- 一些基础的东西
- 一些基础的东西
- 计算机的一些基础东西
- java一些基础的东西
- java基础的一些东西
- css的一些基础的东西
- css的一些基础的东西
- 物联网的一些基础的东西
- 一些基础的常用的东西
- java的一些基础东西,留待记忆。
- HTML元素的一些基础东西,呵呵
- cocos2d(3.0)一些基础的东西
- oracle一些杂乱的基础东西!
- Python一些基础的东西1
- 学习HTML时, 记下的一些很基础的东西
- 调试输出的一些收集--非常基础的东西
- UNIX系统文本编辑软件vi命令详解
- 支持web信息分类的高性能蜘蛛程序 爬虫程序 spider
- 有关this关键字的使用
- 基于网络爬虫的有效URL缓存(英文原文)
- FTP安装
- 一些基础的东西
- sql连接(内连接、外连接、全连接)
- 基于网络爬虫的有效URL缓存(中文译文)
- mysql 遗忘密码后重新设置密码步骤
- 我是新来的
- 字符函数
- Module间的通讯
- VS2008与WDK 环境配置
- 超链接颜色