1. java语言了解
- 1995年诞生
三大版本 JavaSE
JavaME 安卓系统
JavaEE - 2006年大数据 Hadoop
JDK 开发者工具包,配置环境变量
JRE 运行环境
2. HelloWorld 第一个开发程序
- 主程序编写 Hello.java
- javac编译生成class文件
- java Hello执行程序
3. 基础语法
- 注释 : 行内//,多行/* */,文档 / * **/
- 标识符,关键字
- 数据类型
基本数据类型:
整数: byte 1字节>short 2>int 4(默认)>long 8 0b 二进制,0x 十六进制,0 八进制
浮点数: float 4>double 8(默认) BigDecimal
字符: char 2 ascii,utf-8,unicode,‘u0000’(\b,\n,\t,\等)
布尔值: boolean 1位 if(a)
引用类型:类,接口,数组 - 类型转换
自动类型转换 低转高
强制类型转换 高转低 (低)高 - 变量和常量
变量定义:type var Name[=value];
作用域:类变量,实例变量,局部变量
常量:final 一般纯大写 final MAX_A = 10;
命名规范:
> 见名知意
> 变量,方法:驼峰命名
> 类:首字母大写+驼峰
> 常量:大写+下划线
> 不要使用拼音明明 - 运算符
算数运算符 + - * /
赋值运算符 =
关系运算符 > < >= <= == != instanceof
逻辑运算符 && || !
位运算符 & | ^ ~ >> << >>>
条件运算符 ? :
扩展运算符 += -= *= /= - 包机制
域名倒写,防止命名冲突,package,import - JavaDoc
JDK帮助文档
javadoc:@author,@version,@since,@param,@return,@throw
4.流程控制
- Scanner 用户交互system.in
- 顺序结构 程序默认结构,自上而下执行
- 选择结构
if单选择,if-else双选择,if-else-if-else多选择
switch
jdk7支持了String类型
case穿透现象
breadk
default - 循环结构
while 先判断 不可计次数尽量避免死循环
do-while 先执行再判断
for 可计次数 for(int i = 0 ; i < 10 ; i ++)
增强for - break & continue
break:跳出循环
continue:终止当次循环
带标签的continue
return:结束方法
5.方法
- 方法定义
修饰符 返回值 方法名(参数名) {return 返回值;} - 方法调用
类名.方法,对象.方法 - 方法重载
名字相同,参数列表不同 - 命令行传参
给main方法传递参数 - 可变长参数
… 必须放在最后一个参数 - 递归
自己调用自己,给自己一个出口
6.数组
- 数组的定义
必须类型相同
new int[5];
{1,2,3} - 数组的使用
通过下标拿到值
ArrayIndexOutOfBounds 数组下标越界异常
增强for循环遍历 - 二维数组
int[][] - Arrays 工具类
- 排序算法
冒泡排序
选择排序
插入排序
快速排序
归并排序
希尔排序
堆排序
基数排序
7.面向对象
- 类与对象
类是对象的抽象,模板class
对象是类的具体 - 构造方法
构造的重载
无参构造 默认
如果手动定义了有参构造就必须要手动再加一个无参构造
单例模式,需要构造器私有 - new对象
栈存放引用
堆存放具体的对象 - 封装
属性私有,get/set方法 - 继承
extends
Object
子类有父类的全部特性
方法重写
this & super
单继承,只能有一个父类 - 多态
父类的引用指向子类的对象 Person per = new Student();
instanceof关键字,如果匹配可以进行类型间转换 - 修饰符
public
protected
private
default
static
abstract
final - 接口
interface 约束,只能定义方法名
子类实现接口,必须重写其中方法
只有一个方法的接口叫函数式接口,可以使用lambda表达式简化
接口比抽象类更抽象
一个类可以实现多个接口 - 内部类
局部内部类
静态内部类
匿名内部类(重点) - 异常
- Throwable
Exception
运行时异常 I/O,ClassNotFound,NullPoint,UnKownType等
检查型异常
Error
AWT错误
JVM错误 StackOverFlow,OutOfMemory - 五个关键字
try{}
catch(){} 先小后大
finally{} 无论是否捕获都会执行一次
thorw 方法内部手动抛出异常
thorws 方法抛出异常 - 自定义异常
继承Exception类即可