java的11个特性

来源:互联网 发布:社交网络电影观后感 编辑:程序博客网 时间:2024/04/29 08:28

1、简单性

相较于c++来说,取消了指针的的语法,不需要关注内存分配和回收方面的问题。C++可以多继承,对于java类来说只能单继承,相对来说比较简单。Java的接口可以进行多继承。

2、可移植性

a)源代码可移植性

一个java程序,无论运行在哪种cpu和操作系统或编译器上,都会产生一样的运行结果。这是因为java定义了紧密的语义结构,严格的程序行为定义。

例如:提供了内存自动回收利用,使程序不能越界访问内存。对未定义的变量提供初始值。

缺点:java设想运行在32位字节长度,且每个字节为8位计算机上。把程序放在8位字节长度的微型计算机或者一些巨型计算机上就不能有效的运行程序。

b) cpu可移植性

具有cpu可移植性,是因为java的编译器的不同。Java编译器发生的目的代码(j-code)是针对一种不存在的cpu-java虚拟机,不是实际存在的虚拟机。Java虚拟机能掩盖不同的cup之间的差别,使j-code能运转与具有任何java虚拟机的机器上。将源代码编译为j-code可以运行在任何的机器上。

缺点:没有本机代码运行的速度快。

c)操作系统可移植性

具有操作系统可移植性,是因为java采用了一套与平台函数无关的库函数,就像是jvm提供的cpu虚拟机一样,java库函数提供了一个GUI环境。Java程序仅对库函数提出调用,而库函数对操作系统功能的调用由各不同的虚拟机完成。

3、面向对象

对象:可以是世间具体的事物,也可以是抽象的规则或计划。

类:具有相同或相似的对象的抽象体现形式。

类的实例化是创建对象的过程,类的实例就是对象。

对象的四大特性:

a)     抽象

一类事物中,提取相同的部分,称为抽象。即,忽略一个主题中与当前目标无关的方面,以便更充分凸显与目标相关的东西,不用显示细节。

过程抽象:代码表示事物中的一系列行为。

数据抽象:代码表示事物中的一系列性质,即事物的属性。

b)     封装

对象的属性或操作隐藏起来,作为一个独立的整体,即把一系列的数据放在一个单独的类里面。尽可能隐藏对象内部实现细节。隐藏对象内部细节是通过private关键字实现,控制用户对类的修改和访问数据的程度。

c)     继承

从已有的类中派生出新的类,新的类是能吸收已有的类的功能和属性,并且能添加新的属性或功能。Java继承是使用已存在的类作为基础建立新类,进行继承,会继承所有的功能和属性,不能进行选择性的继承父类。

类之间的继承可以使用UML符号表示,父类又叫基类或超类,子类又叫派生类。

继承避免了普通类与特殊类共同特性之间的重复描述。继承原则可以使系统模型更加清晰,简练。继承具有传递性。

单继承:java里面类只允许进行单继承。

多继承:接口可以进行多继承。

d)     多态

方法名可以相同,但是参数要不一样。方法名和参数一样,返回类型要不一样。一个实体具有多种形式。同一操作可以作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用派生类的方法。

4、解释型

解释型:在运行的时候直接编译成机器语言,每次运行都进行一次编译。效率比较低。(java/C#)

解释型一般和编译型进行比较。

编译型是指,在程序执行之前有一个编译将程序翻译成机器语言的过程,接下来进行运行都不需要进行编译。(C/C++)

对于java来讲,在编译过程中是将程序翻译成字节,一种中间状态。在运行的时候有jvm翻译成机器语言。所以java属于解释型语言。

5、网络技能

6、高性能

7、健壮性

       程序具有可靠性。java对于早期问题检测,后期运行时动态检测问题,并消除可能出现问题的倾向做的非常严谨。而且对于数据的损坏,重写内存,相对来说也是非常优秀。

8、多线程

       在系统上运行的程序都是一个进程,一个进程会存在一到多个线程。一个线程。线程之间是独立运行的,有自己专用的运行栈,线程之间存在共享资源,例:内存,数据,文件。线程是一组指令的集合。

Java中是一个程序是可以允许多个线程同时进行的,用于支持事物并发和多任务处理。Java除了内置的多线程技术以外,还定义了一些类和方法用来建立和管理用户定义的线程。

多线程的优点:提高开发效率,cpu不会因为等待资源而进行空闲状态。

线程同步:线程同步其实是线程队列。是指几个线程同时使用一个资源的时候,让线程进行排队使用资源。而不是同时线程同时使用资源

9、安全性

a)未使用指针的方式使用内存。一切内存的使用都是通过对象的实例变量来实现的。避免使用指针操作中容易出现的错误。防止使用“特洛伊”等木马骗取私有成员变量。

b)运行环境是jvm,使用的是类加载器,可以防止恶意代码破坏善意代码。守护了被信任代码的边界,定义了每个类运行时的权限。

c)进行Class类文件校验器,class文件结构检查、数据类型语义检查、字节码验证、符号引用验证。

d)内置安全特性。类型安全的引用转换、自动垃圾收集、数组越界检查、空引用检查、异常结构化处理。

10、动态性

       允许程序动态的装入运行过程中所需要的类。

11、体系结构中立

因为在程序的编译过程中是把程序翻译成字节,字节实现了结构中立,与计算机的结构无关。

0 0