javac:
1.javac是将java源代码转化为class字节码的编译器。
2.词法分析:形成Token流
语法分析:形成抽象语法树
语义分析:将难懂的、复杂的语句形成更简单的语法。如形成默认的无参构造器,将字符串整合。
字节码生成器:将经过注释的抽象语法树生成字节码
ClassLoader:
1.作用:将Class加载到JVM中,并审查每个类应该由谁加载(父优先的等级加载机制),将Class字节码重新解析成JVM统一要求的对象格式
2.JVM三层ClassLoader:Bootstrap ClassLoader(加载JVM自身工作需要的类)、ExtClassLoader、AppClassLoader
3.JVM加载class到内存两种方式:隐式加载、显示加载
4.NoClassDefFoundError:JVM隐式加载类时发现类不存在
5.UnsatisfiedLinkError:解析native标识的方法时JVM找不到对应的本机库文件
6.一个tomcat应用对应一个StandardContext
JVM为何要基于栈来设计:
1.为了实现jvm的平台无关性。平台无关性就要保证在没有或者很少寄存器的机器上也要同样正确的执行
2.为了指令的紧凑性。方便网络中传输
深入分析javaweb技术内幕笔记2
最新推荐文章于 2023-12-01 11:36:42 发布