一:Java特点:
1.面向对象
2.简单性
3.分布性
4.平台无关性
5.多线程
二:Java基本数据类型
1.基本数据类型包括整数类型、浮点类型、字符类型和布尔类型
整型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean
2.整数整数类型表示没有小数点的整数值。
3.浮点类型表示带小数点的数值。
4.字符类型用于表示一个字符。字符常量用单引号引起来。
5.布尔类型只有两个值:true和false.
四:Java符号
Java符号分为:关键字、标识符、运算符和分隔符。
关键字:编程语言事先定义好并赋予特殊含义的单词。所有的关键字都是小写的。
五:Java运算符
1.一元运算符的优先级高于二和三元运算符。
2.不同种类运算符的优先级有高低之分,算术运算符的优先级高于关系运算符,关系运算符的优先级高于逻辑运算符,逻辑运算符的优先级高于条件运算符,条件运算符的优先级高于赋值运算符。
3.有些同类运算符优先级也有高低之分,在算术运算符中,乘、除、求余的优先级高于加、减;在关系运算符中,小于、大于、小于等于、大于等于的优先级高于相等与不等;逻辑运算符的优先级按从高到低排列为非、与、
六:while语句和do....while语句
1.已知循坏次数最少执行一次的情况,while语句和do....while语句可以互换。
2.如果在检验循环条件前要执行循环体,使用do...while语句。
七:break和continue语句
break语句:
1.break语句用于跳出本层循环,进入外层循环。
2.在循环语句中常与条件语句一起使用。
continue语句:
1.用于终止本次循环,跳过该循环体中位于continue后面的语句,进入下次循环。
2.用于循环语句中,类似于break语句,常与条件语句一起使用。
注意:
1.break和continue都可以在循环中使用,为循环提供额外的控制。
2.在某些情况下,使用break和continue可以简化程序设计。但是,过度使用或者不正确使用会使程序难以读懂也难以调试。
八:数组
1.数组是一组具有相同类型和名称的变量的有序集合。
2.组成数组的这些变量称为数组的元素,一个数组可以含有若干个元素。
3.下标也叫索引,用来指出某个元素在数组中的位置。
4.数组中第一个元素的下标默认为0,第二个元素的下标为1,以此类推。如果某一数组有n个元素,则其最大下标为n-1。
一维数组:
数据类型[ ]数组名=new 数据类型[长度]
例:int[ ] score=new int[5]
二维数组:
数据类型符[ ][ ] 数组名=new 数据类型符[长度1][长度2]
例:double[ ] [ ] score=new double[2][3]
九:泛型
1.什么是泛型:
泛型是一种参数化类型的机制,它可以使得代码适用于各种类型,从而编写更加通用的代码。
在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
2.泛型的作用:
集合默认的存储类型为Object类型,向list对象加入了一个字符串类型的值和一个Integer类型的值,这样是合法的操作。
在之后的循环中进行取值强转时,由于忘记了之前在list中加入了Integer类型的值或其他原因,运行时会出现java.lang.ClassCastException异常。
为了解决这个问题,泛型应运而生。Java泛型编程是JDK1.5版本后引入的,泛型让编程人员能够使用类型抽象,通常用于集合里面。
通过使用List<String>直接限定了List集合中只能存储String类型的元素。那么就会在编译list.add(100)时报错,从而避免了在运行时发生错误。由于集合记住元素的类型信息,因此无须再进行强制类型转换。
类型安全:通过知道使用泛型定义的变量的类型限制,编译器可以更有效地提高程序的类型安全。
消除强制类型转换:泛型的一个附带好处是消除源代码中的许多强制类型转换,这使得代码更加可读并且减少了出错的可能。
3.泛型标记符:
T-Type(java数据类型)
E-Element(在集合中使用,因为集合中存放的是元素)
K-Key(键)
V-Value(值)
N-Number(数值类型)
4.泛型约束:
向下约束:T extends Number(T为数字类Number或其子类)
向上约束:T super Number(T为数字类Number或其父类)
5.创建泛型方法:
未使用泛型之前,当需要实现对不同数据类型的相同处理,可使用Object类型。
如果不是所有类型均适用,可使用方法的重载。例如:Math类中的abs方法。
十:getter与setter方法
Java不提倡将成员变量的保护级别设为public,而使用户在类外任意操作,对所有有必要在类外可见的成员变量,Java推荐采用“方法”来处理。
Java通过方法用于读取和写入成员变量值,而不是直接读取和写入,以此来提供对类中成员变量的保护。
使用方法,还可以对输入的数据进行检验。
getter方法:返回对象内部的成员变量的值
setter方法:用来设置成员变量,可以在方法里面过滤掉一些不合理的值
getter、setter用于读取和写入成员变量值,可在方法中增加代码进行数据处理。
使用setter可以对输入的数据进行检验
使用getter可以对读出的数据进行处理
getter与setter可根据需要只有其中一个。如果只需要读取成员变量的值,可以只编写getter方法;如果只编写getter方法;如果只需要对成员变量赋值,可以只编写setter方法。
十一:抽象类
多态性:
多态是指不同类的对象,调用同一个方法出现不同的结果。
多态存在的三个必要条件:
1.要有继承
2.要有重写
3.父类引用指向子类对象
抽象方法:只有方法的声明,没有任何代码的实现。用abstract修饰符进行声明。它告诉编译器,派生类必须通过重写该方法以提供它们自己的实现。
抽象类:含有一个或一个以上的抽象方法的类。
抽象类中可以包含有一般方法,也可以包含有抽象方法。
抽象类只能作为基类,它本身不能实例化。
如果抽象类的子类不能实现所有的抽象方法,那么子类也必须定义为抽象类。即抽象类派生的非抽象子类,必须实现所有抽象方法。
十二:异常处理
Java中的异常(Exception)又称为例外,是一个在程序执行期间发生的事件,它中断正在执行的程序的正常指令过程。为了能够及时有效地处理程序中的运行错误,必须使用异常类。
存在异常的程序可能产生于程序员不能预料的各种情况,或者超出程序员控制范围的环境因素,比如用户的坏数据,试图打开一个根本不存在的文件等。
所有的异常类是从java.lang.Exception类继承的子类。Exception类是Throwable类的子类。除了Exception类外,Throwable还有一个子类Error.
方法一:使用try....catch语句进行异常的捕获,并进行异常处理
方法二:使用throws关键字,将异常抛给调用者,调用者需要对这个异常继续处理,调用者处理这个异常同样有两种处理方式。Java中异常发生之后如果一直上抛,最终抛给了main方法,main方法向上抛,抛给了调用者JVM,JVM知道这个异常发生,只有一个结果:终止Java程序。(方法1-->方法2-->...-->JVM)
捕获多个异常:
当某个程序块出现多个异常时,可以用多个catch,每个catch捕捉一种异常,捕捉异常的顺序和catch语句的顺序有关,当捕捉到一个异常时,其他catch语句就不再进行匹配了。
catch可以写多个,子类异常在前,父类异常在后。