1.八大基本数据类型
byte(字节型8) int(整型;32;程序中一般默认为int型) short(短整型 16) long(长整型 32) float(浮点型 32) double(双精度浮点型 64) char(字符型 16) boolean(布尔型 只有true和false)
小范围内的整数类型可以通过赋值转化成大范围的数据类型.而大范围的数据类型要想转换为小范围的数据类型,则需要强制转换,使用”(数据类型)”进行强制转换
string不是java中的一种基本数据类型,它是一个特殊的类,它的对象是引用类型.
2.类
类中定义了对象所共有的方法和属性,就像一个模板,可以通过类创建多个对象
类的定义:格式:public class 类名{}
在类中写方法和属性
属性的定义:private 数据类型 属性名;
主程序入口(主函数): public static void main (Sring args [ ]){}
创建类的对象: 类名 对象名= new 类名();
*都要注意大小写,类名要与class文件名相同
3.方法
1.一般方法
方法的定义格式:访问限制符 返回类型 方法名 (参数类型 参数){}
方法的分类:1.有参无参 2.有返回值,无返回值
方法的调用: 对象名.方法名(参数);
*方法调用时,要根据定义方法时是否有参数来调用,若方法有参数,调用时也要加上相应的参数,也可以传入对象
方法的重载:方法名相同,而参数类型和参数的个数不同
2.构造方法
每个类都有一个默认的无参的构造方法
如果自己再定义一个构造方法,程序就会使用重新定义的构造方法,即构造方法的重载
主要用途:初始化对象的属性值
构造方法没有任何返回值类型,且必须与类名相同
访问限制符 方法名(参数类型 参数){}
4.this关键字
在类中用来指代当前对象 this.name =name; 第一个name为属性值,第二个name为传入的参数值
5.值传递与引用传递
值传递传递的是变量中的内容,引用传递传递的是变量的首地址
6.类的继承
public class 子类名extends 父类名{}
使用extends关键字,子类自动具有父类的方法和属性,当子类调用方法时,是在调用父类中的方法,子类也可自己定义方法.
子类中方法的重写:和父类的方法要一致,方法体不一样.
*在java中子类只能继承一个父类
7.多态指的是一种不确定性,只有在运行之后才知道具体的内容
8.接口
子类重写父类飞的方法是必须要定义接口
接口的定义是interface,而不是class
接口默认的限制符是public
接口定义的规则:1.接口中定义的方法不能有任何方法体,只定义方法的返回值类型,方法名,参数,不能用任何的实现.
2.不能直接使用接口创建对象
3.接口中可以定义属性,但这些属性定义后不可以在改变
接口的实现使用的是implements
public class 类名 implements 接口名{}
实现类中必须重写接口中的方法名(接口中方法没有方法体,类中要重写)
类和接口的关系和比较:
*继承的关键字不同,interface和extends
*一个类可以继承多个接口,而一个类只能继承一个父类,一个接口可以继承多个接口
*类通过extends继承类
类通过implements继承接口
接口通过extends继承接口
9.抽象类
抽像类定义使用abstract关键字。
抽象类的定义:修饰限制符 abstract class 类名{}
在抽象类中可以定义像接口中没有实现的方法,也可以定义实现了的方法,所以说抽象类是介于类的接口之间的
定义抽象方法的格式:限制修饰符abstract void方法名();
*子类继承抽像类时,使用extends关键字,在子类中,必须实现抽象类中的抽象方法。子类只能同时继承一个抽象类,与接口不同
*抽象类也不能直接创建对象,与接口相同
10.关键字
1.可见性修饰关键字:
public:公有的,公开性最高。抽象类,接口的默认关键字
放在方法前,表示方法可以被其他包中的类调用
private:私有的。只能由类内部的方法或构造器来调用,属性一般定义为private的
protected:受保护的。类的默认关键字
2.static关键字:
static方法:使用static限定的方法称为静态方法
它与非静态方法的区别是:非静态方法的调用需要通过创建该类的对象来调用
静态方法直接使用类名。静态方法名()调用
static属性:可以在任何方法中直接使用,不创建类的对象
3.super:调用父类方法
4.final:最终的,表示不可改变,放在属性前表示不可更改,放在方法前,当子类继承时,不可以重写此方法
11.数组
一维数组的定义:数据类型 数组名 [ ] = new 数据类型[数组长度];
数据类型 数组名 [ ] = {值,……};
二维数组的定义:数据类型 数组名 [ ] [ ] = new 数据类型 [数组长度][数组长度];
数组排序的方法:冒泡法,插入排序,选择排序……
12.对列
队列可以像数组一样有序的存放对象,也可以自动增长
实现队列的思路:在实现类的内部,使用数组保存装入队列的对象,每次添加新的对象时,创建一个比原来数组长度大一的数组
泛型:定义接口时 接口名<E>,相当于一个模板
在创建队列时,指定队列中存放对象的类型即可
13.集合框架:
Set:无序的
List:相对有序的,以线性方式存储,没有特定的顺序,只有一个开头和结尾
Queue:有序的
14.文件:
通过File对象的方法创建文件或目录,删除文件和获取列表目录下的文件
文件分类:真实文件,目录文件,虚拟文件
递归:是通过自己调用自己进行计算,关键是找好终止运算的条件,否则将陷入死循环
15.异常:
在程序运行的过程中,发生一些情况,导致程序可能出错(中断运行)
常见的异常:空指针异常,文件异常,IO异常
异常处理的一般方法:将异常往外抛
1. try{}catch(){}finally{}
2. throws
16.IO流:
流是java中输入输出的抽象
流的分类:按方向分:输入流(InputStream)和输出流(OutputStream)
按性质分:基础字节流,过滤流,基与具体数据类型的流,基与对象读写
InputStream/OutputStream子类:文件读写
FileInputStream:从文件中读取数据
FileOutputStream:写数据到文件
缓冲流:BufferedInputStream/BufferedOutputStream
使用流读写数据时,一般是一个字节一个字节的读取
经历的过程为:输入文件—>操作系统内存—>JVM内存—>代码变量—>操作系统内存—>输出文件
而缓冲流则是开辟了一块一定大小的区域,使得每次传送缓冲区字节相对较多的字节,大大提高了效率