java基础知识

 

Java

一、谈谈你对java的理解

  与平台无关性(一次变异到处运行)java

如何实现?网络

  → GC(垃圾回收机制。会自动释放堆内存)并发

  语言特性(泛型,反射,lambda表达式)操作系统

  面向对象(封装,继承,多态)对象

  类库(java自己自带的一些集合和并发库,网络库,IO等)blog

  异常处理继承

二、JVM如何加载 .class文件

 

 

      → class loader 根据特定格式,加载class文件到内存内存

  → execution engine 对命令进行解析(完成后即提交到操做系统中执行)开发

  → native interface 融合不一样开发语言的原生库为java所用编译器

  → runtime data area JVM内存空间结构模型

三、谈谈反射

Java反射机制是在运行状态中,对任意一个类,都可以知道这个累的全部属性和方法;对于任意一个对象,都可以调用他的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

 

 

 

四、类从编译到执行的过程

  → 编译器将Robot.java源文件编译为Robot.class字节码文件

  →ClassLoader将字节码转换为JVM中的Class<Robot>对象

  → JVM利用Class<Robot>对象实例化为Robot对象

 

五、谈谈ClassLoader(抽象类)

ClassLoader在java中有这很是重要的做用,它主要工做在Class装载的加载阶段,其主要做用是从系统外部得到Class二进制数据流,它是Java的核心组件,全部的Class都是由ClassLoader进行加载的,ClassLoader负责经过将Class文件里的二进制数据流装载进系统,而后交给Java虚拟机进行链接、初始化等操做。

 

六、ClassLoader的种类

    一、BootStrapClassLoader :C++编写,加载核心库java.*,(java.lang.*)

    二、ExtClassLoader :Java编写,加载扩展库javax.*

    三、AppClassLoader :Java编写,加载程序所在目录

    四、自定义ClassLoader :Java编写,定制化加载

相关文章
相关标签/搜索