总结(2月6日)

第一章
Java基础入门

JDK的配置
安装路径:选择到bin目录

Path的变量值中添加安装路径,注意要添加分号
数据类型
基本数据类型
Byte,short,int,long,float,double,char,boolean,String
引用类型
只要使用class,interface,abstract class定义的类都属于该类型,数组

String使用equals方法和==分别比较的是什么?
String既可以作为一个对象来使用,又可以作为一个基本类型来使用。这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = "Hello",它的使用方法如同基本类型int一样,比如int i = 1;,而作为一个对象来使用,则是指通过new关键字来创建一个新对象,比如String s = new String("Hello")。但是它的内部动作其实还是创建了一个对象。
用"=="来比较,是针对两个String类型的变量的引用,也就是说如果两个String类型的变量,它们所引用同一个String对象(即指向同一块内存堆),则"=="比较的结果是true。用Object对象的equals()方法来比较,String对象继承自Object,并且对equals()方法进行了重写。两个String对象通过equals()方法来进行比较时,其实就是对String对象所封装的字符串内容进行比较,也就是说如果两个String对象所封装的字符串内容相同(包括大小写相同),则equals()方法将返回true。
1、///////////////////////////////////////////////////////////////////
String s1 = new String("Hello");
String s2 = new String("Hello");

System.out.println(s1 == s2);
System.out.println(s1.equals(s2));

以上代码段的打印结果是:

false
true
两个String类型的变量s1和s2都通过new关键字分别创建了一个新的String对象,这个new关键字为创建的每个对象分配一块新的、独立的内存堆。因此当通过"=="来比较它们所引用的是否是同一个对象时,将返回false。而通过equals()方法来比较时,则返回true,因为这两个对象所封装的字符串内容是完全相同的。
2、///////////////////////////////////////////////////////////////////
String s1 = new String("Hello");
String s2 = s1;

System.out.println(s1 == s2);
System.out.println(s1.equals(s2));

以上代码段的打印结果是:

true
true
变量s1还是通过new关键字来创建了一个新的String对象,但这里s2并没有通过new关键字来创建一个新的String对象,而是直接把s1赋值给了s2,即把s1的引用赋值给了s2,所以s2所引用的对象其实就是s1所引用的对象。所以通过"=="来比较时,返回true。既然它们引用的都是同一个对象,那么通过equals()方法来比较时,肯定也返回true,这里equals()方法其实在对同一个对象进行比较,自己肯定等于自己。
针对String作为一个基本类型来使用:
1。如果String作为一个基本类型来使用,那么我们视此String对象是String缓冲池所拥有的。
2。如果String作为一个基本类型来使用,并且此时String缓冲池内不存在与其指定值相同的String对象,那么此时虚拟机将为此创建新的String对象,并存放在String缓冲池内。
3。如果String作为一个基本类型来使用,并且此时String缓冲池内存在与其指定值相同的String对象,那么此时虚拟机将不为此创建新的String对象,而直接返回已存在的String对象的引用。

针对String作为一个对象来使用:
1。如果String作为一个对象来使用,那么虚拟机将为此创建一个新的String对象,即为此对象分配一块新的内存堆,并且它并不是String缓冲池所拥有的,即它是独立的。

String的使用
Length()
toString()
substring()
indexOf(“”)
charAt()
endsWith()
equals()
ValueOf()


第二章
类和对象
对象
一切皆对象
特征和行为

类是对象的集合
属性和方法
类的格式
Public class 类名{
Private 数据类型 属性名;
Public 构造函数名(参数类型 参数名,…){
}
Public 返回值类型 方法名(参数类型 参数名,…){
}
}
实例化对象和调用方法的格式
类名 对象名 = new 构造函数(参数值,..);
对象名.方法名(参数值,…);
构造函数
没有返回值类型;方法名必须要和类名相同。
区别:
没有返回值类型,必须要有
方法名必须和类型相同,可以任意定义
实例化对象,执行对象的某一个行为
调用一次就实例化一个新的对象,只要对象不变执行的将是同一个方法。
方法重载
参数个数,参数类型,参数顺序要不同
方法名要相同。
调用根据参数个数,参数类型,参数顺序来决定的。
This关键字
This关键字是表示当前的对象。
参数名和属性名相同的时候使用this区分
调用自己本身的方法
值传递和引用传递
值传递适用于基本数据类型
引用传递适用于引用类型


第三章
Swing组件
组件应用
JFrame,JPanel,JButton,JTextField,JLabel,FlowLayout,BorderLayout,GridLayout


第四章
类的继承
为什么要使用继承
代码重用
程序扩展
继承格式
关键字 extends
Public class 子类名 extends 父类名或者抽象类 implements 接口名,…{
重写接口中所有的抽象方法
}
公有的属性和方法
在不同包下,在相同包下分别继承了什么?
当子类和父类在同一包下时,子类可以继承父类中公有的、受保护的、默认的方法和属性,私有的方法和属性以及构造函数都不可以被子类继承。
如果不在同一包下时,只能继承公有的方法和属性。

方法重写
继承
方法名和参数必须完全相同
访问修饰符可以大于或者等于父类的访问修饰符。
返回值类型必须要完全相同
对象必须是子类,才会优先调用子类重写的方法。
自动转型
必须存在继承关系
格式一:
父类名  对象名 = new 子类构造函数();
Student stu = new UNStudent();
Stu.stdy();
格式二:

接口

抽象类

类和接口有什么区别?
1、接口类似于类,但接口的成员都没有执行方式,它只是方法、属性、事件和索引的组合而已,并且也只能包含这四种成员;类除了这四种成员之外还可以有别的成员(如字段)。
2、不能实例化一个接口,接口只包括成员的签名;而类可以实例化(abstract类除外)。
3、接口没有构造函数,类有构造函数。
4、接口不能进行运算符的重载,类可以进行运算符重载。
5、接口的成员没有任何修饰符,其成员总是公共的,而类的成员则可以有修饰符(如:虚拟或者静态)。
6、派生于接口的类必须实现接口中所有成员的执行方式,而从类派生则不然。


第五章
画图板
事件机制
事件源
监听器
处理者

事件的执行流程?
1.event object:就是事件产生时具体的“事件”,用于listener的相应的方法之中,作为参数,一般存在于listerner的方法之中

2.event source:具体的接受事件的实体,比如说,你点击一个button,那么button就是event source,这样你必须使button对某些事件进行响应,你就需要注册特定的listener,比如说MouseEvent之中的MouseClicked方法,这时它就必须有了add方法

3.event listener:具体的进行监听的事件类,当有其对应的event object产生的时候,它就调用相应的方法,进行处理。在windows程序设计里边这种响应使用callback机制来实现的


第六章
关键字
52个关键字,50个关键字,2个保留字
Final
Static


第七章
数组
定义格式:
数据类型 数组名[] = new 数据类型[长度];
使用数组:数组下标,length
优点和缺点
数组优点:
1)可以利用偏移地址来访问元素,效率高,为O(1)
2)可以使用折半方法查找元素,效率较高
数组缺点:
1)空间连续,存储效率低;
2)插入和删除元素效率比较低,且比较麻烦

自定义队列


第八章
集合框架
List:有序并且允许重复的集合
ArrayList,LinkedList,Vector

Set:无序不允许重复的
HashSet,TreeSet,LinkedSet

Map:键值对并且键不允许重复
HashMap


第九章
重绘
Paint方法
集合存储之前的图形。


第十章
五子棋
算法和程序的结合。


第十一章
文件异常
File,File的常用方法
异常:
强制异常和运行时异常(隐式异常)
列举一些java的常见异常?
java.lang.NullPointerException
java.lang.ClassNotFoundException
java.lang.ArithmeticException
java.lang.ArrayIndexOutOfBoundsException
java.lang.IllegalArgumentException
java.lang.IllegalAccessException


第十二章
I/O流
文件流  File
基本数据流 Data
缓冲流 Buffered
对象流 Object

文件格式

第十三章
高级Swing组件


第十四章
JTable


第十五章
JTree


第十六章
线程
概念
线程是程序中一个单一的顺序控制流程

创建方式
(1)通过扩展Thread类来创建多线程
(2)通过实现Runnable接口来创建多线程

为什么要用线程
同时执行多个运行单位。

你可能感兴趣的:(总结)