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

前言

学习Java有一段时间了,可是一直缺乏一个系统的思想,如今从新经过书籍中、网上的文章,视频等资料,整理与回顾Java的知识点。java

言归正传,让咱们先从了解Java语言开始。程序员

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更具有了显著优点和广阔前景。[引用自百度百科]spring

Java语言的特色

优势

一、简单。编程

Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另外一方面,Java丢弃了C++中不多使用的、很难理解的、使人迷惑的那些特性。去掉了C和C++中许多复杂功能,如指针、操做符重载、多继承、自动的强制类型转换,没有goto语句,没有struct和union等。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员没必要为内存管理而担心。浏览器

 

二、面向对象。安全

面向对象能够说是Java最基本的特性。Java语言的设计彻底是面向对象的,它不支持相似C语言那样的面向过程的程序设计技术。全部的Java程序和applet均是对象,Java支持静态和动态风格的代码继承及重用。它比C++更完全,纯度更高。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。网络

 

三、跨平台性。多线程

与平台无关是 Java 语言最大的优点。其它语言编写的程序面临的一个主要问题是 操做系统的变化,处理器升级以及核心系统资源的变化,均可能致使程序出现错误或没法运行。Java的虚拟机成功地解决了这个问题,Java编写的程序能够在任何安装了 Java虚拟机 JVM 的计算机上正确的运行,Sun公司实现了本身的目标 “一次写成,到处运行”app

具体表现为:框架

  • 结构中立:Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),而后能够在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
  • 可移植:这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统自己也具备很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
  • 解释型:Java程序在Java平台上被编译为字节码格式,而后能够在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程当中须要的类在联接阶段被载入到运行环境中。

 

四、健壮的。

Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

 

五、安全性。

做为网络语言,安全是很是重要的。Java的安全性可从两个方面获得保证。一方面,在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存操做。另外一方面,当Java用来建立浏览器时,语言功能和一类浏览器自己提供的功能结合起来,使它更安全。Java语言在你的机器上执行前,要通过不少次的测试。它通过代码校验,检查代码段的格式,检测指针操做,对象操做是否过度以及试图改变一个对象的类型。另外,Java拥有多个层次的互锁保护措施,能有效地防止病毒的入侵和破坏行为的发生。

 

六、多线程。

在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来建立。一般有两种方法来建立线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类建立的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,所以,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。

 

七、动态的。

Java语言的设计目标之一是适应于动态变化的环境。Java程序须要的类可以动态地被载入到运行环境,也能够经过网络来载入所须要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

 

缺点

固然,全部的事情都不多是完美的,有优势必然会有缺点。

一、效率:由于要先通过编译和垃圾回收机制等,因此速度比较慢!不适合大型的程序,网络游戏等的编程!

二、复杂性,正由于它的功能强大,所以也增长了其复杂性,像当今流行的框架有不少,什么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):微型版,适用于移动设备或嵌入式设备的程序开发。
相关文章
相关标签/搜索