Java技术的特点
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技术的特点的更多相关文章
- 向Java技术进军
前两天有个朋友要我帮忙写个打印机服务,要求能应用在.net .Dephi.和java程序上面.看了下需求不难也就串口操作,所以就在周未写了个Win32的动态库,对于一个曾经写MFC程序的.net程序员 ...
- 【JAVA】基于MVC架构Java技术荟萃案例演练
基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...
- (转)如何学习Java技术?谈Java学习之路
51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...
- 从程序员到CTO的Java技术路线图 作者:zz563143188
在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...
- [原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推)
[原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推) 内部推荐职位 高级JAVA技术经理: 岗位职责: 负责项目管理(技术方向),按照产品开发流 ,带领研发团队,制定 ...
- Tomcat系列之Java技术详解
一.概述 1.前言 在前面几篇博客中,我们和大家说了负载均衡器服务器.Web服务器.反向代理服务器.缓存服务器,从这篇博客开始我们和大家说说应用程序服务器,对于上述内容不了解的博友可以去参考一下我们前 ...
- 如何精通java技术
如何精通java技术 | 浏览:173 | 更新:2013-05-15 14:42 | 标签:java 对于一个程序员来说,精通JAVA可以说是他们的最高境界了.那么对于JAVA程序员来说,怎么才能精 ...
- java技术栈:一、java编程语言概述
Java是一种编程语言,起源于20世纪90年代初Sun公司的一个叫Green的项目,该项目主要目的是是开发嵌入家用电器的分布式软件系统,从而使电器更加智能化.因为项目小组成员皆为C++的高手(那个年代 ...
- java技术栈:项目概述
学习使用java到现在也有三年多了,这三年基本是以项目驱动的方式学习,有好有坏,个人觉得好处在于,有一个清晰的目标让你解决,这会让你学习非常迅速有效.当然坏处就是片面,不成体系.这种学习方式在学校以小 ...
随机推荐
- Less 使用指南
简而言之 Less是为了简化css http://less.bootcss.com/features/ 以上链接是Less中文网站,里面有对Less的详细介绍. 一下写在使用中遇到的问题: 1.下载L ...
- linux(centos )mongodb install
file down :http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz /usr/local/ tar zxvf mongo ...
- 手机测试pc端网页
在这个问题上徘徊了 一个钟头了,终于被我找到方法了,就赶紧记下来,以后好查阅!! 主要问题在防火墙,防火墙阻当了80端口,所以怎么用手机访问都是访问不了的.把防火墙关闭就好了! 贴上httpd-vho ...
- InnoDB和MyISAM(转)
两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持. 我作为使用MySQL的用户角度出发,Innodb和MyISAM都是比较喜欢的,但是从我目前运维的数据库平台要达 ...
- 协程 & 用户级(内核级)线程 & 切换开销 & 协程与异步回调的差异
今天先是看到多线程级别的内容,然后又看到协程的内容. 基本的领会是,协程是对异步回调方式的一种变换,同样是在一个线程内,协程通过主动放弃时间片交由其他协程执行来协作,故名协程. 而协程很早就有了,那时 ...
- jquery中通过全局变量来禁止多次ajax请求
var ajaxstate=false;//定义全局变量,通过这个变量来获得当前的ajax状态 $(function(){ $(document).ajaxStart(function(){ $(&q ...
- HBase之show table
import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import or ...
- PHP中的变量详解
php变量通过名只能我们就知道首先变量,是在程序执行期间,可以变化的量. 1.那变量是干嘛的呢,用变量就可以来保存我们值,这就是变量,那么我们接着来看,知道了变量是什么,以及它能干什么,我们再来看一下 ...
- iOS中JS 与OC的交互(JavaScriptCore.framework)
iOS中实现js与oc的交互,目前网上也有不少流行的开源解决方案: 如:react native 当然一些轻量级的任务使用系统提供的UIWebView 以及JavaScriptCore.framewo ...
- wireshark使用简介
wireshark界面简介 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息.与很多其他网络工具一样,Wireshark也使 ...