Java基础知识笔记(一:修饰词、向量、哈希表)

时间:2023-11-24 20:10:14

一、Java语言的特点(养成经常查看Java在线帮助文档的习惯)

(1)简单性:Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言。它去掉了C和C++最难正确应用的指针和最难理解的多重继承技术等内容,通过垃圾回收机制简化了程序内存管理,统一了各种数据类型在不同操作系统平台上所占用的内存大小。

(2)网络特性:Java语言是目前对网络支持最全面,与网络关系最密切的计算机语言之一。

(3)面向对象:由于Java语言是一种新型计算机语言,没有兼容过程式计算机语言的负担,因此Java语言在面向对象的特性上比C++语言更为彻底。

(4)平台无关性/可移植性:Java语言的设计目标是让程序不用修改就可以在任何一种计算机平台上运行。

(5)稳定性:Java在编译和执行的过程中都会进行比较严格的检查,以减少错误的发生。Java语言的垃圾自动回收机制和异常处理机制在很大程度上提高了程序的稳定性。另外,Java语言的简单性也在一定程度上提高了程序的稳定性。

(6)安全性:在网络上运行的Java程序是符合网络安全协议的。在执行Java程序的过程中,Java虚拟机对程序的安全性进行检测。

(7)多线程性:这主要用来处理复杂事务或需要并行的事务。组成Java虚拟机的各个程序本身一般也采用多线程机制。采用多线程机制是提高程序运行效率的一种方法,但同时也增加了程序的设计难度。

(8)解释性:Java语言是一种解释性语言。这是Java语言的一个缺点,因为解释执行的语言一般比编译执行的语言(例如:C或者C++)的执行效率要低。

二、环境变量path和classpath的作用

运行路径(path)变量记录对的是各个运行程序所在的路径。系统根据这个变量的值来查找运行程序。

类路径(classpath)通常用来记录当前路径和J2SE类库所在的路径,这是J2SE需要的一个环境变量。

在J2SE类库中包含J2SE系统提供的各种软件包,其中包括各个类和接口等。在设置好类路径(classpath)环境变量之后,可以在程序中直接使用当前路径和J2SE类库所在路径下的各种Java软件包的类或者接口等。

三、修饰词abstract、static、final简介

(1)abstract(抽象):Java允许类、接口或者成员方法具有抽象属性,但不允许成员域或者构造方法具有抽象属性。如果在定义类修饰词列表中含有关键字abstract,则该类具有抽象属性。这时,这个类称为抽象类。无法通过抽象类的构造方法生成抽象类的实例对象。接口总是具有抽象属性。因此,不管在定义接口的接口修饰词列表中是否含有关键字abstract,该接口都具有抽象属性。如果在定义成员方法的方法修饰词列表中含有关键字abstract,则该成员方法具有抽象属性。抽象成员方法一般在定义抽象类的类体或者定义接口的接口体中定义。

抽象成员方法的定义格式与不具有抽象属性的成员方法的定义格式之间的区别:除了是否含有方法修饰词abstract之外,抽象成员方法的定义以分好结束,而且不含方法体;而不具有抽象属性的成员方法的定义在成员方法声明之后不能立即出现分号,而且必须含有方法体。

(2)static(静态):除了内部类之外,类一般不能具有静态属性。类的构造方法不能具有静态属性。类的成员域和成员方法可以具有静态属性。如果在定义成员域的域修饰词列表中加上修饰词static,则该成员域具有静态属性。如果在定义成员方法的方法修饰词列表中加上修饰词static,则该成员方法具有静态属性,称为静态成员方法。

在Java语言中,类是其实例对象的模板,同时类本身也可以看作一种对象,简称为类对象。类的静态成员隶属于该对象。可以直接通过类名访问类的静态成员域或者调用类的静态成员方法。具体形式如下:类名.静态成员域,类名.静态成员方法名(成员方法调用参数列表)。

(3)final(最终):关键字final(最终)可以用来修饰不具有抽象属性的类、类的成员域、接口的成员域以及类的不具有抽象属性的成员方法。如果在定义类的修饰词列表中含有类修饰词final,则称该类具有最终属性。

如果在定义成员域的修饰词列表中加上修饰词final,则称该成员域具有最终属性。如果该成员域同时具有最终属性和静态属性,则该成员域只能在定义时赋值,而且在此之后就不能修改该成员域的值。如果成员域具有最终属性,但不具有静态属性,则该成员域只能在定义时或者在构造方法中赋值,而且只能赋值一次。

如果在定义成员方法的方法修饰词列表中加上修饰词final,则称该成员方法具有最终属性。这时要求该成员方法不具有抽象属性。如果一个类的成员方法具有最终属性,则该成员方法不能被当前类的子类的成员方法覆盖。

四、向量简介

向量在功能上与数组类似,只是其元素个数可以改变,而且向量元素的数据类型必须是引用类型。向量的基本原理是预先给向量对象分配一定的存储空间,然后再给向量对象添加元素或设置元素值。向量对象的存储空间大小称为向量对象的容量,其单位是元素个数。向量对象的实际元素个数,称为向量对象的长度。如果向量对象的长度发生变化,当新长度超出在长度变化之前的向量对象旧容量时,向量对象的容量会自动扩大。在向量对象中还定义有一个量,称为容量增量。

向量变量的声明格式是:Vector<向量元素的数据类型> 变量名;

向量实例对象的创建方法:通常通过类java.util.Vector的构造方法创建向量对象——public Vector()可以创建向量对象,其初始容量默认值为10,容量增量为默认值0。

向量对象实例对象的操作主要有增加元素(成员方法有add、addElement、insertElement等)、修改元素(成员方法有set、setElement等)、删除元素(成员方法有clear、remove、removeElement、removeElement等)、信息查询(成员方法有contains、equals、capacity等)。

五、哈希表简介

数组和向量按顺序存储元素,因此通过元素的下标可以非常方便地获得该元素。但反过来,如果知道元素而要获得该元素的下标,则相对要困难一些,通常需要顺序进行查找。如果数组或向量已经按照某种方式排序,则可以采用二分法进行折半查找,加速查找过程。一般认为从元素查找该元素所对应的存储位置的最快方式是采用哈希表。哈希表也称作散列表。

哈希表详解链接:http://www.cnblogs.com/vamei/archive/2013/03/24/2970339.html#undefined