=======================================================================
张贺,多年互联网行业工作经验,担任过网络工程师、系统集成工程师、LINUX系统运维工程师
笔者微信:zhanghe15069028807,现居济南历下区
=======================================================================
编程语言分类
系统级:C、C++、go
应用级:c#、java、python、perl、ruby、php
系统级编译语言着眼于高性能,比如系统的开发、驱动程序的开发、数据库的开发。
应用级编程语言的着眼点并不是高性能,而是便捷性,比如各种网站。
动态网站
动态网站的研发是应用级编程语言的重点之一。早期的动态网站与现在的动态网站不同,现在的动态网站客户端看的页面是服务端执行过后的结果,基本不需要客户端参与,而早期的动态网站是需要客户端参与的,即使像现在一些网络安全设备厂商的WEB界面还是需要客户端安装相关程序,服务端将源码发送给客户端 ,让客户端自己安装环境执行,比如浪潮的光纤交换机,有的客户是不太会安装的,这种方式叫客户端动态,非常的不方便,我自己是感同深受,而且很不安全,假如有服务端将木马程序传到客户端,客户端还会照样执行。
现在的动态网站是服务端动态,不需要客户端参与,只要能识别超文件传输协议即可,客户端收到的结果是服务端执行后的结果,动态网站执行完成之后,通过CGI技术给负载均衡,负载均衡再通过超文本传输协议发送给客户端,这就方式就是服务器动态。假如你的网站是php语言,那么动态网站的解释器就应该用php-fpm;如果是java开发的,那就用tomcat,nginx与tomcat交互可以通过CGI,也可以通过http协议,因为tomcat本身也支持http所以能通过http协议与其交互,但php-fpm就不行了,php-fpm只能通过CGI与其交互,除非你用的是apache,apache与php交互就可以通过模块的方式,非常高效,只不过现在apache的应用范围比较小了。
编程语言分为面向对象和面对流程的,程序由指令和数据组成,面向对象以数据为中心,面对流程以指令为中心。JAVA是面对对象的。
oracle把sun收购后,开始向使用sun公司技术的公司收费,开始一场旷日持久的官司,所说连法官为了能够更好的处理好这场官司,毅然自学了JAVA程序,光荣的成为了资深AVA程序员。
java编程语言的特性:面对对象、多线程、结构化错误处理,垃圾收集,动态链接、动态扩展
java体系结构分类,相互独立,又相互联系:
JAVA程序的开发流程:
任何系统只要安装上相对应的jvm,java程序就可以跑起来了,jvm针对不同的系统格式是不同的,但是向上提供的接口都是一样的,这也是一次编译,到处运行的原因。
jvm的核心组成部分:
class loader
执行引擎
如上一节所述,当执行引擎执行代码时,会从内存里面开辟出一段空间,这段内存区,大体由以下几部分组成,这几部分有的线程之间共享的,有的是独占的:
方法区,共享的,永久的,存放被虚拟机加载的类信息、常量静态变量
堆是java预留的一段空间,用来存放类执行之后生成的对象,我们知道JAVA不同于C,C需要程序员自己计算内存空间,而JAVA是“垃圾回收器”统一回收,回收的主要内容其实就是堆占用的空间,因为堆空间里面的对象可能调用一次就以后再也不用了,堆空间是最占内存的,而且堆是共享的,回收的时候是分代回收,有“年青代”,有“老年代”,回收的时候是从“老年代”开始回收。
PC寄存器也就程序计数器,程序从CPU被“踢下来”之后,要有个地方记得代码执行到什么地方了,这就是PC寄存器的作用了。
每个线程都有自己的栈(独占),线程被创建的时候就会紧跟着创建一个栈,用来存储线程的局部变量表信息。
本地方法栈:不同的系统系统提供的方法也不一样。
我们上面说过,JAVA有三个分支:SE、EE、ME,下面是SE容器包括的技术:
JRE(运行时环境)=jvm+API依赖的类文件,如果你仅想运行JAVA程序,只安装JRE,就可以了。
JDK=JRE+JAVA语言+开发工具+API
通过上图,我们发现jvm有两种模式:客户端模式和服务端模式
JAVA 2 EE 包括以下技术:
servlet(重点)
jsp(重点)
EJB
JMS
JMX
javamail
JAVA2 EE包括的技术:
servlet ,用于实现CGI,与前端客户端交互,java与php不同,php代理可以嵌入在html当中,但是java早期不行,想要输出,还得自己打印,html标签要硬编码在应用程序当中,通过java代码输出html格式的内容,这对程序员的要求很高,但servlet也的确能实现,就是不太方便。
后来,出现jsp,jsp就是仿照php的那种机制,可以将可以asp代码写到html代码里面,但实际上jsp最终还是得翻译成servlet,不过不用用户进行参与了,jsp自动完成,jsp可以理解成为servlet的前端,减轻了程序员的工作量。
jdk可以提供java se,但想要布置一个jsp网站,仅有java se为够 ,因为没有jsp,jsp在java ee里面,所以最好要安装java ee。
servlet+jdk=servelet contaner
jdk+servlet+jsp =web contaier
sun公司把jdk提供了,jdk和ser认证提供呢? 有一些商业公司将三者结构起来提供:
商业产品:
开源实现:
tomcat
jetty
resin
原文:https://www.cnblogs.com/yizhangheka/p/12431225.html