(一)Java语言基础语法
八种基本数据类型
byte、short、int、long
float、double
char
boolean
运算符
+ - * / %
> >= < <= == !=
&& || !
= += -= *= /= %=
++ --
?:
分支语句
if (true/false) {
}
if (true/false) {
} else {
}
if (true/false) {
} else if(true/false) {
} else{
}
循环语句
for (int i=1;i<10;i++) {
}
int i = 1;
while(i < 10){
i++;
}
数组
int[] arr = {1,2,3,4,5};
int[] brr = new int[5];
for (int i=0; i < arr.length; i++) {
arr[i]
}
for(int b:brr){
b
}
方法
没有返回值的方法
定义:[public] [static] void 方法名(参数列表) { 方法实现 }
调用:方法名(参数列表);
有返回值的方法
public static void 方法名(参数列表) { 方法实现 }
定义:[public] [static] 返回类型 方法名(参数列表) { 方法实现 return 返回值;}
调用:返回类型变量= 方法名(参数列表);
(二)Java语言面向对象
(1)类的概念:被class修饰的叫做类。 类的理解:类表示现实生活中的【图纸】或【模板】。
对象的理解:表示现实生活中真实的【实例】或【实体】。(2)成员变量的概念:在类中定义的变量叫做类的成员变量。 成员变量的理解:描述类的【属性】或【状态】。(3)成员方法的概念:在类中定义的方法叫做类的成员方法。 成员方法的理解:描述的类的【功能】或【作用】。(4)构造方法的概念:方法名和类同名、没有返回值也没有void关键字。 构造方法的理解:根据类的模板创建出、生产处、制造出【真实的实例】。
(5)创建对象的语法格式: 类名 变量 = new关键字当前类的构造方法() 父类 变量 = new关键字子类的构造方法() 接口 变量 = new关键字实现类的构造方法()
(6)成员变量和局部变量的区别成员变量:成员变量在类中定义的、所以它的作用范围是类的内部。局部变量:局部变量在方法定义的、所以它的作用范围是方法的内部。作用域的本质:所在的语句块。找准看准语句块。(7)Java语言中的类型分为两种基本数据类型:八种基本数据类型。引用类型(类类型):除了八种基本数据类型之外都是类类型。(8)基本类型和类类型的区别基本类型:变量中存储的是真实的值。引用类型:变量中存储的是对象在内存中地址的值。(9)值传递值传递:在方法调用传参的过程中、基本数据类型传递真实的值、类类型传递的是地址的值。扩展:return 基本类型、return 类类型(10)引用类型的变量和对象之间的关系一个变量可以引用零个或一个对象、一个对象可以被多个变量引用。(11)null空关键字、只能用于类类型、表示变量不引用任何对象、没有地址。(12)static静态关键字被static修饰的成员叫做静态成员、属于类在类的里边、通过【类名.成员】的方式来调用。不被static修饰的成员叫做非静态成员、属于对象在对象里边、通过【对象.成员】的方式来调用。了解:静态成员可以被所有对象共享。(不建议)(13)this关键字this关键字表示【当前】类的对象。(注意:代码执行到某一行创建的那个对象)作用一:区分同名的成员变量和局部变量。作用二:用于当前类中构造方法之间的调用。
(14)super关键字:表示父类的引用。作用:使用super关键字调用父类的同名变量或方法。子类可以访问父类中的成员。(15)可见性:4个范围3个关键字private 私有 当前类 默认 当前类+ 本包protected 保护 当前类+ 本包+ 外包子类public 公共 所有
(16)抽象类的概念:被abstract修饰类叫做抽象类。 抽象类的理解:描述的是现实生活中抽象的【图纸】或【模板】。
(17)抽象方法的概念:被abstract关键字修饰并且没有方法语句块的方法叫做抽象方法。(18)抽象类中不一定包含抽象方法、包含抽象方法的类一定是抽象类。(19)接口概念:被interface修饰叫做接口。 作用:类(具体类/抽象类)通过implements关键字实现接口中抽象方法。 理解:接口负责设计、类负责实现。(20)类型转换:向上转型:子类转换为父类、实现类转换为接口、没问题。向下转型:父类转换为子类、接口转换为实现类、需要强制类型转换。
(21)package包的使用:定义包:package 包名导入包:import 包名.类名注意:本包的类不需要导入即可使用、外包的类必须导入才能使用。
(22) 具体类 抽象类 接口 class abstract class interface成员变量 都可以 都可以 public static final成员方法 全部实现 部分实现 public abstract构造方法 有 有 没有创建对象 能 不能 不能意图目的 实现 设计(继承) 设计(23)具体类、抽象类、接口同时使用的句式:具体类:A抽象类:B接口:C, D, E注意:继承中的父类只能有一个、实现的接口可以有多个。public class A extends B implements C, D, E {}(24)面向对象语言的特征:封装封装:类的把相关的成员变量和成员方法封装到类的内部。理解:一切皆对象。
[if !supportLists](25) [endif]面向对象语言的特征:继承继承:子类通过extends关键字继承父类、父类成员有的子类都有。理解:父类设计、子类实现。父类管理子类。
[if !supportLists](26) [endif]面向对象语言的特征:多态多态:多种形态/给用户多种选择类内部多态:在一个类中有多个方法的方法名相同参数不同。又叫做重载。继承中多态:在父类和子类中有2个方法的定义完全相同会自动调用子类方法。又叫做覆写。(27)final关键字:final修饰变量、表示常量。final修饰方法、不能被覆写。final修饰类、不能被继承。
(28)类的加载顺序:静态->非静态->构造方法注意:静态不能包含非静态
(29)默认如果类中不写构造方法、Java会默认提供一个公共的无参的构造方法。
如果类乜有继承父类、Java会默认这个类继承Object顶级父类。
如果成员变量不赋初值、int默认0、double默认0.0、boolean默认false、类类型默认null
(30)单例模式和工厂模式
// 单例模式// 编写一个S类// 要求对外只提供一个对象// 让所有人使用的S类的对象都是同一个public class S { static S s; private S(){ } // Java项目:多线程机制:线程A和线程B // synchronized线程同步关键字确保方法是线程安全 // 保证每次只有一个线程访问这个方法 public synchronized static S getS(){ if (s == null) { s = new S(); } return s; }}
// 工厂模式
public class CarFactory { public static Car getCar(int i){ if (i == 1) { return new Benz(); } else if (i == 2) { return new Audi(); } else { return null; } }}
(31)==和equals区别
基本数据类型使用==符号比较是否相等引用类型使用equals方法比较是否相等、引用类型使用==比较的是地址的值
(三)Java语言核心API
java.lang.Math
java.util.Random
java.lang.String
java.lang.StringBuilder
java.util.Collection
java.util.List
java.util.ArrayList
java.util.LinkedList
java.util.Set
java.util.HashSet
java.util.TreeSet
java.util.Map
java.util.HashMap
java.util.Hashtable
java.lang.Byte
java.lang.Short
java.lang.Integer
java.lang.Long
java.lang.Float
java.lang.Double
java.lang.Boolean
java.lang.Character
java.util.Date
java.text.SimpleDateFormat
java.io.FileReader
java.io.BufferedReader
java.io.FileWriter
java.io.BufferedWriter
java.lang.Exception
java.lang.RuntimeException