自己花了500多大洋在慕课上买的教程 https://class.imooc.com/sc/64/learn#
1、快速熟悉java
	1、java基础
		1、基本数据类型
			整型
			字符串
			浮点
        2、各种运算符
			1、比较运算符	> == >= <=
			2、布尔运算符 && ||
			3、或运算符
			4、小括号运算符
			5、运算符优先级
			6、位运算符
				1、按位并 (AND) & 如果两个数的二进制位都是1,返回true
				2、按位或 (OR) | 如果两个数的二进制位有一个是1,返回true
				3、按位异或 (XOR) ^ 如果两个数的二进制位只要不相同那就是1,若两个位相同那就是0
				4、按位取反 ~ 需要一个操作数,对一个数二进制取反
			7、快速运算写法
				a ^= 1
				a >> = 1
				…
		3、类型转换
			1、自动类型转换
			2、强制类型转换
		4、字符串
			1、字符集、编码
			2、字符串加法
		5、if/else流程控制语句
		6、for、while、do … while循环
		7、switch
		8、数组
			特点:
				1、数组是连续的内存空间
			1、一维数组
			2、多维数组
		9、类、对象
		10、包
		11、方法
			1、方法重载 (方法名相同,参数列表不同,注: 返回值类型不在考虑范围)
		12、传值、传引用
			1、类型分为普通数据类型、引用数据类型
				普通数据类型,比如int、string等
				引用数据类型:数组、对象
		13、可变参数列表和数组的区别
			1、可变参数列表必须排在最后
			2、一个方法参数中只能有一个可变参数列表
		14、面向对象
			1、声明对象是在栈空间,实例化对象是在堆空间
			2、构造方法
				1、构造方法间可以通过this()进行构造方法的调用
				2、父类的构造方法不允许被继承、不允许被重写
				3、父类如果没有无参构造方法,会影响子类的对象的实例化
			3、封装
				不带修饰符、public、protected、private
			4、static 关键字
				1、无论实例化多少个对象,它们都公用一个静态成员
				2、既可以通过“对象.静态成员”,也可以通过“类名称.静态成员”访问
				3、可以加在类属性、方法前面
			5、继承
				定义:
					1、两个类之间满足“A is a B”的关系就可以形成继承关系,如小轿车(或者大货车)都是汽车,那小轿车(或大货车)都继承自汽车
					2、可以通过“extends”来实现
				方法重写
					1、是子类重写父类的方法
					2、要求:方法名相同、参数列表相同(参数类型、个数、类型),返回值类型相同
					3、子类的访问修饰符必须大于或等于父类方法的访问修饰符
					4、子类中是可以重写父类的成员属性的
					5、静态方法和final方法不能被重写
					6、重写方法访问权限必须大于等于父类方法
					7、继承加载顺序为:父类静态代码块 > 子类静态代码块 > 父类代码块 > 父类构造方法 > 子类代码块 > 子类构造方法
			6、super关键字
				1、可以访问父类属性、方法
				2、子类可以通过该关键字调用父类其它构造方法
				3、调用构造方法时必须放在方法体第一行
				4、”super.(方法/属性)”,super()或者super(参数)必须在构造方法中执行
			7、this和super的区别:
				1、都不能在static方法中运行
				2、this可以访问当前类的属性、方法(包括构造方法)
				3、super可以访问当前类的父类的属性、方法(包括构造方法)
			8、多态
				1、向上转型
					当父类引用指向子类实例时,父类可以调用子类重写父类的方法
				2、向下转型
					1、当子类引用指向父类实例时,必须对父类实例进行强制转换,这时候能调用子类特有方法(但是如果父类实例并没有该方法时,编译虽然能通过,但是执行时仍会报错 — 可以用 instanceof 运算符进行判断)
				3、類型轉換
					不能进行兄弟类间的强制类型转换,若编写该语法,则编译不会报错,但运行过程会报错
			9、抽象
				1、不能被直接实例化、只能被继承
				2、包含抽象方法的类一定是抽象类
				3、static、final、private不能作为抽象类的抽象方法修饰符
			10、接口
				1、接口类中常量可以写成 “int TMP1 = 10;”
				2、接口常量在定义的时候必须初始化其值
				3、接口之间可以相互继承、并且可以继承多个
			11、内部类
				1、分类:成员内部类、静态内部类、方法内部类、匿名内部类
				2、特点:
					1、内部类在外部类使用时,无法直接实例化,需要借由外部类信息才能完成实例化
					2、内部类的访问修饰符,可以任意,但是访问范围会受到影响
					3、内部类可以直接访问外部类的方法和属性,如果出现了相同的属性,优先使用内部类定义的
					4、内部类可以使用 外部类.this.成员方法/属性 的方式,访问外部类中同名的信息
					5、外部类访问内部类信息,需要通过内部类实例化访问,无法直接访问
			12、方法内部类
				1、内部类名称不能包含public、private、protected、static关键字
			13、匿名内部类
				1、适用于只用一次的场景
				2、匿名内部类没有类型名称、实例对象名称
				3、编译后的文件命名: 外部类名$数字.class
				4、无法编写构造方法、可以添加构造代码块
				5、不能出现静态成员 (带final关键字的static可以用)
			14、异常
				1、按类型分为: 两个大类,error和exception,exception分为: check异常(SQLexception等)、uncheck异常两类 (runtime exception:内存溢出、空指针异常等)
				2、异常捕获主要靠5个关键字:try catch finally throw throws
	2、java进阶 (待定)
		1、jvm
2、快速搭建一个spring boot项目
	1、introduction
