现在位置: > > IT/计算机

Java杂谈

漫谈Java基础

Java杂谈(一)——动态加载机制、JDK/JRE

想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提升。

1. 关于动态加载机制

学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制,试图去寻找过其中的细节呢?提供大家一个方法:

在命令行窗口运行Java程序的时候,加上这个很有用的参数:

java –verbose *(.class)

这样会清晰的打印出被加载的类文件,大部分是JDK自身运行需要的,最后几行会明显的看到自己用到的那几个类文件被加载进来的顺序。即使你声明了一个类对象,不实例化也不会加载,说明只有真正用到那个类的实例——即对象的时候,才会执行加载。这样是不是大家稍微能明白一点动态加载了呢?^_^

需要注意的是,在完成了JDK的安装后,会在安装根目录(通常是Program Files)下生成一个以JDK版本为名的文件夹,先前安装的文件都将放至于这里,但是细心看的话,在根目录下还会生成一个名为java的文件夹。前者的JDK的安装路径,而后者是JRE的安装路径。当我们键入上面的命令行时,会列出类的加载目录,粗劣一看的话,这些类似乎都来自JRE中的*.jar文件,其实不然,在JRE\lib…前还有…\j2sdk1.4.2_03,说明JRE出自JDK安装目录,经过查看确实如此。

Java杂谈

2. 关于寻找class文件原理

建议大家在入门的时候在命令行窗口编译和运行,不要借助JCreator或者Eclipse等IDE去帮助做那些事情。尝试自己这样做:

javac –classpath yourpath *.java

java -classpath yourpath *(.class)

可以在命令提示符下通过键入:

Java –classpath

来获得更多命令行参数的用法

也许很多人都能看懂,设置classpath的目的就是告诉编译器去哪里寻找你的class文件。不过至少笔者今日才弄懂JVM去查询类的原理,编译器加载类要依靠classloader,而classloader有3个级别,从高到低分别是BootClassLoader(名字可能不准确),ExtClassLoader,AppClassLoader。

相关文档
JAVA杂谈8
JAVA杂谈8 - 一位网络牛人,一位计算机专业的达人,写的一份强大的文章!今天整理出来,奉献给大家!JAVA的编程技巧,很好,很强大...
JAVA杂谈6
JAVA杂谈6 - 一位网络牛人,一位计算机专业的达人,写的一份强大的文章!今天整理出来,奉献给大家!JAVA的编程技巧,很好,很强大...
JAVA杂谈9——2
Java杂谈(九)--Struts2 最近业余时间笔者一直Java Virtual Machine的研究,由于实习分配到项目组里面,不想从前那么闲了,好不容易才抽出时间来继续这个话题的帖子。我...
JAVA杂谈11
Java杂谈(十一)--JVM 本来这次应该讲讲ORM的几个框架,但是笔者还没有完全总结出来,所以这里先插入一次学习JVM的心得。作为一个Java程序员,如果不了解JVM的工作原理...
JAVA杂谈12
Java杂谈(十二)——ORM 这是最后一篇Java杂谈了,以ORM框架的谈论收尾,也算是把J2ee的最后一方面给涵盖到了,之所以这么晚才总结出ORM这方面,一是笔者这两周比较忙...
java杂谈10
Java杂谈(十)--Spring 笔者最近比较忙,一边在实习一边在寻找明年毕业更好的工作,不过论坛里的朋友非常支持小弟继续写,今天是周末,泡上一杯咖啡,继续与大家分享J2ee...
Java杂谈
JAVA杂谈2 3页 2财富值 JAVA杂谈9 4页 2财富值 java杂谈 暂无评价 14页 5财富值 JAVA杂谈5 3页 2财富值 JAVA杂谈4 暂无评价 3页 2财富值喜欢...
java杂谈
JAVA杂谈9——2 3页 5财富值 java学习杂谈 31页 1财富值 杂谈JAVA 3页 1财富值 JAVA杂谈2 3页 2财富值 JAVA杂谈9 4页 2财富值 JAVA杂谈5 3页 2财富值...
JAVA杂谈7
Java杂谈(七)--接口& 组件、容器 终于又静下来继续写这个主题的续篇,前六篇主要讲了一些J2se方面的经验和感受, 眼下Java应用范围已经被J2ee占据了相当大的一块领...
相关主题
返回顶部
热门文档