J2那么几个E和Web基础。01-java技术体系基础。

收PHP童鞋的举报:

java体系基础

 

理论

  1. 编程语言:

  2. 系统级: C, C++, go, erlang …

  3. 应用级: C#, Java, Python, Perl, Ruby, php

    • 虚拟机: jvm(java虚拟机), pvm(python的虚拟机)
    • 动态网站: asp, .net, jsp, php
  4. 动态网站:

  5. 客户端动态: 数据处理在客户端进行, 早期是这般实现, 但非常勿安全,
    现在着力都废弃.
  6. 服务器动态: 用CGI协议即将处理的次转交给语言运行。
    • CGI的片实现:
    • webapp server:
      • jsp: tomcat, jboss, jetty
      • php: php-fpm
  7. java编程语言

  8. SUN公司付出并初步源

  9. 作者: James Gosling
  10. 项目: Green Project
  11. 原名: Oak
  12. 复叫: 1995年更名为java, 在SunWorld大会正式发布Java 1.0本
  13. 特征: Write Once、Run Anywhere, 翻译过来就是一样糟编写, 到处运行。
  14. java的历史
    • 1995: java 1.0
    • 1996: JDK(Java Development Kit, 翻译java开发工具箱),
      包含一个JVM(SUN Classic VM,经典的jvm),
      当时的jvm是纯说运作,所以性能好低。
    • 1997: SUN发布jdk 1.1
    • 1997: JDK 1.2
    • SUN把java技术分拆为老三只方向:
      • J2SE: Standard Edition
      • J2EE: Enterprise Edition
      • J2ME: Mobile Edition
    • 代表性技术: EJB, JAVA Plug-in, Swing, JIT编译器(即经常编译器)
    • 1999:HotSpot虚拟机
    • 2000:JDK 1.3
    • 2002: JDK 1.4, 此时jdk变得死去活来成熟了
    • 2006: Sun开源了java技术, 遵循GPL规范,
      并建立了OpenJDK组织管理是来代码;
    • 2007: 发布JDK 1.7, 里程碑
  15. java虚拟机: JRockit, HotSpot;
  16. Java体系布局:
    • java编程语言
    • Java Class文件格式
    • Java API
    • Java VM
  17. java的实施流程:

    • .java: java的源代码
    • .class: java的类公事, 类文件要遵循一定之科班,
      使得编译好之文书能够当依照规范之机械上运行, 最终都设当jvm上运行
    • java代码编译过程

      图片 1

    • 首先 *.java 源码经过预先编译后, 会变为 *.class 文件。

    • *.class 文件运行而要调用其他的近乎公事,比如达图, 1.class,
      2.class不怕会见加载进来一起运行。

    • jvm的主干部分:

    • Class Loader
    • 推行引擎

    • 如图

      图片 2

      1. Class Loader,
        类加载器先加载需要实行之程序类文件(需要先编译好)和Java
        API的类公事。
      2. 实行引擎就在操作系统及推行Class Loader加载的类公事。
  18. Java编程语言的性状:

    • 面向对象、多线程、结构化错误处理
    • 废品手机、动态链接、动态扩展
    • GC: 垃圾回收器, 主要面向堆内存空间中之污染源回收
  19. 其三只技巧派

    • J2SE ==> Java 2 SE, java标准版
    • J2EE ==> Java 2 EE, java企业版
    • J2ME ==> Java 2 ME, java微缩版
  20. jdk 1.5含的技巧

  21. 图片 3

  22. Java Language: JAVA语言
  23. Dewelopment Tools & APIs: 开发工具和API
    • java: java语言
    • javac: java语言编译器
    • javadoc:
      java文档,支持从程序源代码中抽取类、方法、成员等注释形成一个及源代码配套的API帮助文档。
    • apt: 源代码文件进行检测找有里面的annotation后, 使用annotation
      processors来处理annotation。而annotation
      processors使用了一致套反射API并持有对JSR175规范的支撑。
    • jar: java归档命令
  24. Deployment Technologles: 部署技术
    • Deployment, 冷部署
    • Java Web Start, 通过web页面部署
    • Java Plug-in, 通过java插件部署
  25. User Interface Toolkits: 用户接口工具箱
  26. Integration Libraries: 集成库
  27. Other Base Libraries: 其他基本库
  28. lang & util Base Libraries: 语言工具基本库
  29. Java Virtual Machine: Java虚拟机
    • Java Hotspot Client Compiler
    • Java Hotspot Server Compiler
    • jvm支持混合模式, 既是客户端又是服务端
  30. JDK与JRE

    • JDK包含jre, 但jre不包含JDK
    • JRE没有Java Language和Dewelopment Tools & APIs
    • JRE仅负责运行JAVA代码
    • JDK调试开发java代码
  31. JVM运行时区域, 运行为多线程

  32. 图片 4

  33. 方法区: 线程共享, 用于存储于虚拟机加载的接近消息、变量、静态变量等;
    该方法区的变量是持久代的, 也就是是趁进程的生命周期而终结。
  34. 堆放: java堆是jvm所管理之内存中极度老之一模一样片段, 也便是GC管理的重大区域;
    主流的算法都冲分代收集方式展开, 新生代和始终年代, 线程共享;
  35. Java栈:
    • 线程私有, 存放线程自己的局部变量等消息;
    • 线程私有, 生命周期与线程相同, 所以线程启动就机关吗该创造一个储藏室,
      只不过虚拟机栈描述的凡java方法执行内存模型,
      说白了便是每个方法为执行时, 都见面叫其创造一个栈针,
      用于存储线程自己的一些变量, 操作数, 动态连接, 方法道等等;
  36. PC寄存器(Program Counter Register)
    • PC寄存器也如程序计数器, 这段空间是相同截老小的内存空间,
      它的要意图好视作是时线程所推行字节码行号的指示器。
      例如计算机执行另外一个主次时, 一段代码有N个指令,
      CPU取一漫长指令运行一漫漫指令, 那么CPU必须有条指针是负于当时长长的指令的,
      而这个指针就于CPU的寄存器中,
      里面保留了生一样次等我应当运行代码或指令所在内存空间的地方。这段空间就让指针寄存器;
      对于java 而言, 它是运作于虚拟机上的,
      所以它用协调组织同段内存空间,
      为每个线程在该jvm内部维持其先后计数器。所以说程序计数器是每个线程都揽的。
    • 她是一个生有点之内存空间,
      里面保留了时线程已经运行至之指针的行号(或者下一行)。
    • 线程独占的内存空间。
  37. 地方方法栈: 用于在哪个主机上执行的蓄意方法的,
    所以具体的计是乘让阳台的。
  38. 每个线程都发生谈得来把的一些, 和共享的部分。

  39. JAVA 2 EE包含:

  40. JAVA 2 SE

  41. Servlet、JSP、EJB、JMS、JMX、JavaMail
    • Servlet: 用在server端的应用程序,
      可以由此CGI商量或其它协商以及前者进行数量交互。
  42. Servlet Contaier工作法: Servlet容器, Servlet是一个像样
    • println(‘<\h1>’)
    • html标签而硬编码在应用程序中; 后来起jsp,
      jsp就简化了程序员要硬编码html的问题。
  43. JSP的劳作措施:

    <html>
    <body>
      <h1> .. </h1>
    <%
      内部java代码
    %>
    </body>
    </html>
    
    # jsp工作在Servlet的前端, 这样程序员在调用Servlet的时候就不用自己硬编码写html了。
    # jsp能让java代码内嵌在html中
    
  44. JDK只供了java 2 SE底科班落实

  45. Web Container: 由三有些构成
    • JDK
    • Servlet
    • JSP
    • 内Servlet和jsp是一律种植标准, JDK是SUM开源。
  46. Web Container的实现
    • 贯彻: 就是用JDK、Servlet, JSP组织在共同
    • 商贸实现:
    • WebSphere: IBM 企业级EE容器
    • WebLogic: (BEA –> Oracle)
    • Oc4j
    • Glassfish
    • Geronimo
    • JOnAS
    • JBoss
    • 开源实现
    • tomcat
    • jetty
    • resin
  47. 其三种开源实现之相比

    • 比的版tomcat 7, Jetty 7, Resin 3.1 – Compiler
    • tomcat:

    • 得举行啊单独的服务器运行。内置web server

    • 支撑远程部署和管制。
    • 统统开源
    • 编译所有Jsp, 大约要8s横。

    • jetty: 轻量级web容器

    • resin: 高性能J2EE Application server
    • 可以以来上要举行开源项目可, 但不允许做商业类
  48. 开源JDK:

  49. Apache Harmony(2011年10月都停止开发)
  50. OpenJDK
我觉得不用讲太基础的语法,基础语法大家自己去看,主要讲讲java web开发的一个流程,从开始写代码,到编译,发布,上线,回滚整个流程
大体上的环节,以及需要用到哪些工具
具体咋用…
还有java的东西太多了,什么j2ee j2me,什么tomcat, resin啥的,都是什么关系,我是搞不懂

 

 

如上所述上一致首写的提的下是为此无达到了。但是《极限编程》里关系的季单价:沟通,简单,反馈及胆略。如果自己无事先勾勒有一个样子来,客户自己或许为绝非呀清晰的概念。我们须敢于丢弃代码。编码和编,在修改中走向成熟。

 

J2SE,J2ME,J2EE的2本来是指Java1.2随后的本,因为是版有个质的飞越,其中包父母委派模型。但是大家现在主导都无亮堂2事先的版长成什么样子,所以现在随即三独样子就更名为Java SE, Java ME, Java EE了。这实则是三个规范,我说自家实现了J2SE就意味着自己得以据此J2SE的组件进行java程序的开支了。JAVA这些平台是java可伸缩性的一个提现。

Java SE

Java Standard Edition 标准版

重点用来桌面程序,控制台开发(JFC
Java foundation classes)。我知道就是是由于Java自己的机件去写有界面。AWT(Abstract Window Tookit),
Swing这些还是java用于画出图形界面的类库。做下界面长成这种典范。也有界面添加之难堪的。比如说:eclipse。咱们用的这个并开发条件就是是Java
SE开发之。

 图片 5

 

Java ME

Java Micro Edition 微缩版

要害用以早期的手机,机顶盒。Java
SE是基础,将她精简一点,再长部分乎运行于资源非常简单的装置而专有的好像。最初计划它是吗顺序厂商提供一个专业,各个厂商如就此好的方案支持Java ME。那么大家只要出Java ME就可吗厂商的产品开发java程序了。现在安卓出现后,大家基本还当为此Android SDK了。这个就算过时了。

 图片 6

Java EE

Java Enterprise Edition 企业版

马上是均等组技术标准和指南。我们现常说之SSH架构(struts+spring+hibernate)就是符合J2EE规范的。虽然咱实在用之匪全是当下几种技术,架构核心是相同,就是说:咱们是举行J2EE的。

 

Web容器

Tomcat, Resin, Jetty都是WEB容器,前几年JBoss,WebSphere,WebLogic也盛行过来在。相当给PHP Web Server。想如果成功的行事且多,实现达标产生异。

 

 图片 7

图片 8

 

提Web容器就只能于Servlet说从。Servlet是故Java编写的劳务器端程序。主要功用是交互式的浏览和改动数据,生成动态Web内容。其实Servlet是可响应任何类型的请,但多数情形下Servlet只所以来扩大基于HTTP协议的Web服务器。

这样说是不是比较空虚?从程序的角度说:Servlet是一个每当javax.servlet包里定义之接口。它吧Servlet的生命周期声明了三独着力方式:init(), service()和destroy()。每个Servlet都设事先这些点子并以他们的生命周期的一定时间由于服务器来调用这些方法。

然说是不是尚是较泛?其实对java出身的童鞋我会一直奉上下面两摆放图:

 图片 9

图片 10

 

简来说:我们就需要关爱业务逻辑的开支,不需关爱请求过来是怎么传到我们付出之类里的,这件事儿是servlet做的。PHP童鞋说:servlet是http协议的java实现库,也发出道理。

 

那Web容器简单的说哪怕是servlet的包裹和促成。运行了web容器,一行代码不用写就好由此http协议看页面了。Tomcat, Resin, Jetty的区别简单的话就是促成方式各异,结果支持之并发数,响应请求速度还吃影响。就类似三只java工程师A,B,C。来一个初要求,找哪个还能够召开,但或许A干的比较快而已。

 

开流程:

java web开发的流水线,从初始写代码,到编译,发布。一个Eclipse就搞定。要放线及环境:编译,发布,上线,回滚。这个一个Jenkins就搞定。

岂写代码还是麻烦看看上一样篇。编译是保留时自动执行之。因为eclipse都是默认勾选了自动build选项。

 图片 11

 

Debug或者是直运行而点击工程,右键Debug As –> Run with Jetty或者Run As –> Run with Jetty就OK了。

 图片 12

 

是动手实验一下马上就是可知明白,关键先下充斥一个eclipse,官网及提议选择生图框中的版。因为我们开的是Java EE。这个中的插件会比咸,不然还要协调下载插件。下载下来eclipse把工程导进去,直接就可运作哒。

 图片 13

 

PHP童鞋反馈说她们习惯人工打印调试,所以用java用命令行的法来叙述又好明把:

  编译: javac命令 比如运行 javac HelloWorld.java
就会见于目下生成一个HelloWord.class文件,.class文件也让字节码文件。这便是编译成功了。

     运行:  java命令  比如运行 java HelloWord.class
控制台上虽见面显示执行结果。

     在resin容器中运行的linux命令:

图片 14

  从者看到只是用java启动了一个resin(resin.jar是一个.class文件集合的压缩包,里面来隐含目录结构的验证文件,java会因那个文件去找寻)。

   
 所有我们刻画的代码都将编译好之.class文件还有需要之类库文件,配置文件,JSP文件等等在一个索引下。

图片 15

 

接下来用以此文件路径配置到Resin配置文件里。

 图片 16

开行就足以了。

 

Jenkins嘛,运行一下就算哼了,一看即亮。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注