Java语言的由来

Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。[引用自百度百科]

Java语言的特点

优点
1、简单。
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性。去掉了C和C++中许多复杂功能,如指针、操作符重载、多继承、自动的强制类型转换,没有goto语句,没有struct和union等。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、面向对象。
面向对象可以说是Java最基本的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。所有的Java程序和applet均是对象,Java支持静态和动态风格的代码继承及重用。它比C++更彻底,纯度更高。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
3、跨平台性。
与平台无关是 Java 语言最大的优势。其它语言编写的程序面临的一个主要问题是 操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或无法运行。Java的虚拟机成功地解决了这个问题,Java编写的程序可以在任何安装了 Java虚拟机 JVM 的计算机上正确的运行,Sun公司实现了自己的目标 “一次写成,处处运行”
具体表现为:
结构中立:Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
可移植:这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
解释型:Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
4、健壮的。
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
5、安全性。
作为网络语言,安全是非常重要的。Java的安全性可从两个方面得到保证。一方面,在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和一类浏览器本身提供的功能结合起来,使它更安全。Java语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。另外,Java拥有多个层次的互锁保护措施,能有效地防止病毒的入侵和破坏行为的发生。
6、多线程。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
7、动态的。
Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
缺点
当然,所有的事情都不可能是完美的,有优点必然会有缺点。
1、效率:因为要先经过编译和垃圾回收机制等,所以速度比较慢!不适合大型的程序,网络游戏等的编程!
2、复杂性,正因为它的功能强大,因此也增加了其复杂性,像当今流行的框架有很多,什么struts,spring,jQuery等等,无疑增加了java的复杂性。

Java的运行机制

其他高级语言的运行机制

计算机高级语言按照程序执行方式可以分为编译型解释型

编译型语言是指在程序执行之前,首先会有一个单独的编译过程,针对特定的平台(操作系统),将高级语言翻译成机器语言,以后执行这个程序的时候,便可以直接运行,这样编译后可以脱离开发环境独立运行,效率也可以高一些。但也有一个缺点,那就是编译语言被编译成特定平台上的机器码,通常无法直接转移到其他平台运行,如果有需求,需要重新将源代码转移到特定平台,针对部分平台进行修改之后,重新编译。C/C++ 等都是编译型语言。

解释型语言是指在运行时才将程序翻译成机器语言,跨平台性较好,但不足之处就是每次执行都需要进行一次编译。相当于把编译型语言中的编译和解释的过程混合到一起同时完成。Ruby,Python等都是解释型语言。

Java程序的运行机制

Java语言比较特殊,Java语言编写的程序也需要经过编译步骤,只不过它并不是编译成特定语言的机器码,而是生产与机器无关的字节码(*.class文件)。这种字节码不能直接运行,需要经过Java解释器(JVM Java虚拟机)来运行。因此,Java语言是先编译,后解释,将这两个步骤分开。

JVM虚拟机

上面介绍到,Java程序将字节码运行需要JVM虚拟机,下面我们来认识一下它。

Java虚拟机,即JVM(Java Virtual Machine)。当Java编译器编译Java代码的时候,生成的是面向JVM的字节码,再由JVM面向各操作系统,因此使用Java语言编写的程序,实际上是运行在JVM之上,而不是运行在操作系统上。

它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。

JVM类似于一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域。复杂执行指令,管理数据、内存和寄存器。

JAVA开发工具包JDK(Java Development Kit)

JDK是JAVA开发工具包的简称,是Sun提供的一套用于开发Java程序的开发包。它提供了编译,运行Java程序所需的各种工具和资源。包含Java编译器,Java运行时环境,常用Java类库等。

Java运行时环境Jre(Java Runtime Environment)

Jre是运行Java程序的必备条件,Jre包含JVM,JVM是运行Java程序的核心虚拟机,而运行Java程序不仅需要核心虚拟机,还需要类加载器,字节码校验器以及大量基础类库,而JDK还包含了开发工具,因此如果只需要运行Java程序,只需要安装Jre即可。

Sun把Java分为Java SE、Java EE、Java ME。

  • J2SE(Standard Edition):标准版,适用于普通应用程序的开发;
  • J2EE(Enterprise Edition):企业版,适用于大型企业级应用程序的开发;
  • J2ME(Mirco Edition):微型版,适用于移动设备或嵌入式设备的程序开发。

java环境变量配置

计算机→属性→高级系统设置→高级→环境变量

Java_Home=D:\Program Files\Java\jdk1.8.0_91

Path=%Java_Home%\bin;%Java_Home%\jre\bin;

Classpath=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

Java语言的简介的更多相关文章

  1. Java语言的魅力

    Java语言的简介 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面 ...

  2. Java语言简介、基础组成、封装、继承、多态、抽象类、内部类、接口

    目录 Java简介 Java语言基础组成 面向对象 对象 封装 构造函数 this关键字 static(静态关键字) 主函数 静态什么时候用呢? 面向对象(数组工具对象建立) 设计模式 继承 成员变量 ...

  3. [Java入门笔记] Java语言简介

    前言 学习Java有一段时间了,但是一直缺少一个系统的思想,现在重新通过书籍中.网上的文章,视频等资料,整理与回顾Java的知识点. 言归正传,让我们先从了解Java语言开始. Java语言的由来 J ...

  4. java语言与jvm虚拟机简介

    一.java语言 1.1 支持面向对象编程oop 强调支持,因为java同样可以面向过程编程. oop的三大特性是:封装.继承.多态. 封装主要针对成员变量而言,oop的思想要求成员变量均为私有,不应 ...

  5. Java语言编程 - Java历史简介

    1.1 Sun公司 介绍Java的历史之前,先介绍一下Java语言的缔造公司,Sun公司,Sun公司的全称是:Stanford University Network.值得一提的是,Sun公司从1982 ...

  6. [零] Java 语言运行原理 JVM原理浅析 入门了解简介 Java语言组成部分 javap命令使用

    Java Virtual Machine  官方介绍 Java虚拟机规范官方文档 https://docs.oracle.com/javase/specs/index.html 其中以java8的为 ...

  7. Java语言简介

    Java即计算机编程语言 1.概念 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Jav ...

  8. 九. 常用类库、向量与哈希3.Java语言包(java.lang)简介

    Java语言包(java.lang)定义了Java中的大多数基本类,由Java语言自动调用,不需要显示声明.该包中包含了Object类,Object类是整个类层次结构的根结点,同时还定义了基本数据类型 ...

  9. java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)

    转自:https://zhangkunnan.iteye.com/blog/2040462 前言 Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet. ...

随机推荐

  1. javascript的常用事件

  2. _ZNote_Qt_QtCreator_Tips_粘贴_历史剪切板

    发现 快捷键 Shift+Command + V 能够出现历史剪切板. 厉害了我的歌

  3. channel和Stream的对比

    这篇文章主要想总结下NIO的channel的传统io中的stream的差别在哪.网上找了很多文章,都感觉只是说了概念.然后自己大概看了下源码,结合概念,整理一下.有些地方可能不是很准确,也希望可以给点 ...

  4. 基于ALTERA SOPC设计的概述

    下图是比较传统的系统设计开发板的设备图 由于元器件比较多,成本,复杂性和功耗都比较高,所以需要一种新的方案来降低成本和复杂性. ALTERAL  就提供了一种SOPC解决方案,将系统的I/O.CPU和 ...

  5. Android-Java-静态成员变量&成员变量&局部变量(内存图&回收机制)

    静态成员变量(回收机制) StaticDemo 和 MyDemo package android.java.oop13; class MyDemo { /** * 定义一个静态变量 */ public ...

  6. while循环 格式化输出 密码本 编码的初识

    第二天课程整理 while 循环 why : while ' 循环' 的意思 what : while 无限循环 how : 1.基本结构 while + 条件 循环的代码 初识循环 while tr ...

  7. itext7知识点研究(PDF编辑)

    取出pdf文档文字 String sourceFolder2 = "E:\\picture2\\租赁合同2.pdf"; PdfDocument doc = new PdfDocum ...

  8. 《机器学习实战(基于scikit-learn和TensorFlow)》第二章内容的学习心得

    请支持正版图书, 购买链接 下方内容里面很多链接需要我们***,请大家自备梯子,实在不会再请留言,节约彼此时间. 源码在底部,请自行获取,谢谢! 当开始着手进行一个端到端的机器学习项目,大致需要以下几 ...

  9. [转]SQL SERVER整理索引碎片测试

    SQL SERVER整理索引碎片测试 SQL SERVER整理索引的方法也就这么几种,而且老是自作聪明的加入智能判断很不爽,还是比DBMS_ADVISOR差远了: 1SQL SERVER 2000/2 ...

  10. python中stack在实际中的简单应用之进制转换

    计算机的世界是二进制的,而人类的世界是十进制的,当数学公式用计算机表达时,经常 要转换.这就用到了进制的转换. 首先,我们先了解一下二进制和十进制的发展历史: 二进制: 现代的二进制首先由大数学家莱布 ...