易截截图软件、单文件、免安装、纯绿色、仅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类和对象的初始化过程

类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......

JAVA生成【缩略图】方法

/**
  * 创建缩略图片
  *
  * @param orgpath
  * @param filename
  * @return
  * @description: 描述
  */
//此方法对于ssh项目并且针对 上传功能时,非常有用
 public static Boolean createAbbreviateImg(String orgpath, String filename) {
  Boolea ......

JAVA中FileHelper的一个用法

 public boolean writeXML(String content, String filename)
    {  
        String savepath;
        FileOutputStream fout;
//        log.info("content:"+content+ ......

Java设计模式系列教程(一)工厂模式factory

今天和大家一起学习Java的设计模式。本人的水平不是很高,这系列文章只是自己学习的过程,并希望能同大家分享经验。
先说下我对工厂模式的理解:当我们需要某个对象时,最直接的办法是看到这个对象就拿过来。但是当对象非常多的时候,找起来就很不方便。这时就需要一个中介来帮助我们取得想要的东西,这个中介就是工厂(fa ......

Java 复习笔记_第1天

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