博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[原]Java修炼 之 基础篇(一)Java语言特性
阅读量:5224 次
发布时间:2019-06-14

本文共 1870 字,大约阅读时间需要 6 分钟。

        学习软件开发,首先要选择的就是选择需要采用的编程语言,考虑语言本身的优缺点和实际需求,综合评价之后选择相关的语言进行系统开发。本篇博客开始就从近年来比较流行的Java开始为大家讲起。

背景

        1995年,SUN公司推出了Java的第一个白皮书,其中对Java的定义为:Java是一种简单性(Simple),面向对象(Object-Oriented),分布式(Distributed),解释型(Interpreted),健壮性(Robust),安全性(Secure),结构中立(Architecture-neutral),可移植性(Portable),高性能(High-Performance),多线程(Multi-Threaded),动态的(Dynamic)语言。如何理解这些特性呢?

简单性

        Java的简单性是相对于其他语言来讲的,就其本身学习来讲,其实倒不见得如何简单。Java是一种类C的编程语言,基本语法与C、C++类似,其简单性重要的一点就是去除了C中容易出错的指针和内存管理,但正因为如此,Java的内存管理对于开发来讲相对不太容易,经常出现的就是内存占溢出无法释放的问题。还有一点简单性表现在Java编写的软件可以在很小的机器上运行,这与其自身的基础类库所占的大小不足1M有关。

面向对象

        Java是一种完全面向对象的编程语言,它虽然只支持类之间的单继承,但可以实现多个接口,另外Java语言全面支持动态绑定的特性也为我们提供了便利。

分布式

        Java拥有一个支持HTTP和FTP等基于TCP/IP协议的类库,因此,Java可以获取网络上的任意资源,将网络资源看作本地资源进行操作,另外Java中的远程方法调用RMI( Remote Method Invocation)也为其实现分布式提供了重要手段。

解释型

        Java的是一种解释型的编程语言,用Java编写的程序在Java平台上被编译为字节码格式,在运行时,Java平台中的解释器对这些字节码进行解释并执行,这一点与C,C++等编译型语言有所不同。

健壮性

        Java语言的健壮性主要表现在Java对指针和内存的管理上。尽管在Java去除了指针的概念,但Java本身采用的是一种类似于指针的对象引用方式巧妙的方式避免了指针使用的随意性。在内存管理上,Java的内存的自动收集机制也是Java程序健壮性的重要保证。

安全性

        Java语言的安全性主要表现在两方面:一方面是语言本身的特性,例如去除了指针避免对内存的直接操作;另一方面,Java本身提供了一个安全运行机制使用户免受非可信任的程序的破坏,也就是所谓的沙箱(sandbox)机制。沙箱的作用就是保证Java程序只能在沙箱的边界之内运行,换句话说,Java程序可以在沙箱边界内任意运行,但在沙箱边界之外则什么都不能做。

结构中立

        Java语言的结构中立性原因在于Java程序被设计为运行在介于源程序和具体机器之间的Java虚拟机上。主要表现在其编译生成的字节码文件只与Java虚拟机相关,与具体的机器无关,这就是为什么这种字节码从可以在很多处理器上执行的原因。

可移植性

        Java的可移植性基础就是Java的结构中立性,另外Java中对基本数据类型的大小和算法都有严格的规定,所以其可移植性相对较好。

高性能

        Java的高性能性是相对来讲的,通常来讲编译型语言本身较解释性语言的执行效率要高。Java本身相对于其他解释性的语言而言,其高效性是其他语言所无法匹敌的。虽然Java本身相对于解释型的C和C++运行速度而言有稍许不足,但随着Java编译器的不断发展,这个差距正在逐渐变小。

多线程

        Java语言本身能够支持多个线程的同时执行,并且为提供多个线程之间同步运行提供了相应的机制,也就说Java拥有不错的实时交互性和实时控制性。

动态的

        Java的动态性表现在Java程序需要的类能够动态的被加载到运行环境中,这对于软件的升级和维护有着重要的意义。

        今天我们主要讲解了一下Java的11个特性,如果仅仅应对开发,那么简单的了解就好,但是如果是从架构设计或者系统级考虑,还需要更加深入的了解,这也是为什么我们要深入学习Java语言的根本原因。

        好了,今天我们就先介绍到这里,下一次我们继续介绍一下Java的其他相关内容。

作者:zs15932616453 发表于2014-3-28 1:25:10
阅读:844 评论:13

转载于:https://www.cnblogs.com/zs234/p/3691099.html

你可能感兴趣的文章
[POJ 3155] Hard Life
查看>>
【window服务器】
查看>>
Guava新增集合类型-Multiset
查看>>
swift 实现复制粘贴功能。
查看>>
深入理解java虚拟机_前言
查看>>
###Beta准备
查看>>
Beta冲刺合集
查看>>
Dubbo认识
查看>>
关于对quick-2dx项目中的Lua代码的加密
查看>>
java连接mysql(一)
查看>>
JavaScript中变量、参数、函数之间的关系
查看>>
利用存储过程将表中的数据生成Insert语句
查看>>
Leetcode 42. Trapping Rain Water
查看>>
图片和label点击事件
查看>>
只出现一次的数字
查看>>
用CSS3制作的旋转六面体动画
查看>>
data_summarize.pl data目录文本时长汇总脚本
查看>>
Python基础-集合
查看>>
memo1.Font.style
查看>>
移动端弹窗 layer.js 使用
查看>>