wangjie-fourth 的个人博客

may be just need work hard

目录
JVM、java的理解
/      

JVM、java的理解

本文主要介绍一个Java程序的启动和运行过程中的行为,以此巩固自己对多线程、JVM的学习。

一个Java程序的生命周期大致如下:

  • 启动
    • 在操作系统新建一个进程,然后申请内存;
    • 加载字节码文件;
  • 运行
    • 线程模型
    • GC处理
  • 结束
    • 杀掉JVM进程

启动

当我们启动一个java程序时,会根据指定的参数申请内存。之后,JVM会去加载字节码文件,这里涉及到:

当把这些必要环境和数据加载好后,这个java程序就算启动成功了。

运行

一个JVM对应的是一个进程,我们可以通过jps来查看它;而一个JVM有很多线程,我们是通过jstack来查看它。

通常这个java程序的所有业务任务都是由一个或者多个线程来完成,这里就涉及到:

java内部还有维护程序健康的任务,那就是GC。这里涉及到:


当一个JavaWeb应用所用的服务器功能其实就是将网络的连接转换到JVM中的一个线程当中。比如:当网络请求到达服务器后,服务器会对这些请求进行简单处理,然后交给Thread对象来处理。

这里涉及的问题有:IO的阻塞问题。

  • 早期服务器的10K问题;
  • IONIO
评论