zoukankan      html  css  js  c++  java
  • [01] Java语言的基本认识


    0、写在前面的话

    我们都知道在计算机的底层,它是识别二进制的,也就是说,计算机只能认识0和1。这主要是因为电路的逻辑只有两种状态,所以只需要0和1两个数字就可以表示低电平和高电平。而计算机是由数不清的逻辑电路组成的,所以根据数不清位数的0和1进行组合来表达信息。

    为了能够和计算机交流,自然需要所谓的计算机语言了:

    机器指令
    • 最早,不就是0和1嘛,拿个纸带在固定位置打孔来区别就可以了,1打孔,0不打孔,再将程序通过纸带机输入计算机运算。这种相当于纯粹由0和1组成的指令,都称不上语言,难以阅读修改,也太过复杂,于是后来出现了汇编语言。

    File:CTR census machine.JPG

    汇编语言
    • 机器语言用0和1表示我们希望计算机执行的一些操作,汇编语言的差别则是在指令的表达方式上,使用了更容易记忆的格式
    • 假设如希望操作 “寄存器BX的内容送到AX中”,机器指令是1000100111011000,汇编指令则是mov ax,bx
    • 但汇编语言是机器指令的符号表示,不同CPU有不同的指令系统,即如果采用不同的CPU,汇编语言也不同,一套代码不能在不同机器上通用
    • 同时,计算机还是只能认识0和1的,所以程序员使用汇编语言写出了源程序,还需要编译器将其转换为机器码,拿给计算机

     
    高级语言
    • 把机器指令转换成人们容易记忆和识别的指令,在汇编语言中已经出现了雏形了,接下来的发展就出现了高级语言
    • 高级语言就是高度封装了机器指令的编程语言,以人类日常语言为基础,有较高的可读性,程序员编写更容易
    • 高级语言在翻译成机器指令时,有 “解释” 和 “编译” 两种方式:
      • 解释 - 编写好的代码,在计算机执行时才进行翻译
      • 编译 - 编写好的代码,会事先翻译成机器语言,计算机在操作时就可以直接使用了
    • 高级语言诸如C、C#、C++、Java、Python、PHP等

     


    1、Java的前世今生

    1991年1月,一个名为“Green Project”的项目启动。该项目旨在为家用电器提供支持,使这些电器智能化并且能够彼此交互,而且这些家电可以由远程客户端控制。

    1991年2月,James Gosling是该项目的软件负责人和架构师。他最初的目标是为“绿色项目”找到一个适合的语言来运行。他选择了C++,并对有需要的地方进行了扩展。但是这些功能不能满足计划的需要,因此建立一门新的语言成为当务之急。他开始夜以继日地忙于新语言的开发,并将其命名为“Oak”,因为他办公室窗外有一棵橡树。
     
    但Oak已被另一种已存在的编程语言使用,因此这个名字不可能再用了。James Gosling开始思考,"我们的新语言需要一个名字。" 于是他通过市场部门,请来了一个命名顾问,召开命名征集会。在会上,大家提出了很多名字,最后按大家的评选次序,将十几个名字排列成表,上报给商标律师。

    排在第一位的是Silk(丝绸)。尽管大家都喜欢这个名字,但遭到James Gosling的坚决反对而作罢。排在第二和第三的都没有通过律师这一关。James Gosling最喜欢的就是排在第三位的Lyric(抒情诗)。只有排在第四位的名字、得到了所有人的认可和律师的通过。这个名字就是Java。

    Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。国外的许多咖啡店用Java来命名或宣传,以彰显其咖啡的品质。

    从此一个即好听又好记、具有强大的生命力的编程语言Java诞生了。

     


    2、Java概述和特点

    Java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows 9x、Windows NT、Solaris、Linux、MacOS以及其它平台上,都可以使用相同的代码。“一次编写,处处运行”的特点,使其在互联网上广泛采用。

    由于Java语言的设计者们十分熟悉C++语言,所以在设计时很好地借鉴了C++语言。可以说,Java语言是一种比C++语言“还面向对象”的一种编程语言。Java语言的语法结构与C++语言的语法结构十分相似,这使得C++程序员学习Java语言更加容易。

    2.1 解释执行

    计算机无法理解高级语言,所以我们使用高级语言完成编程之后,还要将它翻译成机器语言。翻译,有两种方式,即编译和解释,主要是时间上的不同:
    • 编译:在程序没有执行时,就先将高级语言进行翻译,比如windows下的exe文件,之后程序就可以直接运行了;
    • 解释:在程序开始运行的时候才去翻译,而且程序每次执行都要翻译一次

    而Java程序在执行后,首先是生成了class文件,成为字节码,并不是所谓的0101的机器码。在执行时,Java虚拟机的解释器,会根据当前平台的特征,对class文件进行进一步的解释,生成符合当前规范的机器码,得以运行。所以Java到底是属于编译性的语言还是解释性的语言,很难有一个准确的界定。

    2.2 跨平台

    跨平台其实就是建立在解释执行的基础上的,所谓“一次编写,处处运行”,得益于class字节码和Java虚拟机这个中间层。实际上真正跨平台的是Java程序,但是Java虚拟机却不是跨平台的,不同平台下需要安装不同版本的Java虚拟机。


    2.3 面向对象

    Java语言是一门面向对象的语言,具备面向对象语言的三大特征:封装、继承、多态。

    2.4 自动垃圾回收

    在Java中程序员无权回收内存,而是统一由Java虚拟机进行自动管理,对垃圾进行检查和内存释放。

    2.5 鲁棒性

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

    2.6 支持多线程

    支持多线程编程时很多编程语言能够实现的功能,Java当然也不例外。

    2.7 简单性

    Java语言取消了很多容易混淆的概念,比如多继承、goto语句等。Java也没有让人头疼的指针概念,可以说是非常友好了。



    3、Java语言的运行环境

    3.1 JDK

    Java Development Kit:给Java开发人员使用的工具包,包括Java的开发工具,也包括JRE。其中开发工具包括编译工具(javac.exe)、运行工具(java.exe)、打包工具(jar.exe)等。

    JDK = JRE + 开发工具

    3.2 JRE

    Java Runtime Enviroment:Java的运行环境,包括Java虚拟机和Java程序运行所需的核心类库。

    JRE = JVM + 核心类库

    3.3 Java语言的环境配置

    要使用Java语言进行程序开发,必然先要配置Java的使用环境,这个网上一搜一大把,就不具体阐述了,直接丢链接:


  • 相关阅读:
    949. Largest Time for Given Digits
    450. Delete Node in a BST
    983. Minimum Cost For Tickets
    16. 3Sum Closest java solutions
    73. Set Matrix Zeroes java solutions
    347. Top K Frequent Elements java solutions
    215. Kth Largest Element in an Array java solutions
    75. Sort Colors java solutions
    38. Count and Say java solutions
    371. Sum of Two Integers java solutions
  • 原文地址:https://www.cnblogs.com/deng-cc/p/7454136.html
Copyright © 2011-2022 走看看