类加载器

类加载器

类加载器概述

Ø Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader

Ø 类加载器也是Java类,因为java类的类加载器本身也是Java类,而其也要被类加载器加载,因此必然有第一个类加载器不是Java类,这就是BootStrap

Ø Java虚拟机中的所有类装载器采用具有父子关系的树形结构进行组织,在实例化每个类装载器对象时,需要为其制定一个父级类装载器对象或者默认采用系统类装载器为其父类级加载!

类加载器之间的父子关系和管辖范围

类加载器的委托机制

Ø 当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢?

首先当前线程的类加载器去加载线程中的第一个类。

如果类A中引用了类BJava虚拟机将使用加载类A的类装载器来加载类B,还可以直接调用 ClassLoader.loadClass()方法来指定某个类加载器去加载某个类!

Ø 每个类加载器加载类时,又先委托给其上级类加载器

当所有祖宗类加载器没有加载到类,回到发起者类加载器,还加载不了,则抛出ClassNotFoundException,不是再去找发起者类加载器的儿子,因为没有getChild方法,即使有,那么多儿子,找哪一个呢?

JavaWeb

web开发的相关知识

Ø Web采用B/S通信模式,用HTTP(HyperTextTransferProtocol)协议通信。无状态通信。

Ø web的特点:

用超文本技术HTML(HyperTextMarkupLanguage)来表达信息。

用统一资源定位URL(UniformResourceLocator)来网络上信息的的精确定位。

使用DNS域名解析来处理IP,以方便记忆。 

用网络应用层协议HTTP来实现与Web服务器之间的通信。底层为TCP/IP协议。

CS & BS

Ø CS开发:CS = Client + Server (客户端+服务器端)  如:QQ

Ø BS开发:BS = Browser + Server (浏览器+服务器端) 如:WEBQQ

动态、静态网页

Ø 动态是指页面的内容或数据是根据程序代码显示的,这些数据一般都来自数据库!

Ø 动态网页:*.jsp (java,jsp1.1)

         *.jspx (jsp2.0)

         *.asp

         *.aspx (.net)

         *.php

         *.do – Java – struts1

         *.action – java struts2

Ø 静态网页:.html     .htm

web应用程序

Ø WEB应用程序是指提供浏览器访问的程序,通常也简称为web应用!

Ø 一个web应用由多个静态web资源和动态web资源组成,如:

htmlcssjs文件

Jsp文件、java程序、支持jar

配置文件等等

组成web应用的这些文件通常我们会使用一个目录组织,这个目录称为web应用所在目录

虚拟目录映射

Ø Web应用开发好后,若想提供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录映射!


你可能感兴趣的:(类加载器)