谈谈你对Java的理解

谈谈你对Java的理解

平台无关性:一次编译到处运行

垃圾回收:不用手动释放内存

语言特性:泛型、反射、lamda表达式

面向对象:封装、继承、多态

类库:本身自带的集合和并发库

异常处理

 

平台无关性如何实现?

Java源码首先被编译成字节码,再由不同平台的JVM进行解析,Java 语言在不同的平台上运行时不需要进行重新编译,Java虚

拟机在执行字节码的时候,把字节码转换成具体平台上的机器指令。

 

JVM如何加载.class文件?

classloader加载 .class文件到内存,engine负责解析,到操作系统中执行

1. Class Loader:依据特定格式,加载class文件到内存

2. Execution Engine:对命令进行解析

3. Native Interface:融合不同开发语言的原生库为Java所用

4. Runtime Data Area:JVM内存空间结构模型

JVM结构: .Class Loader, Runtime Data Area, Execution Engine, Native Interface

 

谈谈反射

Java反射机制是动态获取信息、动态调用对象方法

对于任意一个类,都能够知道这个类的所有方法和属性;对于任意一个对象,都能够调用它的任意方法和属性

反射就是把java类中的一个个成分映射成Java对象

1、通过Class. forName 获取指定类路径的Class对象
2、通过newInstance创建对象实例
3、通过getMethod可以获取所有public的方法(包含继承和实现的方法)
4、通过getDeclaredMethod获取指定对象的方法(不包含继承和实现接口方法)
5、通过setAccessible设置true,获取私有的方法
6、通过Class. getField获取类中字段属性,进行赋值
7、通过invoke 执行指定方法
 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值