java基础知识

 

Java

1、谈谈你对java的理解

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

如何实现?

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

  语言特性(泛型,反射,lambda表达式)

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

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

  异常处理

2、JVM如何加载 .class文件

 

 

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

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

  → native interface 融合不同开发语言的原生库为java所用

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

3、谈谈反射

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

 

 

 

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

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

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

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

 

5、谈谈ClassLoader(抽象类)

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

 

6、ClassLoader的种类

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

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

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

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

 

posted @ 2019-08-27 09:22  IT_longlong  阅读(215)  评论(0编辑  收藏  举报