Java概念

java  java不能编译成ABI的模式,所以要编译成类似于opcode的字节码的形式才能运行{bytecode:字节码}  字节码不是二进制,

所以需要特别的解释器才可以运行,即JVM

包含四个独立又彼此相关的技术

  java程序设计语言

  java API

  java class 文件格式(需要运行在jvm上,java程序编译出来的字节码模式遵循那种规范需要java class来定义)

  JVM:java virtual machine{bytecode

 即java程序设计语言结合API开发出来原程序编译成(java  complier编译器)类文件在jvm上运行,

  java成勋设计语言+API开发出来1.java-------->编译java complier------------>1.class

  

JVM的实现方式:(将字节码转换成二进制)

  1.一次性解释器,解释字节码,并执行

  2.即使编译器(依赖于更多内存缓存解释结果)

  3.自适应编译器,(自动进行缓存执行频率比较高的代码)缓存20%左右的代码,提供80%的速度

    

JVM: Hotspot JVM  

(SAN)名字叫做jre 即java running engi(运行)jdk 即java开发环境=JVM+JAVA SE API jdk包含jre(开发+运行)=JAVA+API+JVM,是用于java程序开发的最小环境。

JVM: OpenJDK  (Oracle  (开发+运行+开源)

JAVA技术分为三类,

  JAVA  SE  Standard  Edition

  JAVA  EE  Enterprise  Edition

  JAVA  ME  Mobile  Edtion

  

 CGI: common gateway interface

 作用:让用户访问某一种资源的时候,触发服务器,调用一种程序来处理请求

 mime,通过html 或http协议转换成文本格式再换成原来的程序

 假如用户请求a.cgi的网页,服务器调用一种程序将a.cgi转换成html返回跟客户端

 

 Servlet:以java语言实现的CGI技术

 MVC:实现页面,数据,业务分离

JSP:是servlet上的特殊类,java server page 可以实现html和jave共同嵌套

       jasper----》servlet----》JVM----》html

.jsp---------.java----------.class

JSP执行效率比php高


Servlet container:servlet容器,接受用户发送的.cgi程序,负责源程序是否发生改变,

web  container:



JVM虚拟机在运行时数据区域

  程序计数器:用来保存java代码执行在那个地方了(是每线程独有的)

  java虚拟机栈:栈是用来保存本地变量,(每线程独有的)

  线程共享内存区

     方法区:

     堆:就是实例出来的对象,所谓的程序溢出就是实例化出来的对象太多,导致内存不够用,就会溢出,

    像java这种高级语言有java回收器,

     本地常量区

  本地方法站:

 引用计数器:垃圾回收器根据进程的引用次数,当引用次数为0的时候,贴上标签

          此对象已死,然后过一段时间垃圾回收站来回收

    垃圾回收算法:新生代对象,老龄化对象

             1.标记+清除,会产生碎片

                  2.复制  每一个对象在存储的时候,存两份,一个真正存数据,一个空闲着,用的时候存数据

         3.标记整理算法 当不用的时候我们移动到另外一端, 

垃圾回收器: 

 serial  一次只能回收一个垃圾,效率比较低,之后出生了并行的回收器,名字叫parnew,能够实现多线程回收(多颗cpu才可以)

 Parallel Scavenge 吞吐量比较高,类似于ParNew,优点是收集垃圾占用时间少

 Parallet old 多线程

 CMS:并行标记清除器,concurrent mark sweep,标记清楚算法,并发收集,低停顿,吞吐量高  清除垃圾占用虚拟机的时间很短

      缺点:无法清除浮动垃圾,指的是正在运行的进程产生的垃圾

       由于基于标记,清除会产生碎片

Java配置参数:

      -xx:+option:开启此参数的功能

 -xx: -option:关闭参数

 

 

类的生命周期,

   加载,loading   

   验证,verification  文件格式验证,字节码验证 

   准备,preparation

   解析,resolution  

   初始化,initilization

   使用,using

   卸载,unloading

   

Sun JDK监控和故障处理工具

  jps,jvm process status tool:显示指定系统内所有的hotspot虚拟机进程的列表信息

  jstat,jvm statistics monitoring tool,收集并显示hotspot虚拟机各方面的运行数据

  jinfo,现实虚拟机配置信息  jinfo -h

  jmap:生成某hotspot虚拟机的内存转储快照,调试的时候才可以用到

  

  可视化工具:

    jconsole:java的监视与管理控制台

jvisualvm:

  

 

 

 

 

 


你可能感兴趣的:(java,jvm,jdk)