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
Java基础知识笔记(一:修饰词、向量、哈希表)的更多相关文章
- java基础知识-笔记整理
1.查看已安装jdk文件路径 CMD输入java -verbose. 2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...
- Java基础知识笔记(五:多线程的同步问题)
编写多线程程序往往是为了提高资源的利用率,或者提高程序的运行效率,或者更好地监控程序的运行过程等.多线程同步处理的目的是为了让多个线程协调地并发工作.对多线程进行同步处理可以通过同步方法和同步语句块实 ...
- Java基础知识笔记(八:集合类)
目录 1 集合类简介 2 List介绍及简单使用 2.1 LinkedList介绍及简单使用 2.2 ArrayList介绍及简单使用 2.3 Vector介绍及简单使用 2.3.1 S ...
- Java基础知识笔记(七:接口、变量作用域和参数传递)
一.接口 Java语言不允许一个子类拥有多个直接父类,即任何子类只能有一个直接父类.但允许一个类实现多个接口,即在定义类的接口名称列表中可以包含1个或多个接口名称,从而实现多重继承的特性.接口的定义格 ...
- Java基础知识笔记(二:泛型和枚举)
1.泛型 与面向对象的多态性相类似,应用泛型可以提高程序的复用性.与多态性不同的是,应用泛型可以减少数据的类型转换,从而提高代码的运行效率.泛型实际上是通过给类或接口增加类型参数实现的.不带泛型的类的 ...
- Java基础知识笔记(四:多线程基础及生命周期)
一.多线程基础 编写线程程序主要是构造线程类.构造线程类的方式主要有两种,一种是通过构造类java.lang.Thread的子类,另一种是通过构造方法实现接口java.lang.Runnable的类. ...
- JAVA基础知识笔记
1.类只能用Public修饰,不能使用protected.private修饰.也可以不加修饰符,称做友好类. 2.类的实体元素包含成员变量和方法的定义,成员变量分为实例变量和类变量(static修饰的 ...
- Java基础知识笔记(六:网络程序设计)
一.统一资源定位地址(URL) (1)网络地址 在网络上,计算机是通过网络地址标识.网络地址通常有两种表示方法,第一种表示方法通常采用4个整数组成,例如: 166.111.4.100表示某一网站服务器 ...
- Java基础知识笔记(三:文件与数据流)
一.输入流与输出流 输入流将数据从文件.标准输入或其他外部输入设备中加载到内存.输出流的作用则刚好相反,即将在内存中的数据保存到文件中,或传输给输出设备.输入流在Java语言中对应于抽象类java.i ...
随机推荐
- 内置对象session ,cookic,Application,ViewState
一.内置对象 (一)Response - 响应请求对象1.定义:Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应.Response对象只提供了一个数据集合cookie ...
- 可控制导航下拉方向的jQuery下拉菜单代码
效果:http://hovertree.com/texiao/nav/1/ 代码如下: <!DOCTYPE html> <html> <head> <meta ...
- poj2186--tarjan+缩点
题目大意: 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也 ...
- JMeter专题系列(四)参数化
JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户 ...
- redhat6.4安装MySQL-server-5.5.28-1.linux2.6.x86_64.rpm
首先下载下面三个文件: MySQL-server-5.5.28-1.linux2.6.x86_64.rpm MySQL-client-5.5.28-1.linux2.6.x86_64.rpm MySQ ...
- SAP RFC
什么是RFC? RFC是SAP系统和其他(SAP或非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议.简单地说,RFC过程就是系统调用当前系统外的程序模块,从而实现某个 ...
- Emacs学习心得之 LaTeX编辑
目录 1. 前言 2. texlive的安装 3. AUCTEX的安装和配置 4. RefTEX的安装和配置 一.前言 本篇博文记录了Emacs下LaTeX编辑环境的搭建,参考一下文章: http:/ ...
- C++序列化、反序列化
几个常见的库 http://stackoverflow.com/questions/3637581/fastest-c-serialization Boost: Fast, assorted C++ ...
- JAVA模板方法设计模式(从现实生活角度理解代码原理)
概述: 定义一个功能的框架(骨架),一部分功能是确定的,一部分功能是不确定的,先把确定的部分实现,把不确定的部分延迟到子类中实现. 实现该模式的关键步骤: 第一步:抽象类,实现模板方法,定义功能(确定 ...
- jQuery操纵DOM元素属性 attr()和removeAtrr()方法使用详解
jQuery操纵DOM元素属性 attr()和removeAtrr()方法使用详解 jQuery中操纵元素属性的方法: attr(): 读或者写匹配元素的属性值. removeAttr(): 从匹配的 ...