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

一、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

时间: 2024-10-10 08:30:49

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

Java基础知识笔记(七:接口、变量作用域和参数传递)

一.接口 Java语言不允许一个子类拥有多个直接父类,即任何子类只能有一个直接父类.但允许一个类实现多个接口,即在定义类的接口名称列表中可以包含1个或多个接口名称,从而实现多重继承的特性.接口的定义格式如下: [接口修饰词列表] interface 接口名 [extends 接口名称列表] { 接口体 } 接口修饰词列表可以包含0个.1个或者多个接口修饰词.如果存在多个接口修饰词,则在相邻两个接口修饰词之间采用空格分隔开.接口修饰词包括:public.abstract和strictfp等.在同一

Java基础知识笔记(五:多线程的同步问题)

编写多线程程序往往是为了提高资源的利用率,或者提高程序的运行效率,或者更好地监控程序的运行过程等.多线程同步处理的目的是为了让多个线程协调地并发工作.对多线程进行同步处理可以通过同步方法和同步语句块实现.Java虚拟机是通过对资源(如内存)加锁的方式实现这两种同步方式.这种机制带来的另一个问题就是死锁问题(即程序的所有线程都处于阻塞态或等待态).良好的程序设计应当设法避开这种死锁问题. 一.多线程同步的基本原理 如果在多个并发线程之间共用资源,则可能就需要进行同步处理.Java虚拟机通过给每个对

java基础知识《JAVA 核心技术》学习笔记(一)

一:数据类型 (1)java整形: 类型                         存储要求 int                              4字节 short                          2字节 long                           8字节 byte                           1字节 (2)浮点类型 类型                         储存要求 float            

网络连接相关基础知识笔记

一.常说的TCP/IP的含义 TCP/IP协议簇并不仅仅指TCP协议和IP协议,实际它包括了一系列协议组成的集合,如:TCP,IP,UDP,FTP,SMTP,DNS,ARP,PPP等 TCP与UDP协议都属于传输层协议,但有很大不同,TCP是面向连接的协议,提供的是可靠的数据流服务,TCP采用"带重传的肯定确认"机制来实现传输的可靠性,实现了一种"虚电路",因为从物理上来说,并不是真正在两台主机间建立了连接,这种连接只是存在于逻辑上的.最大的开销出现在通信前建立连接

java基础知识回顾之java Thread类学习(八)--java多线程通信等待唤醒机制经典应用(生产者消费者)

 *java多线程--等待唤醒机制:经典的体现"生产者和消费者模型 *对于此模型,应该明确以下几点: *1.生产者仅仅在仓库未满的时候生产,仓库满了则停止生产. *2.消费者仅仅在有产品的时候才能消费,仓空则等待. *3.当消费者发现仓储没有产品可消费的时候,会唤醒等待生产者生产. *4.生产者在生产出可以消费的产品的时候,应该通知等待的消费者去消费. 下面先介绍个简单的生产者消费者例子:本例只适用于两个线程,一个线程生产,一个线程负责消费. 生产一个资源,就得消费一个资源. 代码如下: pub

java基础知识回顾之java Thread类学习(七)--java多线程通信等待唤醒机制(wait和notify,notifyAll)

1.wait和notify,notifyAll: wait和notify,notifyAll是Object类方法,因为等待和唤醒必须是同一个锁,不可以对不同锁中的线程进行唤醒,而锁可以是任意对象,所以可以被任意对象调用的方法,定义在Object基类中. wait()方法:对此对象调用wait方法导致本线程放弃对象锁,让线程处于冻结状态,进入等待线程的线程池当中.wait是指已经进入同步锁的线程,让自己暂时让出同步锁,以便使其他正在等待此锁的线程可以进入同步锁并运行,只有其它线程调用notify方

java基础知识回顾之java Thread类学习(六)--java多线程同步函数用的锁

1.验证同步函数使用的锁----普通方法使用的锁 思路:创建两个线程,同时操作同一个资源,还是用卖票的例子来验证.创建好两个线程t1,t2,t1线程走同步代码块操作tickets,t2,线程走同步函数封装的代码操作tickets,同步代码块中的锁我们可以指定.假设我们事先不知道同步函数用的是什么锁:如果在同步代码块中指定的某个锁(测试)和同步函数用的锁相同,就不会出现线程安全问题,如果锁不相同,就会发生线程安全问题. 看下面的代码:t1线程用的同步锁是obj,t2线程在操作同步函数的资源,假设不

JAVA基础学习笔记(2)

看了几天的视频了,都没时间来写下学习笔记,今天来写下第二次的学习笔记,前几天看的给忘记了,就写最新看到的吧 主要内容:1.类的变量与函数(方法) 2.对象的存储方式 3.新建一个对象及对象的赋值与调用 4.空对象 5.匿名对象 1.类的变量与函数(方法) class Dog      //类名 { String name;  //变量的声明 int age; String color; void bark()   //方法的定义(返回值为空,不带参数) { System.out.println(

第1天:了解Java基础知识

Java的优势 1. 简单 不像C或者C++语言,Java中省去了对指针的操作.但是,Java中并没有省去指针,代替指针的是一种新的变量--引用,引用也是保存一个对象的内存地址. 2.方便 Java虚拟机自带垃圾回收器,能够自动回收内存资源.而C和C++语言,需要开发人员手动进行内存资源回收. 3.安全 不支持指针操作 4.平台无关性 Java语言是跨平台的,一次编译,到处运行. 而且,不同平台,C语言中数据类型所占的位数是不同的,而Java语言中,数据类型所占的位数是固定的. 5.面向对象 J