J2SE总结大全

[size=medium][size=x-small]第一部分
1.jdk环境变量的配置:
path:指向可执行文件目录 eg: %JAVA_HOME%\bin
classpath:指向字节码文件
eg: .;E:\java;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib;
JAVA_HOME:指向jdk安装目录。 eg: C:\Java\jdk1.6.0_14
2.Java程序的执行过程。
源文件:用于编辑Java程序的文件,以.java做为扩展名。
字节码文件:Java虚拟机中解释执行的文件。
3.Java程序的分类。
Java应用程序(Application):以main方法做为入口。
main方法格式:public static void main(String[] args)
客户端小应用程序(Applet):主要嵌入到网页中。
4.Java程序的组成。
Java程序基本组成单位是类。
比较完整的Java程序如:
package 包;
import 要导入的包;
class 类名{
属性声明

方法声明
}
第二部分
1.标示符命名规则:以数字、Java字母、美元符和下划线组成,且不能以数字开头。
2.Java中的类型。
基本数据类型:
整型:byte short int long
布尔型:boolean
字符型:char
浮点型:float double
3.基本数据类型之间的转换。
自动类型转换:由占用空间小的类型向占用空间大的类型的转换。
例外:long型可以向float型实现自动转换。
强制类型转换:由占用空间大的类型向占用空间小的类型的转换。
注意:丢失精度。
4.运算符
++或--(增1或减1):如果放在变量前面,则表示先自增或自减,后运算,放在后面则相反。
+:如果两个数都为数值型,则进行相加运算,如果有一个为字符串类型,则进行字符串连接。
&&或||:短路与或短路或。
5.流程控制
1)顺序结构:语句按由上到下的顺序执行。
2)分支结构:
格式1:if(表达式){语句体}
格式2:if(表达式){语句体1}else{语句体2}
格式3:if(表达式1){语句体1}else if(表达式2){语句体2}...else{语句体n}

switch语句格式:
switch(表达式)
{
case value1:语句1;break;
case value2:语句2;break;
.
.
default:语句n;
}
注意:1)switch中的表达式的返回值只能是byte short int char 枚举 封装类
2)switch语句不能解决数值范围问题。

3)循环结构
1>.do while循环格式:
do{
循环体
}while(表达式);
注意:此循环结构循环体部分至少被执行一次。
2>.while循环格式:
while(表达式)
{
循环体
}
3>.for循环格式
for(循环变量初始化;循环条件;变量增加或减少)
{
循环体
}

执行顺序:1.执行循环变量初始化,且只执行一次。
2.判断循环条件,如果为真,则执行循环体。
3.变量增加或减少。
4.重复以上2、3两步。
第三部分
1.类:具有相同属性和行为的对象的集合。
对象:对象是类的实例。
2.类的组成:成员变量和成员方法。
成员变量声明形式:
权限控制符 变量类型 变量名称[=变量值]
成员方法声明形式:
权限控制符 返回值 方法名称(参数列表)
{
方法体部分;
}
构造方法(也叫构造器)声明形式:
访问权限控制符 类名(参数列表)
{
一般进行初始化操作
}

注意:1.构造方法不能被继承。
2.构造方法只能通过new关键字调用。

3.成员变量初始化顺序
1.静态块初始化
2.默认初始化
3.显示初始化
4.块初始化,即两个大括号中
4.构造方法初始化

4.成员变量和局部变量的区别。
1)有效范围
成员变量:跟对象相同
局部变量:在其所在的大括号内。
2)生命周期
成员变量:跟对象相同
局部变量:其所在大括号语句执行结束即消亡。

第四部分
1.数组特点:1.只能存储相同类型的元素。
2.定义时必须制定长度。
3.存储在堆中,且空间连续。
2.数组的定义、初始化及元素引用。
1)数组的定义。
类型[] 数组名称; 或者 类型 数组名称[];
2)数组初始化
1> 动态初始化
类型[] 数组名称 = new 类型[数组长度];
2>静态初始化
类型[] 数组名称={元素值};
或者
类型[] 数组名称= new 类型[]{元素值};

3)数组元素通过下标引用。下标范围(0~length-1)。
int[] arry = new int[5];

Person[] p = new Person[5];

p[0] = new Person();

3.多维数组
二维数组定义:
类型[][] 数组名 = new 类型[3][];

第五部分
1.面向对象基本特性:封装、继承、多态
封装:
private:本类可用
默认:本类和本包中可用
protected:本类、本包或其他包中子类。
public:任何地方都可用。
如果修饰类,则表示在任何其他包中都可用,没有public修饰的类,只在本包中可用。

继承:
子类继承父类的属性和方法,使用关键字extends表示继承关系。
目的:代码重用。

注意:1.子类只可继承父类中受保护的和公共的成员属性和方法。
2.子类的构造方法必须显示或隐式调用父类的构造方法,且只能是子类构造方法的第一条语句。

在具有继承关系的类中,创建子类对象时语句执行顺序:
1.父类成员变量初始化。
2.执行父类构造方法。
3.执行子类成员变量初始化。
4.执行子类构造方法。
class Human
{
private int i = 10;
public Human()
{
System.out.println("------");
}
}
class Chinese extends Human
{
private int j = 100;

public Chinese()
{
super();
System.out.println("+++++++++");
}

public Chinese(int i)
{
this(); //必须是第一条可执行语句。
System.out.println(i);
}

/*
自身普通方法调用格式:this.方法名称(参数列表);
调用父类方法格式:super.方法名称(参数列表);
*/
}

class Run{
public static void main(String[] args)
{
Chinese c = new Chinese();
}
}

多态:父类引用指向子类对象。
多态三种形式:
1.直接父类引用指向子类对象。
2.参数多态。(方法接受父类引用,但实际传递的是子类对象)
3.返回值多态。(方法内部返回子类对象,但方法返回值为父类引用)
如:public Person getPerson()
{
return new Chinese();//Chinese为Person子类
}
方法重写和方法重载:
重写(overwrite或override):子类重新定义父类中的方法。
要求:1.方法名称、返回值类型、参数列表都要相同。
2.重写方法不能具有比被重写方法更严格的访问权限。
3.重写方法不能抛出比父类中被重写方法更广泛的异常。
重载(overload):同一个类当中具有多个重名方法。
要求:方法名称相同,参数列表不同。

static关键字:
static 关键字用法
1.可以用来修饰成员变量和成员方法,叫类方法或类属性,不能修饰构造方法
2.static的成员变量只有一份,存储在静态存储区。
3.static修饰的成员变量或成员方法可以不创建对象,直接用类调用,格式:类名.静态方法(静态属性)
4.静态方法中不能引用非静态成员变量或调用非静态成员方法。但非静态方法可以调用静态方法或引用静态成员属性。
5.类属性在类被加载时分配空间,而普通成员变量在创建对象时分配空间。

抽象类的使用:
1.具有抽象方法的类必须声明为抽象类(抽象方法不能具有方法体)。但抽象类里面可以没有抽象方法。
2.抽象类不能被实例化
3.子类没有实现父类里面的抽象方法,则子类也必须声明为抽象类。
4.父类如果不是抽象类,但子类可以添加抽象方法,成为抽象类。
5.private、final和static关键字不能修饰抽象方法。
6.abstract不能修饰成员变量。

接口的使用:
1.接口用关键字interface表示,接口中只允许有常量和抽象方法。
2.接口中默认的常量形式:public static final; 默认的方法表示形式:public abstract
3.接口功能靠实现类来完成。
4.如果实现类没有完全实现接口中的抽象方法,则实现类必须声明为抽象类。
5.接口允许多重继承。接口继承的格式:interface I1 extends I2,I3(I2,I3也为接口)
6.一个类可以在继承一个父类的同时实现多个接口(继承必须放在最前面)。


异常类:
1.异常分类:错误和违例
错误不需要程序员处理,所以不用捕获。
违例则是指其他因编程错误或偶然的外在因素导致的一般性问题,需要捕获处理

2.Exception分类
运行期异常:表示程序出错在运行期间被检查到。
受检查的异常:表示在编译期间被检查的异常。

3.异常处理机制。

try catch finally throw throws
0)try关键字可以和catch或finally或三个同时使用。
1)try可以对应多个catch块,程序运行过程中至多只能有一个catch块被执行
2)如果程序中受检查的异常被向上抛出,则上层调用必须对其进行捕获。
3)finally块中的语句总会被执行到,除了调用System.exit()方法
4)具有finally语句块的异常处理顺序:
1>try中语句
2>如果发生异常,则执行catch块;否则,执行try中其他语句
3>如果在try块中不存在exit方法,则finally块被执行,即使try块中存在return语句
5)创建自定义异常方法:继承Exception即可。

常用类:
Object中方法:
equals:比较的是对象地址。一般用于子类重写。
hashCode:主要用于提高查找效率。
finalize:由垃圾回收器调用,在垃圾回收器之前调用,执行一些清理工作。
toString:在打印输出中默认调用toString方法。如果要打印有用信息,需重写toString。

equals和==区别:==可以比较基本数据类型,也可以比较引用类型(比较的是地址),equals只能比较引用类型。

字符串相关类:
String类对象一旦创建,则不可改变。
字符串常量存储在StringPool中。

StringBuffer和StringBuilder的区别:
StringBuffer线程安全,效率较低;StringBuilder非线程安全,效率较高。

封装类:自动封装(自动装箱)和自动拆封



容器类:
根接口Collection。
子接口:
List:有序,可以重复
ArrayList(等同于Vector):基于数组实现,对于实现查找效率较高,实现时要重写equals方法。

ArrayList和Vector区别:Vector线程安全,ArrayList非线程安全

LinkedList:基于链表实现。对于插入、删除元素效率较高。实现时要重写equals方法。

Set:无序,元素不可重复(判断两个对象的hashcode是否一致)
HashSet:需重写equals和hashCode两个方法。
TreeSet:(1)TreeSet中元素必须是同一类型,且不允许有null值。
(2)默认TreeSet中元素按自然顺序排序,即按照compareTo方法中指定的顺序。
(3)TreeSet中元素可以实现Comparable接口或为TreeSet指定比较器(实现Comparator接口的类)。
(4)应重写equals,hashCode,compareTo,toString方法
(5)当equals和compareTo同时出现时,两种方法比较规则 要一致。

Map:以键值对形式存储对象。
hashMap:无序,允许null键和null值。

hashMap和hashTable的区别:
1.hashMap非线程安全,hashTable线程安全。
2.hashMap允许null键和null值,hashTable不允许。
TreeMap:以键的自然顺序排列。
[/size][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值