易截截图软件、单文件、免安装、纯绿色、仅160KB

java运行环境 类装载器ClassLoader

  今天观看了蓝山老师java背后的秘密相关视频,发现要想写出高性能的程序,一定要对其运行原理以及其运行环境有相当程度的了解。那ClassLoader是相当关键的一个部分。
  先说下java程序运行的基本流程,先将java文件编译为class文件,然后通过ClassLoader(类加载器),加载到Runtime Data Area(类似于内存)中,再交与Execution Engine(相当于CPU)进行执行操作,若java语言有调用其他的语言进行相关计算,则需要用到Native interface这个部分,最终形成Native Libraries,至此,执行完成。
  那看了上面的流程,ClassLoader是一个Class文件的载入器,其载入的方式有预先载入和按需载入两种方式。预先载入主要是载入一些具体的java系统文件,各个java运行必需的类文件;按需载入主要是我们自己所编写的具体的java的类文件。预先载入和按需载入可顾名思义,预先载入是在执行没个程序前都需要进行载入,按需载入是只有在调用具体的类文件时才进行载入。我们可以通过该命令来追踪java程序执行时,所载入的具体的class文件---java  -verbose:class Main(编译好的文件名)。
  按需载入又分为两种方式,为显式和隐式.隐式是我们比较常用的,具体的形式不使用new()关键字,而显式的方法主要是下面两种方式,一个是Class.forName()和ClassLoader.LoadClass()方法.Class.forName在做与数据库的连接时用过,不过以前不了解其含意.这两种方法我目前感觉隐式的用起来更方便,但忽略了具体的载入过程;显式的载入用起来复杂,但对程序具体的执行流程,我们可以进行详细的控制。
具体怎么用这个还没太搞明白,还需再研究下.明天会把classLoader内部的具体构造再研究下。
下面是做这个练习时的具体内容:
//MyClassLoader
import java.io.*;
import java.net.*;
import java.lang.reflect.*;
public class MyClassLoader extends URLClassLoader{
 private static File file = new File("F:\\java\20100108 ");
 public MyClassLoader(){
  super(getUrl());
 }
 public  static URL[] getUrl(){
 try{
  return new URL[]{file.toURL()};
 }catch(MalformedURLException e){
 return new URL[0];
 }
 
 }
}
//A.java
import java.lang.reflect.*;
public class A {
 public static void main(String[] args){
 try{
  


相关文档:

JAVA如何调用DOS命令

用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序模式:
...
Process process = Runtime.getRuntime().exec(".\\p.exe");
process.waitfor( );
...
在上面的程序中,第一行的“.\\p.exe& ......

(转)JAVA的18条BASE

关于Java的基础知识,实践证明学习OO,最终领悟“父类控制流程,子类实现具体的业务逻辑”的OO思想,需要的不是智商而是基础,也就是说,基础越好越快领悟,所以请每位S1学习Java的学员请牢记以下Java领域的基础知识,最后祝各位学员在开发项目前可以领悟OO的真谛,老师也会竭尽全力助你们打通这道通向Java的极速 ......

【转】Java synchronized用法搜集

在Java中,synchronized关键字为防止资源冲突提供了支持,其作用域有二种:
实例范围。
对象实例范围内synchronized使用的两种形式:
实例范围同步方法
publicd class syncTest {

synchronized void aMethod() {
//需要同步使用的代码
}

synchronized aMethod(){}可以防止多个线程同时 ......

Java 复习笔记_第1天

 
方法的重载
:同一个类里面方法的名字相同,方法的参数项(主要是参数类型,参数个数)
不同
,
返回类型可能不同。
      
  
        
重载方法可以具有不同的返回类型,但返回类型本身不足以区分方法的两个版
本。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号