java技术体系基础

编程语言分类:

1、系统级:C, C++, go, erlang

2、应用级:C#, Java, Python, Perl, Ruby, php

编程语言的类别:

指令+数据

1、面向过程:以指令为中心,围绕指令组织数据;

2、面向对象:以数据为中心,围绕数据组织指令;

虚拟机类型:

1、java虚拟机:jvm

2、Python虚拟机: pvm

开发动态网站的应用框架:

1、asp .net, jsp

思考与引申:

1、如果需要在不同的平台上都能使用开发好的java程序,需要在不同的平台上都安装java虚拟机,用以提供java运行的环境。虚拟机虚拟了主机运行时需要的各种库,java需要自己的类库,在这个类库的环境中运行自己的程序。这个虚拟机系统在不同平台有不同的版本。

2、如果在其中一种平台上的库所提供的API遵循POSIX规范的话,那么在这个平台上开发的源代码,拿到不同的平台上也是可以编译运行的。如果在A平台编译成二进制程序后,拿到B平台上是不能运行的,因为它们的ABI不一样。



动态网站:

客户端动态:服务器的源代码在客户端运行

服务器动态:服务器的源代码在服务器端运行,通过CGI(通用网关接口)技术实现。

释义:CGI

运行在前段的web服务器收到来自客户端的请求后,把请求的uri发送给后端的应用程序服务器,调用应用程序服务器在服务器端         运行以后,把生成的结果返还给客户端,这种技术称之为CGI技术。

webapp server:

CGI早期实现都是通过在后面运行一个服务器,我们称之为webapp server,基于不同的框架,需要在后台安装不同的服务程序。

jsp: tomcat, jboss, jetty

注:tomcat服务可以和前端的html服务器进行交互,交互成可以使用http协议或专用的CGI协议。

php: php-fpm



Java编程语言的历史发展:

SUN, James Gosling, Green Project, Oak, Java, SunWorld

1995: Java 1.0, Write Once, Run Anywhere 注:一次编写,到处运行

1996: JDK (Java Development Kit),包含一个JVM(Sun Classic VM)

JDK 1.0: JVM, Applet, AWT

1997:JDK 1.1    注:JDK java开发工具箱

JAR文档格式、JDBC、JavaBeans

1998:JDK 1.2

Sun把Java技术分拆为三个方向:Java 2

J2SE: Standard Edition

J2EE:Enterprise Edition

J2ME:Mobile Edition

代表性技术:EJB, Java Plug-in, Swing,

JIT编译器: Just In Time,即时编译器

2000:JDK 1.3

1999:HotSpot虚拟机 注:java虚拟机技术,起初由sun公司收购所得

2002:JDK 1.4

2006年,Sun开源了Java技术;遵循GPL规范;并建立了OpenJDK组织管理此些代码;

虚拟机:JRockit, HostSpot;



Java体系结构:

Java编程语言;       注:编写java程序的源代码

Java Class文件格式; 注:编译的中间代码为字解码,只能在java虚拟机上运行

Java API;           注:在运行时调用java API中的代码所实现的功能

Java VM;            注: java API + java VM 被成为java平台

JVM的核心组成部分:

Class Loader        注:类加载器,加载已经编译好的类文件和其它所依赖的类文件

执行引擎            注:执行引擎是使用C语言研发的,最终java还是要用到标准c库和系统调用。

思考与引申:其实java虚拟机只是一个中间层,它最终还是需要通过执行引擎在本地平台上执行,所以java的API只是一个翻译官。



Java编程语言的特性:

面向对象、多线程、结构化错误处理

垃圾收集、动态链接、动态扩展

三个技术流派:

J2SE ==> Java 2 SE

J2EE ==> Java 2 EE

J2ME ==> Java 2 ME

JAVA虚拟机执行java程序的过程

JVM运行时区域:运行为多个线程

方法区:线程共享;用于存储被虚拟加载的类信息、常量、静态变量等;永久代;

堆:Java堆是jvm所管理的内存中最大的一部分;也是GC管理的主要区域,主流的算法都基于分代收集方式进行:新生代和老年代;线程共享

Java栈:线程私有,存放线程自己的局部变量等信息;每个线程都有自己的栈,存取局部变量等信息

PC寄存器(Program Counter Register),线程独占的内存空间;注:也称为程序计数器,执行字解码的行号的解释器

本地方法栈:



JAVA 2 EE 虚拟机技术包含的子技术:

JAVA 2 SE

Servlet, JSP, EJB, JMS, JMX, JavaMail  注:这些都是专用的类

Servlet Contaier:注:拥有了jsp和servlet这两个组件,我们称之为servlet container

html标签要硬编码在应用程序中;

JSP:注:可以理解为是Servlet的前段程序,jsp能把以下内容转化为Servlet格式

<html>

<body>

<h1>...</h1>

<%

%>      注:java代码放在两个%之间

</body>

</html>

小结:JSP是java中的一个特殊类库,默认并没有被JDK包含,JDK只提供了JAVA 2 SE的标准实现,如果我们想以网页方式进行运行,我们必须保证JAVA代码能够输出html标签,为了便于这些开发,sun公司专门提供了一个规范,叫Servlet规范,基于这种规范,应用程序可以以http或CGI格式的方式来接受用户的请求,以通用的cgi或者http协议能理解用户的http请求,能分析请求,并且能够把用户的请求在本地调用JDK处理以后,构建cgi或http的响应报文,响应给客户端,这种技术就是Servlet技术。html需要内嵌java代码,这就是jsp技术。

jsp工作在servlet的前段,接受用户请求,它可以把请求翻译成Servlet格式,



Web Container:同时提供JDK, Servlet, JSP

Web Container的实现:

商业实现:

WebSphere(IBM)

WebLogic (BEA --> Oracle)

Oc4j

Glassfish

Geronimo

JOnAS

JBoss

开源实现:

Tomcat

jetty

resin

原文地址:http://blog.51cto.com/12523910/2060389

时间: 2024-10-22 02:09:56

java技术体系基础的相关文章

Java 技术体系基础概念

Java 技术体系基础概念 =============================================================================== 概述: =============================================================================== 编程语言: [百度百科解释] 编程语言俗称"计算机语言",种类非常的多,总的来说可以分成机器语言.汇编语言.高级语言三大类.电脑每做的

37 java技术体系基础、tomcat核心概念及使用初步、tomcat配置与应用

02 tomcat核心概念及使用初步 配置环境 node1: CentOS 6.7 192.168.1.121 CentOS 6 部署Tomcat [[email protected] ~]# rpm -ivh jdk-7u67-linux-x64.rpm  [[email protected] jdk1.7.0_67]# vim /etc/profile.d/java.sh export JAVA_HOME=/usr/java/latest export PATH=$JAVA_HOME/bin

Java技术体系大全,准备面试的可以参考一下!

1. JAVA技术体系1.1 Java程序员 ·高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变参数.可变返回类型.增强循环.静态导入 ·核心编程 IO.多线程.实体类.集合类.正则表达式.XML和属性文件 ·图形编程 AWT(Java2D/JavaSound/JMF).Swing.SWT.JFace ·网路编程 Applet.Socket/TCP/UDP.NIO.RMI.CORBA ·Java语法基础 类.抽象类.接口.最终类.静态类.匿名类.内部类.异常类.编码规范 ·Java开发

《深入理解Java虚拟机》第一部分(Java技术体系,Java虚拟机,Java技术趋势)

第一部分 走进Java 1.Java技术体系 Sun官方定义的Java技术体系包括一下几个组成部分: Java程序设语言 各种硬件平台上的Java虚拟机 Class文件格式 Java API类库 第三方Java类库 JDK是用于支持Java程序开发的最小环境,Java程序设计语言.Java虚拟机.JavaAPI类库统称为JDKJRE是支持Java程序运行的标准环境,JavaAPI类库中的JavaSEAPI子集和Java虚拟机统称为JRE 按照Java技术关注的重点业务领域来分,Java技术体系可

JVM(一)-java技术体系

一.java技术体系 1.sun官方所定义的java技术体系包括了如下的几个组成部分:   java程序设计语言 java虚拟机 java API类库   class文件 第三方java类库 2.java技术体系包含的内容如下图所示: (1)JDK:Java Development Kit,包含java程序设计语言.java虚拟机.java API类库,支持java程序开发的最小环境 (2)JRE:Java Runtime Environment(java运行环境),包含java API类库中j

Java加密解密(一)Java加密体系基础

Java加密解密(一)Java加密体系基础 1. JCA(Java Cryptography Architecture) 提供基本的加密框架,如证书,数字签名,消息摘要和密钥对生成器.其主要实现在java.security包中. 2. JCE(Java Cryptography Extension) 在JCA的基础了作了扩展,提供了各种加密算法.消息摘要算法和密钥管理等功能.JDK提供的JCE实现主要在javax.crypto包中.第三方提供的JCE也称为安全提供者.由于出口限制,可能需要一个或

Java 技术体系图

Java 程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 IO.多线程.实体类. 集合类.正则表达式. XML 和属性文件 图形编程 AWT(Java2D/JavaSound/JMF) .Swing.SWT.JFace 网路编程 Applet.Socket/TCP/UDP.NIO.RMI.CORBA Java 语法基础 类.抽象类.接口.最终类.静态类.匿名类.内部类.异常类.编码规范 Java 开发环境 JDK.JVM.Ec

Java技术体系图

Java程序员高级特性              反射.泛型.注释符.自动装箱和拆箱.枚举类.可变              参数.可变返回类型.增强循环.静态导入        核心编程             IO.多线程.实体类.             集合类.正则表达式.             XML和属性文件             图形编程             AWT(Java2D/JavaSound/JMF).Swing.SWT.JFace        网路编程     

Java技术体系

Java程序员高级特性              反射.泛型.注释符.自动装箱和拆箱.枚举类.可变              参数.可变返回类型.增强循环.静态导入        核心编程             IO.多线程.实体类.             集合类.正则表达式.             XML和属性文件             图形编程             AWT(Java2D/JavaSound/JMF).Swing.SWT.JFace        网路编程