zoukankan      html  css  js  c++  java
  • Java语言的特点与工作原理

    Java语言的特点

    1.简单性

      Java语言与我们常听到的C++语言很像,但是没有C++那么繁琐。因为Java就是在C++之上设计出来的,设计者把C++的一些特性去掉了,这些特性在实际开发中,程序员也很少用到。

      例如:Java中是没有go to语句的,取而代之的是break、continue以及异常的处理。

          Java中只有单继承,没有多继承,但是可以用接口(可以理解为类)来多实现(以达到多继承的作用)。

          Java是面向对象的,没有结构,在Java中数组和串都是对象,所以Java中也没有指针。

          Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必位存储管理问题受阻,能将更多的时间与精力用来编写程序上。

     

    2.面向对象

        我们都知道Java同很多编程语言一样是属于面向对象的。那么什么是面向对象呢?通俗的来说“万物皆对象”。这句话理解起来不难,但是Java面向对象的核心思想是要靠时间磨练才能完全理解的。那么在一个面向对象的程序中都有什么呢?有:类(class)、对象(object)。类是数据和用来操作数据的方法的集合。数据和方法一起描述对象,一般来讲,把数据称作对象的属性,而方法称作对象的行为。比如:一个人,他的名字,年龄,性别等等就是他的属性,而他的动作就是行为。而这个人就可以当作是一个对象。在现实生活中,是先有对象再有类的。比如:先有的一个一个的人对象,把这些一个一个的人对象组成的整体我们称为人类。但是在Java中是完全相反的,Java是先有的类再有的对象。为什么呢?很好理解,先由类来组织代码,而再由对象来封装数据。在写一个程序的时候我们的第一行代码就是声明一个类,然后其余的数据全是在类里面的。Java的整体结构也是由类来展开的。

     

    3.分布性

      Java支持在网络上应用,它是分布式语言。它既支持各种层次结构的网络连接,也以Socket类来支持流(Stream)的网络连接。所以用户可以产生分布式的客户端与服务端。而网络可以理解为软件应用的分布式运载工具。Java程序只需要编写一次,就可以到处运行。

     

    4.编译与解释性

      Java程序在执行的时候会先编译生成字节码(byte code),而不是机器码(0与1)。Java字节码提供对体系结构中性的目标文件格式,代码被设计成有效的传送到多个平台上。也就是说,Java可以在任何实现了“Java解释程序和运行系统”的系统上运行。

     

    5.稳健性

      Java设计之初是用作消费类电子产品软件的语言,所以它被设计成写可靠和稳健的软件的。Java消除了某些编程错误,使得它写稳健程序更加容易。Java是一个强类型的语言,它允许扩展编译时检查潜在类型不匹配的问题。所以Java要求显式的方法声明,而不是C语言那样的隐式声明。因为Java不支持指针,所以它消除了重写存储和讹误数据的可能性。取而代之的异常处理是Java中更稳健的特性。异常(Exception)就是某种类似于错误的信号,但不是错误(Error)。对待异常,Java有两种处理方式,捕获(try-catch-finally)和抛出(throw/throws)。这样就方便找到可能出错的代码并加以处理,从而简化了出错的机率。

     

    6.安全性

      Java的存储分配模型是它防御恶意代码的主要方法之一。Java中没有指针,所以在写程序的时候不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是Java编译程序不处理存储安排决策,编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储的地址。Java运行系统使用字节码验证来保证装载到网络上的代码不违背Java语言的限制。这个安全机制部分包括类如何从网上装载。

     

    7.可移植性

      Java语言声明不依赖于实现的方面。例如:Java显式的说明每个基本数据类型的大小和它的运算行为。而Java语言的环境本身对新的硬件平台和操作系统都是可移植的。Java编译程序也是用Java编写的,而Java运行系统是用ANSIC语言编写的。

     

    8.高性能

      Java是先编译后解释的语言。所以它不如全编译性的语言快。但是在很多情况下性能是很要紧的,为了支持这些情况。Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定的CPU(中央处理器)机器码,也就是说从某个层面讲是实现全编译了。Java字节码的格式在设计时考虑到了这些“及时”编译程序的需要,所以生成机器代码的过程是相当简单的,它能产生相当好的代码。

     

    9.多线程性

      Java是多线程语言,它提供多线程的执行,能处理不同任务,使具有线程的程序设计很容易。Java的lang包下提供了一个Thread类,它支持开始线程、运行线程、停止线程和检查线程状态的方法。Java的线程支持也包括一组同步原语。这些原语是基于监督程序和条件变量防范的,由C.A.R.Haore开发的广泛使用的同步化方案。用关键字synchronized可以说明某些方法在一个类中不能并发执行。这些方法在监督程序的控制之下,确保变量维持在一个一致的状态。

     

    10.动态性

      Java被设计成适用于变化环境的动态语言。例如:Java中的类是根据需要加载的,甚至有些是通过网络获取的。

     

    工作原理

    Java工作原理由四方面组成:

      (1)Java编程语言

      (2)Java类文件格式

      (3)Java虚拟机(JVM)

        (4)Java应用程序接口

      当编辑并运行一个Java程序时,需要同时涉及到这四方面。使用文字编辑软件(例如:记事本、写字板、UltraEdit)或集成开发环境(Eclipse、MyEclipse)在Java源文件中定义不同的类(这些类实现了JavaAPI),通过调用类中的方法来访问系统资源,把源文件编译生成一种二进制中间码,储存在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的JavaAPI调用。

     

     

  • 相关阅读:
    dubbo的防痴呆设计
    dubbo设计实现的健壮性
    Dubbo配置设计
    一些设计上的常识
    如何使用sqlalchemy获取某年某月的数据总和
    使用datatables实现后台分页功能,减轻前端渲染压力
    datatable使用介绍
    ssh远程执行nohup命令不退出
    ssh 执行多条命令包含awk的用法
    sys.argv的妙用:python命令行参数列表的修改、增加、删除
  • 原文地址:https://www.cnblogs.com/joyfulcode/p/11681430.html
Copyright © 2011-2022 走看看