• about java


    ---恢复内容开始---

    JDK=java+API+JVM

    JRE=JVM+java SE API

    JAVA应用领域:

    JAVA SE:Standard Edtion (早期叫J2SE)

    JAVA EE : Enterprise Edtion (早期叫J2EE)

    JAVA ME : Mobile Edtion  (不流行)  Android / Object C (火)

    1995年,JAVA1.0,James Gosling,Green Project,"Write once ,run Anywhere"

    1999年,Hotspot JVM

    2006年,Sun 把大部份产品开源包括Java,遵循GPL

    2009年,Oracle收购Sun

    Java在类库中引用applet,用applet能够为html开发者在页面中提供一个编译好的applet的小程序,只要客户端在浏览器上安装有JRE插件,就能实现applet程序在客户端JVM上运行,由此,客户端动态网站诞生。类似有Active X。但客户端的JRE安装问题,客户端运行程序的安全性,然后CGI(common gateway interface)技术诞生。

    MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。

    MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。

    Servlet:Java特殊类实现的CGI方式,增加了对httpd协议处理能力,理解httpd协议和html处理,但跟CGI一样,任何静态内容还是在JAVA程序中生成,最终有了MVC

    MVC:数据,业务,展示分离;

    php可以将php代码镶嵌到html中,<?php>

    jsp(Java server page)同理<%language="java">

    SSH:Structs(MVC框架),Spring,Hebernate

    jsp运行时先通过Jasper转化成Servlet,而后用JAVA编译器编译成类

    因为jsp(JAVA)技术久,代码规范,对大型,稳定性、性能要求高的站点还是优先jsp,php确实方便

    JSP:让程序员能够在html代码中嵌入java代码从而实现动态站点。

    applet,servlet,Java是用于使用在不同场景下的java类库

    .jsp(Jasper) - .java(JDK,Java编译器,javac) - (JVM) .class 

    Servlet Container:包含了JDK,能让Servlet工作起来的额外组件,

    JVM instance : Servlet Container / Web Container / 

    并发:php通过fastcgi技术,每个请求启动一个php进程;java启动和撤销一个JVM instance代价比php要大很多很多,所以java在每个JVM instance启动多线程;

    线程私有内存区:程序计数器、JAVA虚拟机栈

    线程共享内存区:方法区、java堆(java可以自动实现内存回收GC-garbage collector)

    其中堆区域最可能出现内存溢出

    垃圾回收算法:

    1、标记-清除(有个弊端会产生碎片)

    2、复制算法(避免碎片,但浪费空间)

    3、标记-整理,复制算法的改进(避免内存碎片)

    标记:把类标记为新生代和老龄化

    垃圾回收器:

    Serial  能完成对新生代的回收,一次只收一个垃圾

    ParNew  实现多线程回收,只是Serial改进版本,需求多CPU

    Parallel Scavenge  跟New差不多,比New吞吐量多点儿,降低回收垃圾所占的cpu时间

    Serial Old

    Parallel Old

    CMS:Concurrent Mark Sweep 并行标记清除,标记清楚算法,特点:实现并发收集、低停顿;缺点:无法收集浮动垃圾(只要线程处在,就无法收集),基于标记清除算法可能产生碎片

    G1:garbage first ,较改进:不会产生碎片;能够精确控制停顿(停顿时间用户可以定义)

    实际中,垃圾回收器可以自己去定义,JAVA虚拟机的运行状况要随时监控!

    JDK通常使用sun的,版本选择按照需求来定(java程序员)

    安装JDK: 

    rpm:下载地址http://www.oracle.com/technetwork/java/archive-139210.html

    rpm -ivh jdk-xxxx

    vi /etc/profile.d/java.sh

    #!/bin/bash
    JAVA_HOME=/usr/java/jdk1.8.0_121/
    PATH=$JAVA_HOME:$PATH
    export PATH JAVA_HOME

    . /etc/profile.d/java.sh

    源码

  • 相关阅读:
    最详尽的IntelliJ IDEA项目web项目搭建!!!!!!
    Unable to locate JAR/zip in file system as specified by the driver definition: ojdbc14.jar
    Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory
    MySQL闪退
    mysql:unknown variable 'default -collation=utf8_general_ci'
    更改文本的编码jsp.xml.java
    save is not valid without active transaction
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'deptDao_a' defined in class path resource [beansAndHibernate.xml]: Cannot resolve reference to bean 'sessionFact
    java.lang.ClassNotFoundException: org.springframework.orm.hibernate3.LocalSessionFactoryBean
    linux常用Java程序员使用命令(二)
  • 原文地址:https://www.cnblogs.com/feral/p/6848555.html
Copyright © 2020-2023  润新知