第一章:
1,Java运行的机制:java是编译型和解释型两种类型的集合,即*.java经过编译得到*.class文件再通过电脑解释*.class文件使其懂得*.java文件中的代码
2,程序的编写的形式为:class 类名称{ 代码 }或public class 类名称{ 代码 }(其中public class形式类名称与文件名称必须一致,而class类型可以不一致,即可以产生多个class文件,类名称首字母徐大写),这两种形式的代码编写需从主方法开始,即public static void main(String args[])。
第二章:
1,Java的输出内容形式:System.out.printin();(当输出多个值时,中间可使用“+”连接。
2,java程序注释:单行注释:在注释内容前加//。多行注释:在注释内容前以单斜线加一个星形标记(/**)开头,并在注释内容末尾加*/结束。
3,java中的包,类,方法,参数和变量的名字,可以用任意顺序的大小写字母,数字,下划线,美元符号组成,但标识符不能以数字开头,也不能是java中的保留关键字。
第三章:
1,数据类型的转换:自动转换:低级类型可以自动转换成高级类型,但不可逆。强制转换:语法:(欲转换的数据的类型)变量名称。
2,使用算术运算符“%"时需注意余数的绝对值小于除数的绝对值,余数的符号与被除数相同。
3,&与&&的区别:&&:在第一个条件为否的情况下不需在做判断,&:在第一个条件为否的情况下需判断第二个条件。|与||的区别:与前者相同。
4,运算符:?:的含义:例如:a<b?a:b(如果a<b为真则表达式取a值,否则去b值)
第四章:
对象数组
1),数组格式:
数据类型 数组名称[]=null;
数组的名称 = new 数据类型[长度];
或
数据类型[] 数组名称=null;
2),定义:
指包含了一组相关的对象,但是在对象数组的使用中数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作;
第五章(一些内容):
1,面向对象的程序设计有三个特性:封装性(隐藏重要信息,具有保护作用),继承性(增强代码的可复用性,提高软件的开发效率,降低程序产生的错误的可能性,为程序修改提供便利),多态性(方法重载:同一类中可允许多个方法使用同一个名字,但方法的参数不同,完成功能不同。 对象多态)
2,类与对象:类;是表示一个客观世界某类群体的一些基本特征。对象:表示一个具体的东西。
3,类由状态与行为组成(状态:描述对象的特征,行为:能做什么)
4,对象的创建与使用:语法格式:类名 对象名称= null;对象名称 = new 类名();或 类名 对象名称=new 类名();(该内容与指针有点类似)。
5,封装性:格式:为状态封装:private 属性类型 属性名称;为行为封装:private 方法返回值 方法名称(参数列表){}
6, Java 中字符串属于对象。
String类的实例化:
1),直接赋值
2),调用String类中的构造方法
String对象的比较方法:
1),直接用"=="来进行比较。(该方式是用地址进行比较,不能进行内容比较)
2),使用equals()方法进行比较。(该方法比较的是内容,注意:该方法会区分大小写)
格式:比较对象1.equals(比较对象2)
结果:相同输出ture,不相同输出false。
字符串的内容一旦声明则不可改变,其中原先堆内存中的内容没变,只是有开辟了新的堆内存而已。
第六章:
继承:
1,概念:
新的类能吸收已有类的数据属性和行为,并且能扩展新的能力。
2,类继承格式:
class 父类{}
class 子类 extends 父类{}
3,注意:
1),只允许多层继承不能多重继承
2),子类不能直接访问父类中的私有成员,但可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员
4,子类的实例化过程:
1),子类对象在实例化之前必须首先调用父类中的构造方法之后再调用子类自己的构造方法
2),子类对象在实例化之前会默认调用父类中的构造方法
3),super():表示子类可以直接使用super()调用父类中的无参构造,所以为防止子类的无法调用,在父类中加上无参构造
4),方法的覆写:
概念:子类定义了与父类中同名的方法(但方法覆写时需考虑权限,即被子类覆写的方法不能拥有比父类方法更加严格的访问权限。权限比较:private<default<public)
5,final关键字:
1),作用;声明类,属性,方法
2),注意:
a,使用final声明的类不能有子类
b,使用final声明的方法不能被子类所覆写
c,使用fianl声明的变量即成为常量,常量不可以修改
6,抽象类的概念:
1),目的:要设计者依据它的格式来修改并创建新的类(但并不能直接由抽象类创建对象,只能通过抽象类派生出新的类)
2),使用规则:
a,包含一个抽象方法的类必需是抽象类
b,抽象类和抽象方法都要使用abstract关键字声明
c,抽象方法只需声明而不许要实现
d,抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法
3),定义格式:
abstract class 抽象类名称{
属性;
访问权限 返回值类型 方法名称(参数){
[return 返回值];
}
访问权限 abstract 返回值类型 方法名称(参数);
}
4),与普通类的区别:
普通类的子类可以根据自己的需要选择性的进行某些父类方法的覆写,所以普通方法无法对子类的覆写进行限制,而抽象方法却可以强制要求子类覆写父类方法。
7,对象的多态性
1),类型和格式:
对象向上转型:父类 父类对象 = 子类实例;
对象向下转型:子类 子类对象 = (子类)父类实例;(先做向上类型转换再强制向下转化)
2),在子类覆写了父类中的方法前提下,如果对象发生了向上转型关系,所调用的方法肯定是被子类覆写过的方法(如果一个方法在子类定义但没在父类定义则无法调用该方法)
调用子类自己方法的方法:只能用子类声明对象
8,接口
定义接口的格式:
interface 接口名称{
全局常量;
抽象方法;
}
实现接口格式:
class 子类 implements 接口 A,接口 B,....{
}
(注意:一个实现类实现一个或多个接口时,实现类必须覆写接口中的全部抽象方法)
继承抽象类实现接口的格式:
class 子类 extends 抽象类 implements 接口 A,接口 B,.....{
}
接口的继承格式
interface 子接口 extends 父接口 A,母接口 B,....{
}
(注意:Java中一个接口不能继承抽象类的,但可以一个接口继承多个接口)
9,instanceof关键字
作用:判断一个对象是哪个类的实例
格式:对象 instanceof 类 -> 返回 boolean 类型
(须知子类实例化的对象同时是子类和父类的实例,但父类的实例化并不一定是子类的实例)
10,抽象类与接口的实例化
方法:都通过子类来进行实例化
原因:抽象类:没有具体的实现方法
接口:没有构造方法,所以不能实例化
第七章:
,异常:
1),概念:异常是导致程序中断运行的一种指令流
2),面对异常时的三种措施:不处理,立即处理,暂时不处理
A,不处理:
使用RuntimeException类处理(唯一一个可以不处理异常的类)
B,立即处理:
处理格式:
try{
//有可能出现异常的语句
}catch(异常类 异常对象){
//编写异常的处理语句
}
[finally{
一定会运行到的程序代码
}]
异常类:不同的异常使用不同的异常类例:ArrayLndexOutOfBoundsException(数组超出绑定异常),NumberFormatException(数字格式化异常),ArithmeticEdxception(算术异常)........
在程序中若出现多个不同的异常时可使用处理这些异常的异常类的父类来解决
C,暂不处理:
使用throws关键字
throws使用的格式:
public 返回值类型 方法名称(参数列表....)throws 异常类{}
作用:使用throws声明的方法表示此方法不处理异常,而交给方法的调用处进行处理。(注意:不可交给main方法处理)
附:throw关键字:
作用:直接抛出一个异常,抛出时直接抛出异常类的实例化对象即可。
自定义异常类:
作用:处理Java处理不了的异常
自定义异常总包括如下构造函数:
1)一个无参构造函数
2)一个带有String参数的构造函数,并传递给父类的构造函数。
3)一个带有String参数和Throwable参数,并都传递给父类构造函数
4)一个带有Throwable 参数的构造函数,并传递给父类的构造函数。
第八章:
包
定义:包是在使用多个类或接口时,为了避免名称重复而采用的一种措施。
格式:
package 包名称,子包名称;
编译语法:javac -d . 类名称.java
编译命令两个参数:1),-d:表示生成目录,生成的目录以package的定义为准。
2),.:表示在当前所在的文件之中生成。
import语句:
格式:
import 包子名称.子包名称.类名称; 作用:手工导入所需的类
import 包名称.子包名称.*;作用:由JVM自动加载所需要的类
第九章:
多线程:
1,概念:是实现并发机制的一种有效手段。
2,进程和线程:
进程:是程序的一次动态执行过程。
线程: 是比进程更小的执行单位,是在进程的基础上进行的进一步划分。
3,线程的实现:
1),继承Tread类:
Tread类是java.lang包定义的。一个类只要继承了Tread类,此类就称为多线程操作类。
多线程的定义语法:
class 类名称 extends Tread{ 属性...; 方法...: public void run(){ //Tread子类中必须覆写Tread类中的run()方法,此方法是线程的主体 线程主体; } }
注意:想要正确地启动线程,是不能直接调用run()方法的,而是应该调用Tread类中继承而来的start()方法。
2),实现Runnable接口
接口的定义:
格式:
class 类名称 implements Tread{ 属性...; 方法...: public void run(){ //覆写Runnable接口中的run()方法,此方法是线程的主体 线程主体; } }
3),Tread类与Runnable接口的区别
如果一个类继承Tread类,则不适合于多个线程共享资源,而实现了Runnable接口,可以实现资源共享。
4),同步:
概念:所谓同步是指多个操作在同一个时间段内只能有一个线程进行,其他线程要等待此线程完成之后才可以继续执行。
同步代码块:
代码块是指使用“{}”括起来的一段代码,根据其位置和声明的不同,可以分为普通代码块,构造块,静态块3种,如果在代码块上加上synchronized关键字,则此代码块就称为同步代码块。
同步代码块的格式:
synchronized(同步对象){
需要同步的代码;
}
同步方法:
synchronized 方法返回值 方法名称(参数列表){
//方法体;
}
死锁:
概念:所谓死锁,就是指两个线程都在等待彼此先完成,造成了程序的停滞状态。
注意:多个线程共享同一个资源时需要进行同步,以保证资源操作的完整性,但是过多的同步就有可能产生死锁。
第十二章:
1,File类的基本介绍:
在整个IO包中,唯一表示与文件本身有关的类就是File类。
File类的构造方法:
public File(String pathname)->实例化File类的时候,必须设置好路径
注意:
由于在Windows中使用反斜杠表示目录的分隔符:“\”,Linux中使用正斜杠表示目录的分隔符:“/”,为了满足这两个要求,可使用File类中提供的常量separator(使用格式:File.separator),除此之外还有一个常量pathSeparator(表示“;”)
一个文件的扩展名本身并没有任何意义,即不管有没有扩展名并不影响文件本身的内容(若文件有后缀名可与文件夹同名,否则,不可)
2,RandomAccessFile类
该类对文件的内容进行操作,此类属于随机读取类,可以随机读取一个文件中指定位置的数据。
字节流与字符流
在Java中IO操作的步骤:
a,使用File类打开一个文件
b,通过子节流或字符流的子类指定输出的位置
c,进行读/写的操作
d,关闭输入操作
1),字节流:
字节流主要是操作byte类型数据,以byte数组为准,主要操作类为OutputStream和InputStream类
3,字节输出流:OutputStream
作用:向文件中写入文件
追加新内容:
如果重新执行程序,则肯定会覆盖文件中的已有内容,那么可以通过FileOutputStream类的另一中构造方法进行实例化,先文件追加内容
3,字节输入流:InputStream
定义:向文件中读取内容
4,字符输出流:Writer
5,转换流:
OutputStreamWriter类:是writer的子类,将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流输出对象
InputStreamWriter类:是Reader的子类,将输出的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象
6,内存操作流:
字节内存流:ByteArrayInputStream(内存子节输入流),ByteArrayOutputStream(内存字节输出流),作用:将内容写入内存中
字符内存流:CharArrayReader(内存字符输入流),CharArrayWriter(内存字符输入流),作用:将内存中的数据输出
7,打印流:
作用:提高输出数据的编写效率,实现输出数据的功能。
主要包含:字节打印流(PrintStream)和字符打印流(PrintWriter)
第十七章:
一,JDBC概述:
1,JDBC简介:
作用:提供了一种与平台无关的用于执行SQL语句的标准Java API。
原理:在JBDC中提供的是一套标准的接口,各个支持Java的数据库生产商只要按照此接口提供相应的实现,就可以使用JBDC进行操作。
2,JDBC常见驱动分类:
1),JDBC-ODBC桥驱动
2),JDBC本地驱动
3),JDBC网络驱动
4),本地协议纯JDBC驱动
二,MySQL数据库
MySQL常用命令
连接数据库:
mysql -u 用户名 -p 密码
创建数据库:
创建数据库:CREATE DATABASE 数据库名称;
删除数据库:OROP DATABASE 数据库名称;
使用数据库:
USE 数据库名称;
创建数据库表:
CREATE TABLE 表名称{
字段名称 1 字段类型 [DEFAUIL 默认值][约束],
...............
字段名称 n 字段类型 [DEFAUIL 默认值][约束]
}
删除数据表:
DROP TABLE 表名称;
查看表结构:
DESC 表名称;
查看数据库信息:
查看全部数据库:SHOW DATABASES;
查看一个数据表的全部表:SHOW TABLLES;
三,JDBC操作步骤
1,连接及关闭数据库
2,执行数据库的更新操作:
第十八章:
图形界面编程主要特征:
1),图形界面对象及其框架(图形界面之间的包含关系)。
2),图形界面对象的布局(图形界面对象之间的位置关系)。
3),图形界面对象上的事件响应(图形界面对象上的动作)。
一,AWT,Swing简介
AWT:是Java提供的用来建立和设置Java图形用户界面的基本工具(其所有工具都保存在java.awt包中)。
主要分为以下3种:
1),组件:Component。(创建与平台无关的图形用户界面)
2),容器:Container。(收纳所有的组件,并可以给其设置位置,大小等)
3),布局管理器:LayoutManager。(合理摆放组件的位置)
Swing:是以AWT平台为基础构建起来的型组件(所有的Swing都保存在javax.swing包中,所有组件是从JComponent扩展出来的,此类实际上是java.awt.Component的子类)。
二,基础容器JFrame
三,标签组件JLabel
作用:用于显示信息(一般情况不能更改显示内容)
四,按钮组件JButton(使用此类可以直接在窗体中增加一个按钮)
五,布局管理器
1,FlowLayout(属于流式布局管理器,使用此种布局方式会使所有的组件像流水一样依次进行排列)
2,BorderLayout(将一个窗口的版面划分为东,西,南,北,中五个区域,可以直接将需要的组件方法到这五个区域)
3,GridLayout(以表格形式进行管理组件)
4,GardLayout(将一个个组件重叠在一起布局,每次只展现一个界面)
5,绝对定位:setBounds()方法(自己定义组件的位置,大小,不受窗口变大变小的影响)
六,其他容器:
1,JPanel
在JPanel中可以加入任意的组件,然后直接将JPanel容器加入到JFrame容器中即可显示。
作用:完成各种复杂的界面显示。
2,JSplitPane
作用:分割面板,将一个窗体封为两个窗体,可以水平排列或垂直排列
3,JTabbedPane
作用:在一个面板上设置多个选项卡供用户选择。
4,JScrollPane
作用:为显示的内容加入滚动条。
JScrollPane主要由JViewport和JScrollBar两部分组成,前者主要显示一个矩形的区域让用户浏览,后者主要是形成水平或垂直的滚动条
5,JDesktopPane与JlnternalFrame
在Swing中也可以完成内部窗体的显示,即在一个窗体可以出现多个子窗体,每个子窗体多无法超出父窗体的区域。
JDesktopPane规定一个父类窗体的基本形式,而JInternalFrame规定了各个子窗体。
七,文本组件JtextComponent
1,单行文本输入组件JTextField
作用:方便用户输入数据。
八,事件处理:
1,事件和监听器:
事件:表示一个对象发生状态变化。
监听器:不断监听事件的变化,并根据这些事件进行相应地处理。
事件源:发生此事件地源对象。
2,窗体事件:
WindowListener是专门处理窗体事件地监听接口(使用时需要覆写所有方法)。
3,监听适配器:
Adapter(适配器)类作用:为覆写需要的方法,处理自己想要处理的事件起到过渡作用。
监听适配器的设计方法:在实现类和接口之间增加一个过渡的抽象类,子类继承抽象类就可以根据自己的需要进行的方法覆写
4,动作事件及监听处理:
按钮的动作事件可以使用ActionListener接口处理。
5,键盘时间及监听处理:
方法:为对键盘进行监听,可通过直接使用KeyListener接口即可。
6,单选钮:JRadioButton
含义:在多个显示的信息中选择其中一个。
7,复选框:JCheckBox
作用:实现N选多的操作样式。
8,菜单组件:
JMnuBar组件:菜单栏组件
JMenu组件:菜单组件
JMenultem组件:菜单项组件(注意:JMenuItem可以理解为一种特殊的JButton组件,当选择某个菜单时也会触发ActionEvevnt事件)
9,文本选择框JFileChooser
作用:打开或保存文件
补:
object类:
object类是所有类的父类,如果一个类没有明显的继承一个类,则肯定是object的子类。
object类的主要方法:
1),public Object()
2),public boolean equals(Object obj) 作用:对象比较 (Object obj表示接受任意类型的数据,其中Object的数据类型为引用数据类型,equals方法比较的是地址不是内容)
3),public int hashCode() 作用:取得Hash码
4),public String toString() 作用:取得对象的内容