java的开发主要以http为基础。 反射:主要用于工具和框架的开发。 反射是对于类的再抽象;通过字符串来抽象类。 JAVA类的运行:classLoader:加载到虚拟机(vm) Vm中只能存储对象(动态运行时的概念),.class文件加载到VM上就成为一个对象,同时初始静态成员及静态代码(只执行一 ...
分类:
编程语言 时间:
2018-08-05 12:59:53
阅读次数:
128
类加载器就是负责检索并加载其他Java类或者资源(如文件)的对象,它一般继承于java.lang.ClassLoader这个抽象类(除了BootstrapClassLoader)。 实际上,程序中所有的类都是通过类加载器进行加载的,并且它们都持有各自类加载器对象的引用,可以通过java.lang.C ...
分类:
其他好文 时间:
2018-08-04 12:05:00
阅读次数:
117
针对类加载器的分类与说明 一.类加载器的分类: 1.系统提供的类加载器 1.BootStarp(引导类加载器):负责加载java核心类库,不继承自ClassLoader加载器; 2.Extension(扩展类加载器):负责加载java扩展库(例如sun公司专门为连接数据库设计的JDBC的一组API) ...
分类:
其他好文 时间:
2018-08-04 11:35:49
阅读次数:
147
每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条类加载器链,一般的,我们只会用到一个原生的类加载器AppClassLoader,它只加载Java API等可信类,通常只是在本地磁盘中 ...
分类:
编程语言 时间:
2018-08-01 12:09:58
阅读次数:
180
当我们在eclipse中修改了一个.java文件时,并通过【ctrl + s 】保存了此java文件,相应的bin目录中,会发现.class文件也发生了修改。通常情况下,java文件是在我们的web项目已经启动了的情况下进行修改的,而.class文件早已加载至虚拟机中。因 此,在没有使用热部署插件的 ...
分类:
其他好文 时间:
2018-07-18 01:11:13
阅读次数:
146
一、几个基本概念 GCRoots对象都有哪些 所有正在运行的线程的栈上的引用变量。所有的全局变量。所有ClassLoader。。。 1.System Class.2.JNI Local3.JNI Global4.Thread Block5.Busy Monitor6.Java Local7.Nati ...
分类:
其他好文 时间:
2018-07-17 19:27:25
阅读次数:
187
spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。 devtools的原理 深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类 ...
分类:
编程语言 时间:
2018-07-11 17:06:23
阅读次数:
269
java中class.forName()和classLoader都可用来对类进行加载。class.forName()前者除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。而classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。Class.forName(n
分类:
编程语言 时间:
2018-07-11 15:58:52
阅读次数:
195
一句话概括就是使用反射可以赋予jvm动态编译的能力,否则类的元数据信息只能用静态编译的方式实现,例如热加载,Tomcat的classloader等等都没法支持 Java中编译类型有两种: 静态编译:在编译时确定类型,绑定对象即通过。 动态编译:运行时确定类型,绑定对象。动态编译最大限度地发挥了Jav ...
分类:
编程语言 时间:
2018-07-09 19:20:28
阅读次数:
215