JAVA何以做到“平台无关”以及JAVA的集合框架

来源:互联网 发布:众途汽修软件 编辑:程序博客网 时间:2024/06/05 06:38

 平台无关性或者跨平台,意味着你的程序可以在多种操作系统上运行。但是是什么使得JAVA可以与平台无关呢? 在传统的编程中,源代码编译为可执行的代码。可执行代码只能在它所针对的平台上运行。换句话说,针对Windows编写和编译的代码只能在Windows上运行,Linux也一样。 JAVA程序编译为字节码。字节码本身不运能行,因为他不是原生代码。字节码只能在JAVA虚拟机(JVM)上运行。JVM负责解释字节码。通过使用JVM在不同平台上,SUN公司把JAVA变成了跨平台的语言。而不同平台的JVM是不同的。

JDK、JRE和JVM有什么不同

 事实上,任何编程语言都需要编译才可以使用。JAVA编译器就是名为javac的程序,是java compiler的缩写。 尽管javac可以把java程序编译为字节码,但是要运行字节码,需要一个java虚拟机。此外还需要使用java核心库的各种类。java运行时环境(JRE)包含了一个JVM和一个类库。说到这里就明白了,针对Windows和Linux的JRE是不同的,针对其他操作系统的JRE也是不同的。

概括来说

- JRE,包括一个JVM和核心库,适合于运行字节码。JVM就是运行JAVA字节码的本地应用程序。

- JDK,包括JRE加上一个编译器,以及其他工具。

**

JAVA的集合框架

**

 在编写oop(面向对象)程序的时候,常常需要操作一组对象。首先学的是数组,但是数组是用来操作相同类型的对象,而且不能修改其大小,往往受限于它的灵活性。JAVA带有一系列接口和类,使得操作成组的对象更加容易,这就是集合框架。 在学习JAVA的集合框架时,建议预先学习一下泛型,可以说两者是密不可分的。 集合(collection)是将其他对象组织到一起的一个对象。集合也叫作容器(container)。集合中的类型关系如下:

这里写图片描述

Map的一个子接口SortedMap保证了键值按照升序排列。接口Iterator和Comparator保证了对象的可排序和可比较。 各个集合类型的具体使用以及相关函数不在这篇文章中详述了,有必要的话会在以后的博文更新。

*  Collection实现通常有一个构造函数,他接受一个Collection对象,将该对象转换成其他类型的Collection。*

下面是一个把Queue转换成List的实例:

    Queue queue = new LinkedList();    queue.add("hello");    queue.add("world");    List list = new ArrayList(queue);

如下代码把一个List转换为一个Set:

List list = new ArrayList();list.add("Hello");list.add("Hello");list.add("World");Set set = new HashSet(list);

list转换为set后,因为Set不允许有重复元素,所以上面的set只有两个元素。

1 0
原创粉丝点击