去买本jvm的书吧
这样的问题怎么答阿,就好比食物是怎么消化的,凹凸曼也不知道

解决方案 »

  1.   

    推荐一本书《Inside Java Virtual Machine》, 你可以去研究研究
      

  2.   

    最上层是你的程序,中间是jvm(java虚拟机),jvm和操作系统的底层接口连接,java程序通过jvm建立到底层接口的映射,使java程序实现的功能用机器语言在底层实现。以上基本上师编译语言的执行过程,只不过java是通过jvm来进行映射,而其他的语言室通过编译器进行和机器语言(二进制代码)的转换
      

  3.   

    我只知道最终都是要翻译成机器码,和机器码相对应的汇编中的jmp call 等指令去实现函数调用
      

  4.   

    楼主跟我一样啊,什么事都要追根究底。jvm我也看过,今天总结下。
    java 的四大核心技术是,Java 语言,字节码格式.class,Java API,JVM。JVM主要由 ClassLoader 子系统和执行引擎子系统组成
    运行数据区分为五个部分,他们是方法区,堆,栈,指令寄存器,本地方法栈
    帧有三部分组成分别是局部变量,操作数栈和帧数据。每个 JVM 都可以有多个类装载器ClassLoader,同一个类可以加载多次到不同的 ClassLoader 中,类跨ClassLoader是不可见的,而在同一ClassLoader中是可直接访问的,这样可以隔离一些不安全的类。执行引擎,应该是JVM的核心了,把它看作指令集合。每一个线程都有一个自己的执行引擎,JVM指令用一个字节表示,也就是JVM最多有256个指令,目前JVM已有160个指令。就有这百十个指令组成了我的系统,JVM指令一般只有操作码没有操作数,一般操作数放在常量池和Java栈中,设计指令集的最重要的目标应该是平台独立性,同时在验证bytecode也比较方便。jvm大概是用c编写的,模拟操作系统,执行的只是.class文件。类装载器是分层的,类装载器是用java语言编写的。如何执行程序?
    首先是执行引擎执行类装载器,类装载器加载类,,然后根据.class文件的内容进行解析,解析到内存的数据运行区然后运行,。
      

  5.   

    静态化页面方案
    一般情况下,当我们从客户发出一个请求动作时,服务器首先会出处理这一动作,之后通过调用request.getRequestDispatcher(“”).forward(request, response)方法把处理之后的要显示的内容返回给浏览器显示。
    如果在一段时间内,有大量的请求动作,服力器要消费巨大的资源处理这些动作,会给服务器带来巨大的压力,除此之外当我们在不同时间内有两相同请求的动作时,服务器端仍然是做两次相同的处理,由此产生了冗余的处理。
    为了减轻服务器端处理大量的请求动作所产生的压力、服务器端冗余的处理,于是我们在访问量比较少的时间段内对用户的所有请求动作进行请求,并产生处理好的页面数据。当用户再次访问时,服务器端就不需要再耗费有限的资源去处理,而是直接把事先通过处理产生静态页面返回给用户。从而可以解决服力器端处理请求的压力、去除服务器端冗余的处理。
      

  6.   

    减轻服务器端处理请求的压力的方案:
    在一固定的时间间隔内对用户的所有请求进行处理,并产生相应的静态页面。
    具体做法:
    1、 在项目增加ServletContextListener临听器,当项目重新部署时从资源文件SysConfig.properties中读相应的配置参数。参数包括是否在特定的时间产生html页面,如果是的话,具体产生的时间。
    2、 并在ServletContextListener 中起一定时器,每一段时间(例如24小时)对产生一套最新的html页面。
    3、 通过分析数据库中相关的表把所有的用户动作都建立HttpURLConnection连接并产生相应的html页面,并把这一动作和此动作产生的页面之间的映射存入表actionmappinghtml中。
    4、 之后,当用户在从客户端发出动作时,服力器则直接把其动作对应的页面返回给用户。
      

  7.   

    去除服务器端冗余的处理:
    当用户修改页面时,为了避免下次用户请求此页面时,服务器端再去处理。当用户修改页面时,把服务器所处理的结果保存成页面,当下次用户请求此页面时,直接把此页面返给用户。
    具体做法:
    1、 当用户发出一修改页面的动作时,我们的就建立此动作的HttpURLConnection连接,HttpURLConnection连接并产生相应的html页面,并把这一动作和此动作产生的页面之间的映射存入表actionmappinghtml中。
    2、 之后,当用户在从客户端发出动作时,服力器则直接把其动作对应的页面返回给用户。
      

  8.   

    我只知道表相的,java代码被编译成.class文件,也就是java字节码;然后,再通过jvm虚拟机,转换成特定的机器代码,最终通过机器运行。
    而方法,其功能是解决某个问题。