java面试底层常问知识点

1、java的平台无关性是如何实现的?

在这里插入图片描述
Java源码首先被编译成字节码,再由不同平台的JVM进行解析,Java语言在不同的平台上运行时不需要进行重新编译,Java虚拟机在执行字节码文件的时候,把字节码转换成具体平台上的机器指令。

2、JVM如何加载class文件

在这里插入图片描述
Class Loader:依据特定格式,加载class文件到内存中
Execution Engine(解释器):对命令进行解析
Native Interface:融合不同开发语言的原生库为java所用
Runtime Data Area:JVM内存空间结构模型

3、什么是反射

Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意方法和属性,这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
实现反射的方法:
1、Class.forName(“xxx”)

4、谈谈ClassLoader

一、类从编译到执行的过程
1、编译器将Robot.java源文件编译为Robot.class字节码文件
2、ClassLoader将字节码转换为JVM中的Class对象
3、JVM利用Class对象实例化为Robot对象

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

三、ClassLoader的种类:
1、BootStrapClassLoader
2、ExClassLoader
3、AppClassLoader
4、自定义ClassLoader

5、谈谈类加载器的双亲委派机制

在这里插入图片描述
为什么需要使用双亲委派机制去加载类?
1、避免多份同样字节码的加载
2、安全

6、Java的内存模型

1、程序计数器
2、java虚拟机栈
3、堆
4、方法区
5、本地方法栈

JVM三大性能调优参数-Xms -Xmx -Xss的含义
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值