编程语言分类:

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

转载于:https://blog.51cto.com/12523910/2060389

java技术体系基础相关推荐

  1. 2022最新阿里P6+Java技术体系图

    Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地. 有不少朋友问,成为Java架构师除了掌握Jav ...

  2. 【全网最全】你绝对没见过的,Alibaba内部的18份Java技术体系教程

    2017年阿里就面向全球发布了<阿里巴巴Java开发规约>,这一规约集合了众多中国工程师的智慧与经验,帮助全球开发者实现了更为高效.更加容错.更有协作性的Java开发.目前这一规约已经成为 ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 1. JAVA技术体系1.1 Java程序员 ·高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变参数.可变返回类型. ...

  4. 【深入理解Java虚拟机】保姆级整理汇总 第一部分:走近Java (一) Java技术体系

    目录 一.开篇感言 二.正文 1.Java技术体系 1.1 Java技术体系介绍 1.2 JDK和JRE范围 1.3 Java主要产品线 1.4 Java发展史 1.5 Java虚拟机家族 一.开篇感 ...

  5. 史上最全,最完美的 JAVA 技术体系思维导图总结,没有之一!

    利用思维导图绘制的java技术体系,值的一看! https://blog.csdn.net/Sirius_hly/article/details/94335233

  6. Java 技术体系(JDK 与 JRE 的关系)、POJO 与 JavaBeans

    Java 技术体系的分层结构(不同的颜色表示不同的层次),尤其注意 JDK 与 JRE 之间的包含关系: 图见 Java Platform Standard Edition 7 Documentati ...

  7. 《Java 技术体系》之一:Java 技术体系概览

    Java 编程语言诞生以来,围绕它建设而成的生态系统日益庞大而复杂: 它的热度经二十多年仍然不减,如今在互联网行业尤其流行. 本系列以 Java 8 (JDK 8) 为主要研究对象. TIOBE 编程 ...

  8. java加密框架_Java加密解密(一)Java加密体系基础

    标签: Java加密解密(一)Java加密体系基础 1. JCA(Java Cryptography Architecture) 提供基本的加密框架,如证书,数字签名,消息摘要和密钥对生成器.其主要实 ...

  9. 史上最全的 Java 技术体系思维导图

                                                                                                      Ja ...

  10. Java概述-Java技术体系标准:SE、EE、ME

    java诞生于SUN,2009年被Oracle(甲骨文)收购. java之父是詹姆斯.高斯林 1996年发布 JDK 1.0版 目前最新版本是java13,企业目前一般也都用java8来开发应用 ja ...

最新文章

  1. jq 修改swal的标题_js-jquery-SweetAlert【一】使用
  2. 微信小程序页面跳转的方法
  3. 丁可以组什么词_有哪些量词可以用来描述生意经?
  4. Linux 金字塔 的shell命令,linux下保留文件系统下剩余指定数目文件的shell脚本
  5. (05)FPGA内部资源
  6. 一文速览 | 对话生成预训练模型
  7. php 判断是否为安卓,通过http user-agent判断是否为手机浏览器
  8. oVirt guest | VM HOST HA in one Cluster
  9. jieba 词典 词频_python jieba分词(添加停用词,用户字典 取词频
  10. ajax的url怎么将后缀补上_球形门锁怎么拆装?球形门锁安装的方法都包括哪些?
  11. java中序列化一个对象保存在文件中的简单过程
  12. 思科CISCO ASA 5521 防火墙 Ipsec 配置详解
  13. codeblock图形界面编程
  14. 基于PHP的超市库存管理系统
  15. SSO单点登录基本概念实现思路以及小的实例详解
  16. Contest1389 - 2018年第三阶段个人训练赛第四场. 售票(strncmp)
  17. photoshop图层混合模式之颜色模式(HSB体系)
  18. 除了“带地球去流浪”,还有哪些脑洞大开的太空计划?
  19. 京沪高铁上火车位置的实时监视模拟网站的开发
  20. DxO PhotoLab 2.0完整汉化版|DxO PhotoLab 2.0中文版(WinX64)

热门文章

  1. WSL2 jupyter notebook 在windows主机打开
  2. 序列最小最优化算法(SMO)
  3. 常见排序算法整理1(C++实现)
  4. linux容器安装crontab
  5. java 父类获取子类名称_Java入门第十六课:如何用继承的方法定义类
  6. LIBSVM使用方法及参数设置
  7. sharelatex在centos 6.7 64位上的部署(2)
  8. 操作系统课设 Nachos 实验一:Nachos 系统的安装与调试
  9. DLLPasswordFilterImplant:DLL密码过滤器
  10. 注解 @EnableFeignClients 与 @ComponentScan 有冲突