Java技术是一套完整的IT行业解决方案,其中包含了很多技术。最初是从解决家电设备联网通讯的方案发展起来的,其特点适用于Internet,于是在Internet广泛应用的环境下,迅速发展成为一种计算机语言、一个平台、一个网络计算的架构。

  从整体上划分,Java技术可分成Java编程语言和Java平台。Java编程语言是一种高级编程语言,Java平台是指程序运行的硬件或软件环境。

  Java编程语言的特征:

  1、简单易用

  2、面向对象

  3、跨平台,可移植

  4、多线程

  5、健壮性

  6、安全性

  7、动态

  8、分布式

  9、高性能

  10、结构独立

  Java平台的两个主要组件:

  Java虚拟机(Java Virual Machine,简称JVM);

  Java应用程序编程接口(Java Aplication Programming Interface,简称JavaAPI);

  Java平台按应用领域分为三个版本:

  JavaSE(Java Standard Edition),即Java标准版,主要用于桌面应用开发;(同时作为JavaEE的基础)

  JavaEE(Java Enterprise Edition),即Java企业版,重点定位于企业级别的服务器端分布式软件系统;

  JavaME(Java Micro Edition),即Java微型版,主要应用于嵌入式设备的应用开发;(属于JavaSE的一个子集,但有其特殊的类库支持)

  JavaAPI中是一些已经完成的软件组件,其提供了Java编程语言的核心功能,其提供涵盖了数据库、多媒体、网络、电话、加密、AWT/Swing、脚本、Web服务、XML、编译器、JMX等领域的支持;

  计算机只能直接理解执行机器语言,所有必须要将高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。

  Java的翻译过程分为两个步骤:

  1、将编写好的源文件*.java通过编译器javac.exe翻译成中间语言,Java字节码,即Java类文件*.class,对所有计算机、电器是相同的;

  2、通过JVM(java.exe)将Java字节码文件解释成计算机和电器的机器语言;

  不同的操作系统上的虚拟机负责将相同的字节码转变成本地的机器码,Java程序运行在虚拟机上,隔离具体的操作系统和硬件平台,从而实现Java程序的跨平台性。

  虚拟机的工作原理及步骤:

  1、Java字节码(类文件*.class)通过类加载器(Class Loader)为程序的执行加载所有需要的全部类。类加载的过程是,先加载加载启动类库,在加载扩展类库,最后加载自定义类库。避免了一些非法代码的执行,提高了代码执行的安全性。

  2、通过字节码校验器对加载的字节码进行校验,测试代码段格式,并进行语句和语法的规则检查;确保代码符合JVM规范并且不破坏系统的完整性。

  3、通过字节码校验的代码被送到即时编译器JIT(Just in time complier)翻译成机器代码,每段代码执行前先将其编译为本地机器码;

  4、本地机器码执行结果在操作系统上显示;

  面向对象是一种看待问题和解决问题的方式,本质上是人类日常的直观思维。

  面向对象编程思想中包含两个基本概念:对象和类;

  对象(Object),即日常生活中的“东西”,对象是用来表示现实世界的东西,对象由两个主要组件组成:属性和行为;

  类(Class),是生产对象的模版,用来表示现实生活中各种东西的“图样”和“模版”。

Java技术的特点的更多相关文章

  1. 向Java技术进军

    前两天有个朋友要我帮忙写个打印机服务,要求能应用在.net .Dephi.和java程序上面.看了下需求不难也就串口操作,所以就在周未写了个Win32的动态库,对于一个曾经写MFC程序的.net程序员 ...

  2. 【JAVA】基于MVC架构Java技术荟萃案例演练

    基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...

  3. (转)如何学习Java技术?谈Java学习之路

    51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...

  4. 从程序员到CTO的Java技术路线图 作者:zz563143188

    在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...

  5. [原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推)

    [原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推) 内部推荐职位 高级JAVA技术经理: 岗位职责: 负责项目管理(技术方向),按照产品开发流 ,带领研发团队,制定 ...

  6. Tomcat系列之Java技术详解

    一.概述 1.前言 在前面几篇博客中,我们和大家说了负载均衡器服务器.Web服务器.反向代理服务器.缓存服务器,从这篇博客开始我们和大家说说应用程序服务器,对于上述内容不了解的博友可以去参考一下我们前 ...

  7. 如何精通java技术

    如何精通java技术 | 浏览:173 | 更新:2013-05-15 14:42 | 标签:java 对于一个程序员来说,精通JAVA可以说是他们的最高境界了.那么对于JAVA程序员来说,怎么才能精 ...

  8. java技术栈:一、java编程语言概述

    Java是一种编程语言,起源于20世纪90年代初Sun公司的一个叫Green的项目,该项目主要目的是是开发嵌入家用电器的分布式软件系统,从而使电器更加智能化.因为项目小组成员皆为C++的高手(那个年代 ...

  9. java技术栈:项目概述

    学习使用java到现在也有三年多了,这三年基本是以项目驱动的方式学习,有好有坏,个人觉得好处在于,有一个清晰的目标让你解决,这会让你学习非常迅速有效.当然坏处就是片面,不成体系.这种学习方式在学校以小 ...

随机推荐

  1. rmi远程调用

    1.在服务器端程序中的spring-servlet.xml中添加 <bean id="userService" class="org.springframework ...

  2. [转](一)unity4.6Ugui中文教程文档-------概要

    转载请注明出处:http://blog.csdn.net/u010019717更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/forum.php?mod=guid ...

  3. 自建数据源(RSO2)、及数据源增强

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. PDO数据库抽象层

    PDO的优势在于兼容性,但速度不如mysql和mysqli new PDO($dsn,$username,$passwd[,$options]) $options可以设置数据库连接属性,如: $opt ...

  5. MXNet 学习 (1) --- 最易上手的深度学习开源库 --- 安装及环境搭建

    安装环境:Win 10 专业版 64位 + Visual Studio 2015 Community. 记录下自己在有GPU的环境下安装配置MXNet的过程.该过程直接使用MXNet release ...

  6. CSSOM之getboundingclientrect和getclientrects

    TextRectangle 对于文本对象,W3C提供了一个 TextRectangle 对象,这个对象是对文本区域的一个解释. 对于 i,span,em等display 是inline的标签,在书写文 ...

  7. JSPServlet精华笔记

    一.     JSP (Java Server Pages) JSP是指: ▶    在HTML中嵌入Java脚本代码 ▶    由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码 ▶    ...

  8. (转) linux之sort用法

    sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序. 参 数 ...

  9. mysql查询结果导出到文件

    方法一: 直接执行命令: mysql> select count(1) from table   into outfile '/tmp/test.xls'; Query OK, 31 rows ...

  10. 各种效果的tab选项卡

    ;(function($){ $.fn.tabso=function( options ){ var opts=$.extend({},$.fn.tabso.defaults,options ); r ...