基础知识 小记

java是一种完全面向对象的语言
java是一种比较简单的语言

java中去掉的部分有:
指针,预处理指令等
不支持多重继承

java中新增加的部分有:
资源回收(Garbage Collection)
错误处理(Exception)
新的修饰词(abstract 、native 、final)

java语言的特点:
简单、面向对象、公布式、键壮性、安全性、体系结构中立、可移植性(跨平台运行)、解释执行

jdk安装后的目录结构:
bin目录:存放可执行文件
lib目录:存放Java的类存文件
include目录:存放用于本地方法的文件
dome目录:存放演示程序
jre目录:存放Java运行环境文件

环境变更配置:
1.设置JAVA_HOME
右键单击“我的电脑”,依次选择【属性】→【高级】→【环境变量】
新建系统变量,名称为JAVA_HOME,值为C:\Java\jdk1.6.0_06
2.设置CLASSPATH 
CLASSPATH表示搜索java类的路径,这个路径中可以包含一些jar文件,也可以
是一个目录。在应用程序或者服务器执行时,往往会动态的在CLASSPATH中添加
一些自己需要的类路径。其设置方法与JAVA_HOME设置方法一样,只是它的值不一样
如“C:\Java\jdk1.6.0_06\lib\tools.jar”
3.设置PATH
PATH变量是系统搜索可以执行程序的路径,编辑PATH系统变量,在最后添加“C:\Java\jdk1.6.0_06\bin”字符串。

Java程序的执行过程:
java的跨平台是通过Java虚拟机(JVM)来实现的,JVM是一个抽象的计算机。
Java源程序经过编译器编译变成字节码
字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器 
解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行  

Java字节码的执行方式有两种:
即时编译方式 
解释执行方式 (最常用的方式)
解释执行过程分三部进行:
代码的装入
代码的校验
代码的执行  

Java源程序由类组成,声明类的关键字为class
在Java语言中严格区分大小写
如果一个Java类用public修饰,则该类所在的源文件名必须与类名相同

Java程序有两种主要类型:
独立的Java应用程序(Application)
Java小应用程序(Applet)
Applet是在Web页上运行的Java程序。
Applet可以直接与使用浏览器的用户进行交互。

面向对象的三大基本特点:
封装、继承、多态

类和对象的概念:
类:抽象的定义;对象:具体的实例
类:泛指的概念,是对对象的抽象的描述。
对象:具体的实例,按照一个类所描述的形式创建的具体实例。

封装(encapsulation)是对象最重要的特性,如何完成各项操作的过程被对象隐藏起来了

构造方法是用来构造类实例(对象)的方法 
使用关键字new来调用构造方法,从而创建一个类的实例 

构造方法主要用来初始化类中的成员变量
方法名必须与类名相同
构造方法没有返回值类型
自动调用,不能显式调用

在Java中要求每个类至少有一个构造方法
如果没有为类声明构造方法,则编译器会创建一个没有参数的默认构造方法

当我们为类声明了任何一个构造方法,则Java将不会为该类创建默认的构造方法 

在Java语言中,内存回收的任务由Java虚拟机来担当 
在程序的运行时环境中,Java虚拟机提供了一个系统级的垃圾回收器线程,它负责自动回收那些无用对象所占用的内存,这种内存回收的过程被称为垃圾回收(Garbage Collection) 

对象变量存放的是引用,引用实际上是实例对象在内存中的地址 
垃圾回收线程用于回收内存中不再使用的对象  

数据类型:
Java的数据类型包括:
基本数据类型(值类型,栈)
引用数据类型(引用类型, 堆)

Java语言提供了八种基本类型:
4种整数类型
2种浮点数类型
字符类型
布尔类型
Java中的字符采用unicode编码方案,一个字符占2个字节。所以一个char类型的变量可以容纳一个中文字符

数组分为:
基本数据类型数组
引用数据类型数组
数组元素必须是相同的数据类型
数组是一个对象,其中定义有一个叫length的公有常量,表示该数组的长度

在switch(expression)语句中表达式的类型必须是与int类型相兼容的基本类型:byte, char, short, int 

多态性是面向对象程序设计的重要特性之一。多态性分为两种:静态多态和动态多态。方法重载用于实现静态多态性。

重载方法是一组具有相同名称的方法,调用重载方法时将执行哪一个方法取决于调用时提供的参数类型和参数的个数。
方法重载规则:
方法名相同
方法的参数类型、个数至少有一项不相同
作用域必须相同
方法的返回类型可以不相同
方法的访问修饰符可以不相同
形参的名称可以不相同

方法重载的原则:
只有对不同的数据完成基本相同的任务的方法才应重载
重载的优点是:
不必对相同的操作使用不同的方法名
有助于更轻松地理解和调试代码
更易于维护代码

构造方法用于完成对象的初始化工作,当创建一个对象时将会调用构造方法。构造方法的重载为创建对象提供了多种方式,提高了编程的灵活性
构造方法负责对象的初始化工作,为实例变量赋初始值
构造方法必须满足以下语法规则:
方法名必须与类名相同
不要声明返回类型
当类中没有定义构造方法时将使用默认构造方法

如果类中显式定义了一个或多个带参数构造方法,那么这个类就失去默认构造方法。此时可以显式定义默认构造方法。

this是一个引用,它始终指向当前对象本身
当局部变量与实例变量同名时,局部变量将隐藏同名的实例变量
可以用关键字this来区分局部变量和实例变量

static关键字可以用来修饰
成员变量
成员方法
代码块 
被static所修饰的成员变量和成员方法表明该成员归某个类所有,它不依赖于类的特定实例,被类的所有实例所共享

静态方法可访问内容限制:
不能使用this关键字
不能直接访问所属类的实例变量和实例方法
可以直接访问所属类的静态变量和静态方法

java.lang包主要有:Object、System、Math、String、StringBuffer、封装类如Integer==int等
"==" 比较两个对象的引用是否相等。
比较对象是否具有相同的内容时应使用equals方法。
String类一旦创建对象,其内容不可改变
StringBuffer类提供了动态操作字符串的特性即可修改的字符串

       private 缺省 protected   public
类内        可见 可见 可见 可见
包内        不可见 可见 可见 可见
包外子类内 不可见 不可见 可见 可见
包外非子类 不可见 不可见 不可见 可见

package语句必须放在java源文件的第一句
一个java源文件最多只能有一条package语句

从一个旧类派生一个新类的机制称为继承
新类不仅拥有新定义的成员,同时还拥有被继承的类的成员
基类的构造方法不能被派生类继承
派生类的构造方法在执行自己的任务之前将会调用基类的构造方法。调用分两种:
显式调用
隐式调用

显式调用:在派生类构造方法的第一句使用super关键字来指定调用基类的哪个构造方法。

隐式调用:如果没有显式调用,则自动调用基类的默认构造方法,相当于显式调用super( );

继承中的构造方法需要注意:
派生类构造方法的调用顺序为:先调用基类的构造方法,再调用派生类的构造方法。
当基类中有默认构造方法时,派生类的构造方法中可以省略对基类的默认构造方法的调用。
当基类的构造方法中只有含参数的构造方法时,派生类构造方法中必须要使用super关键字显式调用基类的构造方法。

多态(polymorphism)性是指对类的成员方法的调用将形成不同的实现方式(一个接口,多种方法) 
多态必须存在于继承的环境之中,是对面向对象程序设计的补充

多态性分为静态多态和动态多态两种 
静态多态—方法重载
动态多态—建立在继承和方法覆盖基础上

覆盖方法必须满足多种约束:
派生类方法的名称、参数和返回类型必须与基类方法一致
派生类方法不能缩小基类方法的访问权限
在同一个类中方法只能重载,不能覆盖
子类的对象赋给基类的引用,这种行为称为“向上转型”

当基类的引用指向派生类的对象时,对方法的调用是动态解析的,即根据对象的实际类型动态选择。
这称为动态绑定(或运行期绑定)

final关键字可应用于类、方法和变量
final表示不可改变

声明为final的类不能被继承
声明为final的方法不能被覆盖
类中的private方法都是隐式final方法
final类的所有方法都是隐式final方法
final修饰符可以修饰静态变量、实例变量和局部变量,分别表示静态常量、实例常量和局部常量 
posted @ 2011-07-09 20:03  Horrison  阅读(211)  评论(0编辑  收藏  举报